[2026-04-26T22:53:02.130Z] Start processing request [2026-04-26T22:53:02.130Z] Fetching mail from https://12306mail.aken.cc ... [2026-04-26T22:53:04.447Z] Mail fetch status: 200 [2026-04-26T22:53:04.447Z] Mail text length: 423 [2026-04-26T22:53:04.447Z] Extracting ticket lines with regex /^谢宁宁[^ ]*/gm [2026-04-26T22:53:04.447Z] Found 6 raw ticket lines [2026-04-26T22:53:04.447Z] Today (Beijing) YMD: 20260427 -> 20260427 [2026-04-26T22:53:04.447Z] --- Processing ticket #1 raw: 谢宁宁,2026年04月29日17:07开,上海虹桥站-郑州东站,G1940次列车,6车无座,二等座,成人票,票价470.0元,检票口7A7B, [2026-04-26T22:53:04.447Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-26T22:53:04.447Z] Parsed fields -> from: "上海虹桥" to: "郑州东" train: "G1940" date: 2026-04-29 17:07 seat: "6车无座" gate: "7A7B" [2026-04-26T22:53:04.447Z] Event title: "上海虹桥G1940郑州东7A7B" [2026-04-26T22:53:04.447Z] Ticket YMD num: 20260429 [2026-04-26T22:53:04.447Z] Fetching schedule: https://checi.aken.cc/?keyword=G1940&date=20260429 [2026-04-26T22:53:05.063Z] Schedule fetch status: 200 [2026-04-26T22:53:05.063Z] Schedule data length: 9 [2026-04-26T22:53:05.063Z] Matched end station?: true (郑州东) [2026-04-26T22:53:05.063Z] DTEND from schedule: 20260429T132200Z (arrive_time=21:22) [2026-04-26T22:53:05.063Z] DTSTART (from ticket): 20260429T090700Z [2026-04-26T22:53:05.063Z] EVENT generated for ticket #1 [2026-04-26T22:53:05.063Z] --- Processing ticket #2 raw: 谢宁宁,2026年04月27日17:11开,南京南站-溧阳站,G823次列车,10车3D号,二等座,成人票,票价54.0元,检票口A2, [2026-04-26T22:53:05.063Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-26T22:53:05.063Z] Parsed fields -> from: "南京南" to: "溧阳" train: "G823" date: 2026-04-27 17:11 seat: "10车3D号" gate: "A2" [2026-04-26T22:53:05.063Z] Event title: "南京南G823溧阳A2" [2026-04-26T22:53:05.063Z] Ticket YMD num: 20260427 [2026-04-26T22:53:05.063Z] Fetching schedule: https://checi.aken.cc/?keyword=G823&date=20260427 [2026-04-26T22:53:06.487Z] Schedule fetch status: 200 [2026-04-26T22:53:06.487Z] Schedule data length: 20 [2026-04-26T22:53:06.487Z] Matched end station?: true (溧阳) [2026-04-26T22:53:06.487Z] DTEND from schedule: 20260427T094500Z (arrive_time=17:45) [2026-04-26T22:53:06.487Z] DTSTART (from ticket): 20260427T091100Z [2026-04-26T22:53:06.487Z] EVENT generated for ticket #2 [2026-04-26T22:53:06.487Z] --- Processing ticket #3 raw: 谢宁宁,2026年04月27日15:51开,无锡东站-南京南站,G798次列车,7车6D号,二等座,成人票,票价93.0元,检票口无锡东A1, [2026-04-26T22:53:06.487Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-26T22:53:06.487Z] Parsed fields -> from: "无锡东" to: "南京南" train: "G798" date: 2026-04-27 15:51 seat: "7车6D号" gate: "无锡东A1" [2026-04-26T22:53:06.487Z] Event title: "无锡东G798南京南无锡东A1" [2026-04-26T22:53:06.487Z] Ticket YMD num: 20260427 [2026-04-26T22:53:06.487Z] Fetching schedule: https://checi.aken.cc/?keyword=G798&date=20260427 [2026-04-26T22:53:07.154Z] Schedule fetch status: 200 [2026-04-26T22:53:07.154Z] Schedule data length: 10 [2026-04-26T22:53:07.154Z] Matched end station?: true (南京南) [2026-04-26T22:53:07.154Z] DTEND from schedule: 20260427T083500Z (arrive_time=16:35) [2026-04-26T22:53:07.154Z] DTSTART (from ticket): 20260427T075100Z [2026-04-26T22:53:07.154Z] EVENT generated for ticket #3 [2026-04-26T22:53:07.154Z] --- Processing ticket #4 raw: 谢宁宁,2026年04月27日18:11开,南京南站-溧阳站,G829次列车,12车15F号,二等座,成人票,票价54.0元,检票口A1, [2026-04-26T22:53:07.154Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-26T22:53:07.154Z] Parsed fields -> from: "南京南" to: "溧阳" train: "G829" date: 2026-04-27 18:11 seat: "12车15F号" gate: "A1" [2026-04-26T22:53:07.154Z] Event title: "南京南G829溧阳A1" [2026-04-26T22:53:07.154Z] Ticket YMD num: 20260427 [2026-04-26T22:53:07.154Z] Fetching schedule: https://checi.aken.cc/?keyword=G829&date=20260427 [2026-04-26T22:53:07.870Z] Schedule fetch status: 200 [2026-04-26T22:53:07.870Z] Schedule data length: 15 [2026-04-26T22:53:07.870Z] Matched end station?: true (溧阳) [2026-04-26T22:53:07.870Z] DTEND from schedule: 20260427T104500Z (arrive_time=18:45) [2026-04-26T22:53:07.870Z] DTSTART (from ticket): 20260427T101100Z [2026-04-26T22:53:07.870Z] EVENT generated for ticket #4 [2026-04-26T22:53:07.870Z] --- Processing ticket #5 raw: 谢宁宁,2026年04月27日14:40开,郑州东站-南京南站,G82次列车,12车16D号,二等座,成人票,票价347.0元,检票口21B, [2026-04-26T22:53:07.870Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-26T22:53:07.870Z] Parsed fields -> from: "郑州东" to: "南京南" train: "G82" date: 2026-04-27 14:40 seat: "12车16D号" gate: "21B" [2026-04-26T22:53:07.870Z] Event title: "郑州东G82南京南21B" [2026-04-26T22:53:07.870Z] Ticket YMD num: 20260427 [2026-04-26T22:53:07.870Z] Fetching schedule: https://checi.aken.cc/?keyword=G82&date=20260427 [2026-04-26T22:53:09.190Z] Schedule fetch status: 200 [2026-04-26T22:53:09.190Z] Schedule data length: 6 [2026-04-26T22:53:09.190Z] Matched end station?: true (南京南) [2026-04-26T22:53:09.190Z] DTEND from schedule: 20260427T092600Z (arrive_time=17:26) [2026-04-26T22:53:09.190Z] DTSTART (from ticket): 20260427T064000Z [2026-04-26T22:53:09.190Z] EVENT generated for ticket #5 [2026-04-26T22:53:09.190Z] --- Processing ticket #6 raw: 谢宁宁,2026年04月28日16:48开,溧阳站-湖州东站,C3005次列车,2车3D号,二等座,成人票,票价54.0元, [2026-04-26T22:53:09.190Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-04-26T22:53:09.190Z] Parsed fields -> from: "溧阳" to: "湖州东" train: "C3005" date: 2026-04-28 16:48 seat: "2车3D号" gate: "" [2026-04-26T22:53:09.190Z] Event title: "溧阳C3005湖州东" [2026-04-26T22:53:09.190Z] Ticket YMD num: 20260428 [2026-04-26T22:53:09.190Z] Fetching schedule: https://checi.aken.cc/?keyword=C3005&date=20260428 [2026-04-26T22:53:09.845Z] Schedule fetch status: 200 [2026-04-26T22:53:09.845Z] Schedule data length: 8 [2026-04-26T22:53:09.845Z] Matched end station?: true (湖州东) [2026-04-26T22:53:09.845Z] DTEND from schedule: 20260428T092700Z (arrive_time=17:27) [2026-04-26T22:53:09.845Z] DTSTART (from ticket): 20260428T084800Z [2026-04-26T22:53:09.845Z] EVENT generated for ticket #6 [2026-04-26T22:53:09.845Z] Total events generated: 6 [2026-04-26T22:53:09.845Z] ICS content generated (length: 2686) [2026-04-26T22:53:10.102Z] 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:cc1d82fb-9966-4319-9ca2-965abc8f45d4 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:cfb9743b-4b67-4a4e-ab99-0f5a42c805a0 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:c1cb7ac5-1af6-4ff3-923e-5c2d441541e6 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:20f3a1a3-092b-4718-8fcb-dcae396c4a0a 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:628f2230-5c61-4b94-a735-3fe7e89c7bdd 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:0866dfc0-0036-4d58-b831-c4e989795077 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