[2026-04-25T11:32:35.147Z] Start processing request [2026-04-25T11:32:35.147Z] Fetching mail from https://12306mail.aken.cc ... [2026-04-25T11:32:37.463Z] Mail fetch status: 200 [2026-04-25T11:32:37.463Z] Mail text length: 496 [2026-04-25T11:32:37.463Z] Extracting ticket lines with regex /^谢宁宁[^ ]*/gm [2026-04-25T11:32:37.463Z] Found 7 raw ticket lines [2026-04-25T11:32:37.463Z] Today (Beijing) YMD: 20260425 -> 20260425 [2026-04-25T11:32:37.463Z] --- Processing ticket #1 raw: 谢宁宁,2026年04月29日17:07开,上海虹桥站-郑州东站,G1940次列车,6车无座,二等座,成人票,票价470.0元,检票口7A7B, [2026-04-25T11:32:37.463Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:37.463Z] Parsed fields -> from: "上海虹桥" to: "郑州东" train: "G1940" date: 2026-04-29 17:07 seat: "6车无座" gate: "7A7B" [2026-04-25T11:32:37.463Z] Event title: "上海虹桥G1940郑州东7A7B" [2026-04-25T11:32:37.463Z] Ticket YMD num: 20260429 [2026-04-25T11:32:37.463Z] Fetching schedule: https://checi.aken.cc/?keyword=G1940&date=20260429 [2026-04-25T11:32:38.146Z] Schedule fetch status: 200 [2026-04-25T11:32:38.146Z] Schedule data length: 9 [2026-04-25T11:32:38.146Z] Matched end station?: true (郑州东) [2026-04-25T11:32:38.146Z] DTEND from schedule: 20260429T132200Z (arrive_time=21:22) [2026-04-25T11:32:38.146Z] DTSTART (from ticket): 20260429T090700Z [2026-04-25T11:32:38.146Z] EVENT generated for ticket #1 [2026-04-25T11:32:38.146Z] --- Processing ticket #2 raw: 谢宁宁,2026年04月27日17:11开,南京南站-溧阳站,G823次列车,10车3D号,二等座,成人票,票价54.0元,检票口A2, [2026-04-25T11:32:38.146Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:38.146Z] Parsed fields -> from: "南京南" to: "溧阳" train: "G823" date: 2026-04-27 17:11 seat: "10车3D号" gate: "A2" [2026-04-25T11:32:38.146Z] Event title: "南京南G823溧阳A2" [2026-04-25T11:32:38.146Z] Ticket YMD num: 20260427 [2026-04-25T11:32:38.146Z] Fetching schedule: https://checi.aken.cc/?keyword=G823&date=20260427 [2026-04-25T11:32:38.938Z] Schedule fetch status: 200 [2026-04-25T11:32:38.938Z] Schedule data length: 20 [2026-04-25T11:32:38.938Z] Matched end station?: true (溧阳) [2026-04-25T11:32:38.938Z] DTEND from schedule: 20260427T094500Z (arrive_time=17:45) [2026-04-25T11:32:38.938Z] DTSTART (from ticket): 20260427T091100Z [2026-04-25T11:32:38.938Z] EVENT generated for ticket #2 [2026-04-25T11:32:38.938Z] --- Processing ticket #3 raw: 谢宁宁,2026年04月27日15:51开,无锡东站-南京南站,G798次列车,7车6D号,二等座,成人票,票价93.0元,检票口无锡东A1, [2026-04-25T11:32:38.938Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:38.938Z] Parsed fields -> from: "无锡东" to: "南京南" train: "G798" date: 2026-04-27 15:51 seat: "7车6D号" gate: "无锡东A1" [2026-04-25T11:32:38.938Z] Event title: "无锡东G798南京南无锡东A1" [2026-04-25T11:32:38.938Z] Ticket YMD num: 20260427 [2026-04-25T11:32:38.938Z] Fetching schedule: https://checi.aken.cc/?keyword=G798&date=20260427 [2026-04-25T11:32:40.363Z] Schedule fetch status: 200 [2026-04-25T11:32:40.363Z] Schedule data length: 10 [2026-04-25T11:32:40.363Z] Matched end station?: true (南京南) [2026-04-25T11:32:40.363Z] DTEND from schedule: 20260427T083500Z (arrive_time=16:35) [2026-04-25T11:32:40.363Z] DTSTART (from ticket): 20260427T075100Z [2026-04-25T11:32:40.363Z] EVENT generated for ticket #3 [2026-04-25T11:32:40.363Z] --- Processing ticket #4 raw: 谢宁宁,2026年04月26日15:12开,郑州东站-无锡东站,G1478次列车,16车5D号,二等座,成人票,票价434.0元,检票口5B, [2026-04-25T11:32:40.363Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:40.363Z] Parsed fields -> from: "郑州东" to: "无锡东" train: "G1478" date: 2026-04-26 15:12 seat: "16车5D号" gate: "5B" [2026-04-25T11:32:40.363Z] Event title: "郑州东G1478无锡东5B" [2026-04-25T11:32:40.363Z] Ticket YMD num: 20260426 [2026-04-25T11:32:40.363Z] Fetching schedule: https://checi.aken.cc/?keyword=G1478&date=20260426 [2026-04-25T11:32:41.868Z] Schedule fetch status: 200 [2026-04-25T11:32:41.868Z] Schedule data length: 25 [2026-04-25T11:32:41.868Z] Matched end station?: true (无锡东) [2026-04-25T11:32:41.868Z] DTEND from schedule: 20260426T112600Z (arrive_time=19:26) [2026-04-25T11:32:41.868Z] DTSTART (from ticket): 20260426T071200Z [2026-04-25T11:32:41.868Z] EVENT generated for ticket #4 [2026-04-25T11:32:41.868Z] --- Processing ticket #5 raw: 谢宁宁,2026年04月27日18:11开,南京南站-溧阳站,G829次列车,12车15F号,二等座,成人票,票价54.0元,检票口A1, [2026-04-25T11:32:41.868Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:41.868Z] Parsed fields -> from: "南京南" to: "溧阳" train: "G829" date: 2026-04-27 18:11 seat: "12车15F号" gate: "A1" [2026-04-25T11:32:41.868Z] Event title: "南京南G829溧阳A1" [2026-04-25T11:32:41.868Z] Ticket YMD num: 20260427 [2026-04-25T11:32:41.868Z] Fetching schedule: https://checi.aken.cc/?keyword=G829&date=20260427 [2026-04-25T11:32:42.590Z] Schedule fetch status: 200 [2026-04-25T11:32:42.590Z] Schedule data length: 15 [2026-04-25T11:32:42.590Z] Matched end station?: true (溧阳) [2026-04-25T11:32:42.590Z] DTEND from schedule: 20260427T104500Z (arrive_time=18:45) [2026-04-25T11:32:42.590Z] DTSTART (from ticket): 20260427T101100Z [2026-04-25T11:32:42.590Z] EVENT generated for ticket #5 [2026-04-25T11:32:42.590Z] --- Processing ticket #6 raw: 谢宁宁,2026年04月27日14:40开,郑州东站-南京南站,G82次列车,12车16D号,二等座,成人票,票价347.0元,检票口21B, [2026-04-25T11:32:42.590Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:42.590Z] Parsed fields -> from: "郑州东" to: "南京南" train: "G82" date: 2026-04-27 14:40 seat: "12车16D号" gate: "21B" [2026-04-25T11:32:42.590Z] Event title: "郑州东G82南京南21B" [2026-04-25T11:32:42.590Z] Ticket YMD num: 20260427 [2026-04-25T11:32:42.590Z] Fetching schedule: https://checi.aken.cc/?keyword=G82&date=20260427 [2026-04-25T11:32:43.797Z] Schedule fetch status: 200 [2026-04-25T11:32:43.797Z] Schedule data length: 6 [2026-04-25T11:32:43.797Z] Matched end station?: true (南京南) [2026-04-25T11:32:43.797Z] DTEND from schedule: 20260427T092600Z (arrive_time=17:26) [2026-04-25T11:32:43.797Z] DTSTART (from ticket): 20260427T064000Z [2026-04-25T11:32:43.797Z] EVENT generated for ticket #6 [2026-04-25T11:32:43.797Z] --- Processing ticket #7 raw: 谢宁宁,2026年04月28日16:48开,溧阳站-湖州东站,C3005次列车,2车3D号,二等座,成人票,票价54.0元, [2026-04-25T11:32:43.797Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-25T11:32:43.797Z] Parsed fields -> from: "溧阳" to: "湖州东" train: "C3005" date: 2026-04-28 16:48 seat: "2车3D号" gate: "" [2026-04-25T11:32:43.797Z] Event title: "溧阳C3005湖州东" [2026-04-25T11:32:43.797Z] Ticket YMD num: 20260428 [2026-04-25T11:32:43.797Z] Fetching schedule: https://checi.aken.cc/?keyword=C3005&date=20260428 [2026-04-25T11:32:44.471Z] Schedule fetch status: 200 [2026-04-25T11:32:44.471Z] Schedule data length: 8 [2026-04-25T11:32:44.471Z] Matched end station?: true (湖州东) [2026-04-25T11:32:44.471Z] DTEND from schedule: 20260428T092700Z (arrive_time=17:27) [2026-04-25T11:32:44.471Z] DTSTART (from ticket): 20260428T084800Z [2026-04-25T11:32:44.471Z] EVENT generated for ticket #7 [2026-04-25T11:32:44.471Z] Total events generated: 7 [2026-04-25T11:32:44.471Z] ICS content generated (length: 3371) [2026-04-25T11:32:44.701Z] Upload to R2 (chepiao) succeeded. ==== ICS CONTENT ==== BEGIN:VCALENDAR VERSION:2.0 PRODID:-//aken.cc//12306 ICS Generator//EN CALSCALE:GREGORIAN METHOD:PUBLISH BEGIN:VEVENT UID:85e73205-bfa5-403d-ac87-51db84be532c SUMMARY:上海虹桥G1940郑州东7A7B DTSTART:20260429T090700Z DTEND:20260429T132200Z LOCATION:7A7B,6车无座 DESCRIPTION:上海虹桥 到-- 开17:07\n常州北 到17:48 开17:50\n南京南 到18:21 开18:23\n徐州东 到19:37 开19:44\n商丘 到20:30 开20:32\n郑州东 到21:22 开21:29\n巩义南 到21:56 开21:58\n渑池南 到22:26 开22:32\n西安北 到23:33 开23:33 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:827ef391-3bd7-4fa5-bf85-13b8ddf67b2c SUMMARY:南京南G823溧阳A2 DTSTART:20260427T091100Z DTEND:20260427T094500Z LOCATION:A2,10车3D号 DESCRIPTION:北京南 到-- 开12:43\n天津南 到13:17 开13:22\n沧州西 到13:44 开13:57\n济南西 到14:43 开14:46\n枣庄 到15:36 开15:38\n徐州东 到15:56 开15:58\n南京南 到17:07 开17:11\n溧水 到17:28 开17:30\n溧阳 到17:45 开17:47\n湖州 到18:10 开18:12\n杭州东 到18:33 开18:37\n余姚北 到19:08 开19:10\n宁波 到19:30 开19:33\n奉化 到19:50 开19:52\n三门县 到20:18 开20:20\n临海 到20:31 开20:33\n台州西 到20:45 开20:47\n温岭 到20:58 开21:00\n乐清 到21:24 开21:27\n温州南 到21:45 开21:45 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:47c63ae6-68bb-4205-9dce-7c64a32fd4f1 SUMMARY:无锡东G798南京南无锡东A1 DTSTART:20260427T075100Z DTEND:20260427T083500Z LOCATION:无锡东A1,7车6D号 DESCRIPTION:上海虹桥 到-- 开15:21\n无锡东 到15:49 开15:51\n南京南 到16:35 开16:38\n蚌埠南 到17:20 开17:24\n徐州东 到18:01 开18:05\n枣庄 到18:23 开18:29\n济南西 到19:22 开19:24\n德州东 到19:48 开19:50\n廊坊 到20:47 开20:49\n北京南 到21:10 开21:10 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:e2b510d4-9e1b-495f-98d3-657d9c36681f SUMMARY:郑州东G1478无锡东5B DTSTART:20260426T071200Z DTEND:20260426T112600Z LOCATION:5B,16车5D号 DESCRIPTION:成都东 到-- 开06:31\n自贡 到07:21 开07:23\n富顺 到07:33 开07:35\n泸州 到08:00 开08:02\n重庆西 到08:43 开08:55\n重庆北 到09:22 开09:26\n万州北 到10:35 开10:40\n兴山 到11:43 开11:45\n神农架 到11:59 开12:01\n保康县 到12:15 开12:17\n襄阳东 到12:47 开12:51\n邓州东 到13:11 开13:13\n南阳东 到13:31 开13:33\n平顶山西 到14:02 开14:04\n郏县 到14:13 开14:15\n禹州 到14:28 开14:33\n郑州东 到15:08 开15:12\n商丘 到16:01 开16:03\n徐州东 到16:48 开16:52\n蚌埠南 到17:29 开17:31\n南京南 到18:12 开18:14\n镇江南 到18:34 开18:44\n丹阳北 到18:54 开19:03\n无锡东 到19:26 开19:31\n上海虹桥 到20:01 开20:01 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:7b5a33a9-820c-431a-91a7-e5a6165473f0 SUMMARY:南京南G829溧阳A1 DTSTART:20260427T101100Z DTEND:20260427T104500Z LOCATION:A1,12车15F号 DESCRIPTION:北京南 到-- 开13:42\n天津南 到14:16 开14:18\n沧州西 到14:40 开14:45\n济南西 到15:32 开15:36\n枣庄 到16:26 开16:28\n徐州东 到16:46 开16:48\n蚌埠南 到17:25 开17:27\n南京南 到18:08 开18:11\n溧水 到18:28 开18:30\n溧阳 到18:45 开18:47\n长兴 到19:06 开19:10\n杭州东 到19:36 开19:56\n余姚北 到20:28 开20:30\n宁波 到20:50 开20:55\n台州西 到21:49 开21:49 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:6196ee57-e945-4cbe-b8a8-ea0cd8100819 SUMMARY:郑州东G82南京南21B DTSTART:20260427T064000Z DTEND:20260427T092600Z LOCATION:21B,12车16D号 DESCRIPTION:郑州东 到-- 开14:40\n商丘 到15:29 开15:31\n徐州东 到16:17 开16:20\n南京南 到17:26 开17:28\n苏州北 到18:13 开18:19\n上海虹桥 到18:43 开18:43 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:e1172586-9d75-4e52-9914-c2ee434069b6 SUMMARY:溧阳C3005湖州东 DTSTART:20260428T084800Z DTEND:20260428T092700Z LOCATION:2车3D号 DESCRIPTION:南京南 到-- 开16:17\n溧阳 到16:43 开16:48\n宜兴 到17:01 开17:03\n湖州东 到17:27 开17:30\n湖州南浔 到17:40 开17:42\n盛泽 到17:51 开17:53\n苏州南 到18:04 开18:06\n上海南 到18:31 开18:31 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT END:VCALENDAR