[2026-05-12T23:35:51.224Z] Start processing request [2026-05-12T23:35:51.224Z] Fetching mail from https://12306mail.aken.cc ... [2026-05-12T23:35:51.297Z] Mail fetch status: 200 [2026-05-12T23:35:51.297Z] Mail text length: 573 [2026-05-12T23:35:51.297Z] Extracting ticket lines with regex /^谢宁宁[^\r\n]*/gm [2026-05-12T23:35:51.297Z] Found 8 raw ticket lines [2026-05-12T23:35:51.297Z] --- Processing ticket #1 raw: 谢宁宁,2026年05月14日16:45开,合肥南站-武汉站,G1745次列车,7车15F号,二等座,成人票,票价136.0元,检票口11A, [2026-05-12T23:35:51.297Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:51.297Z] Parsed fields -> from: "合肥南" to: "武汉" train: "G1745" date: 2026-05-14 16:45 seat: "7车15F号" gate: "11A" [2026-05-12T23:35:51.297Z] Event title: "合肥南G1745武汉11A" [2026-05-12T23:35:51.297Z] Fetching schedule: https://checi.aken.cc/?keyword=G1745&date=20260514 [2026-05-12T23:35:52.049Z] Schedule fetch status: 200 [2026-05-12T23:35:52.049Z] Schedule data length: 18 [2026-05-12T23:35:52.049Z] Matched end station?: true (武汉) [2026-05-12T23:35:52.049Z] DTEND from schedule: 20260514T102800Z (arrive_time=18:28) [2026-05-12T23:35:52.049Z] DTSTART (from ticket): 20260514T084500Z [2026-05-12T23:35:52.049Z] EVENT generated for ticket #1 [2026-05-12T23:35:52.049Z] --- Processing ticket #2 raw: 谢宁宁,2026年05月21日17:07开,上海虹桥站-郑州东站,G1940次列车,7车13F号,二等座,成人票,票价446.0元,检票口7A7B, [2026-05-12T23:35:52.049Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:52.049Z] Parsed fields -> from: "上海虹桥" to: "郑州东" train: "G1940" date: 2026-05-21 17:07 seat: "7车13F号" gate: "7A7B" [2026-05-12T23:35:52.049Z] Event title: "上海虹桥G1940郑州东7A7B" [2026-05-12T23:35:52.049Z] Fetching schedule: https://checi.aken.cc/?keyword=G1940&date=20260521 [2026-05-12T23:35:52.711Z] Schedule fetch status: 200 [2026-05-12T23:35:52.711Z] Schedule data length: 9 [2026-05-12T23:35:52.711Z] Matched end station?: true (郑州东) [2026-05-12T23:35:52.711Z] DTEND from schedule: 20260521T132200Z (arrive_time=21:22) [2026-05-12T23:35:52.711Z] DTSTART (from ticket): 20260521T090700Z [2026-05-12T23:35:52.711Z] EVENT generated for ticket #2 [2026-05-12T23:35:52.711Z] --- Processing ticket #3 raw: 谢宁宁,2026年05月12日17:54开,郑州东站-合肥站,G466次列车,6车16D号,二等座,成人票,票价281.0元,检票口22B, [2026-05-12T23:35:52.711Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:52.711Z] Parsed fields -> from: "郑州东" to: "合肥" train: "G466" date: 2026-05-12 17:54 seat: "6车16D号" gate: "22B" [2026-05-12T23:35:52.711Z] Event title: "郑州东G466合肥22B" [2026-05-12T23:35:52.711Z] Fetching schedule: https://checi.aken.cc/?keyword=G466&date=20260512 [2026-05-12T23:35:54.138Z] Schedule fetch status: 200 [2026-05-12T23:35:54.138Z] Schedule data length: 14 [2026-05-12T23:35:54.138Z] Matched end station?: true (合肥) [2026-05-12T23:35:54.138Z] DTEND from schedule: 20260512T123800Z (arrive_time=20:38) [2026-05-12T23:35:54.138Z] DTSTART (from ticket): 20260512T095400Z [2026-05-12T23:35:54.138Z] EVENT generated for ticket #3 [2026-05-12T23:35:54.138Z] --- Processing ticket #4 raw: 谢宁宁,2026年05月21日17:07开,上海虹桥站-郑州东站,G1940次列车,4车3D号,二等座,成人票,票价446.0元,检票口7A7B, [2026-05-12T23:35:54.138Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:54.138Z] Parsed fields -> from: "上海虹桥" to: "郑州东" train: "G1940" date: 2026-05-21 17:07 seat: "4车3D号" gate: "7A7B" [2026-05-12T23:35:54.138Z] Event title: "上海虹桥G1940郑州东7A7B" [2026-05-12T23:35:54.138Z] Fetching schedule: https://checi.aken.cc/?keyword=G1940&date=20260521 [2026-05-12T23:35:54.739Z] Schedule fetch status: 200 [2026-05-12T23:35:54.739Z] Schedule data length: 9 [2026-05-12T23:35:54.739Z] Matched end station?: true (郑州东) [2026-05-12T23:35:54.739Z] DTEND from schedule: 20260521T132200Z (arrive_time=21:22) [2026-05-12T23:35:54.739Z] DTSTART (from ticket): 20260521T090700Z [2026-05-12T23:35:54.739Z] EVENT generated for ticket #4 [2026-05-12T23:35:54.739Z] --- Processing ticket #5 raw: 谢宁宁,2026年05月19日16:57开,高邮北站-上海虹桥站,G2573次列车,6车19F号,二等座,成人票,票价152.0元, [2026-05-12T23:35:54.739Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:54.739Z] Parsed fields -> from: "高邮北" to: "上海虹桥" train: "G2573" date: 2026-05-19 16:57 seat: "6车19F号" gate: "" [2026-05-12T23:35:54.739Z] Event title: "高邮北G2573上海虹桥" [2026-05-12T23:35:54.739Z] Fetching schedule: https://checi.aken.cc/?keyword=G2573&date=20260519 [2026-05-12T23:35:55.524Z] Schedule fetch status: 200 [2026-05-12T23:35:55.524Z] Schedule data length: 22 [2026-05-12T23:35:55.524Z] Matched end station?: true (上海虹桥) [2026-05-12T23:35:55.524Z] DTEND from schedule: 20260519T115800Z (arrive_time=19:58) [2026-05-12T23:35:55.524Z] DTSTART (from ticket): 20260519T085700Z [2026-05-12T23:35:55.524Z] EVENT generated for ticket #5 [2026-05-12T23:35:55.524Z] --- Processing ticket #6 raw: 谢宁宁,2026年05月17日15:25开,郑州东站-高邮站,G1988次列车,8车13D号,二等座,成人票,票价299.0元,检票口2A, [2026-05-12T23:35:55.524Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:55.524Z] Parsed fields -> from: "郑州东" to: "高邮" train: "G1988" date: 2026-05-17 15:25 seat: "8车13D号" gate: "2A" [2026-05-12T23:35:55.524Z] Event title: "郑州东G1988高邮2A" [2026-05-12T23:35:55.524Z] Fetching schedule: https://checi.aken.cc/?keyword=G1988&date=20260517 [2026-05-12T23:35:57.098Z] Schedule fetch status: 200 [2026-05-12T23:35:57.098Z] Schedule data length: 18 [2026-05-12T23:35:57.098Z] Matched end station?: true (高邮) [2026-05-12T23:35:57.098Z] DTEND from schedule: 20260517T111300Z (arrive_time=19:13) [2026-05-12T23:35:57.098Z] DTSTART (from ticket): 20260517T072500Z [2026-05-12T23:35:57.098Z] EVENT generated for ticket #6 [2026-05-12T23:35:57.098Z] --- Processing ticket #7 raw: 谢宁宁,2026年05月14日16:25开,合肥南站-郑州东站,G3118次列车,4车2F号,二等座,成人票,票价285.5元,检票口19A, [2026-05-12T23:35:57.098Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:57.098Z] Parsed fields -> from: "合肥南" to: "郑州东" train: "G3118" date: 2026-05-14 16:25 seat: "4车2F号" gate: "19A" [2026-05-12T23:35:57.098Z] Event title: "合肥南G3118郑州东19A" [2026-05-12T23:35:57.098Z] Fetching schedule: https://checi.aken.cc/?keyword=G3118&date=20260514 [2026-05-12T23:35:57.701Z] Schedule fetch status: 200 [2026-05-12T23:35:57.701Z] Schedule data length: 4 [2026-05-12T23:35:57.701Z] Matched end station?: true (郑州东) [2026-05-12T23:35:57.701Z] DTEND from schedule: 20260514T105700Z (arrive_time=18:57) [2026-05-12T23:35:57.701Z] DTSTART (from ticket): 20260514T082500Z [2026-05-12T23:35:57.701Z] EVENT generated for ticket #7 [2026-05-12T23:35:57.701Z] --- Processing ticket #8 raw: 谢宁宁,2026年05月12日17:18开,宿州东站-合肥南站,G2557次列车,9车2F号,二等座,成人票,票价115.0元, [2026-05-12T23:35:57.701Z] Parsed REGEX matches => date:true route:true train:true seat:true gate:true [2026-05-12T23:35:57.701Z] Parsed fields -> from: "宿州东" to: "合肥南" train: "G2557" date: 2026-05-12 17:18 seat: "9车2F号" gate: "" [2026-05-12T23:35:57.701Z] Event title: "宿州东G2557合肥南" [2026-05-12T23:35:57.701Z] Fetching schedule: https://checi.aken.cc/?keyword=G2557&date=20260512 [2026-05-12T23:35:58.426Z] Schedule fetch status: 200 [2026-05-12T23:35:58.426Z] Schedule data length: 15 [2026-05-12T23:35:58.426Z] Matched end station?: true (合肥南) [2026-05-12T23:35:58.426Z] DTEND from schedule: 20260512T102700Z (arrive_time=18:27) [2026-05-12T23:35:58.426Z] DTSTART (from ticket): 20260512T091800Z [2026-05-12T23:35:58.426Z] EVENT generated for ticket #8 [2026-05-12T23:35:58.426Z] Total events generated: 8 [2026-05-12T23:35:58.426Z] ICS content generated (length: 3886) [2026-05-12T23:35:58.696Z] 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:6b33d389-22f5-4580-99cb-ad33581a8e8e SUMMARY:合肥南G1745武汉11A DTSTART:20260514T084500Z DTEND:20260514T102800Z LOCATION:11A,7车15F号 DESCRIPTION:张家港 到-- 开14:19\n江阴 到14:33 开14:35\n武进 到14:49 开14:51\n金坛 到15:03 开15:05\n句容 到15:20 开15:22\n江宁 到15:32 开15:34\n南京南 到15:43 开15:52\n合肥南 到16:41 开16:45\n武汉 到18:28 开18:35\n咸宁北 到18:59 开19:01\n岳阳东 到19:31 开19:38\n汨罗东 到19:57 开20:07\n长沙南 到20:27 开20:34\n衡山西 到21:01 开21:03\n衡阳东 到21:16 开21:18\n郴州西 到21:49 开21:51\n韶关 到22:22 开22:24\n广州南 到23:17 开23:17 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:9f2454f9-4bcf-4e0e-90fc-71e542d4a7b6 SUMMARY:上海虹桥G1940郑州东7A7B DTSTART:20260521T090700Z DTEND:20260521T132200Z LOCATION:7A7B,7车13F号 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:bdb0005c-4c17-43aa-91d4-a2d3b9c4f729 SUMMARY:郑州东G466合肥22B DTSTART:20260512T095400Z DTEND:20260512T123800Z LOCATION:22B,6车16D号 DESCRIPTION:兰州西 到-- 开12:56\n天水南 到14:11 开14:15\n西安北 到15:37 开15:43\n华山北 到16:11 开16:13\n洛阳龙门 到17:05 开17:07\n郑州东 到17:46 开17:54\n商丘 到18:43 开18:45\n亳州南 到19:10 开19:12\n阜阳西 到19:39 开19:41\n合肥 到20:38 开20:42\n南京南 到21:37 开21:43\n常州北 到22:13 开22:15\n苏州北 到22:36 开22:38\n上海虹桥 到23:02 开23:02 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:1b831baf-788e-427b-b25e-c0f7f78fb24c SUMMARY:上海虹桥G1940郑州东7A7B DTSTART:20260521T090700Z DTEND:20260521T132200Z LOCATION:7A7B,4车3D号 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:95ace978-fde1-41d1-a74a-2b0975b80894 SUMMARY:高邮北G2573上海虹桥 DTSTART:20260519T085700Z DTEND:20260519T115800Z LOCATION:6车19F号 DESCRIPTION:北京南 到-- 开12:11\n德州东 到13:28 开13:30\n济南西 到13:54 开13:56\n枣庄 到14:46 开14:48\n徐州东 到15:06 开15:13\n睢宁 到15:40 开15:42\n宿迁 到15:54 开15:56\n泗阳 到16:11 开16:13\n淮安东 到16:30 开16:33\n高邮北 到16:55 开16:57\n江都 到17:22 开17:24\n泰州 到17:42 开17:50\n海安 到18:14 开18:16\n如皋 到18:28 开18:30\n张家港 到19:02 开19:04\n上海虹桥 到19:58 开20:01\n苏州南 到20:27 开20:32\n盛泽 到20:43 开20:45\n湖州南浔 到20:54 开20:56\n杭州西 到21:31 开21:47\n义乌 到22:21 开22:24\n横店 到22:41 开22:41 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:7981fd6f-4128-4b2d-95a0-1ffff34f47da SUMMARY:郑州东G1988高邮2A DTSTART:20260517T072500Z DTEND:20260517T111300Z LOCATION:2A,8车13D号 DESCRIPTION:郑州东 到-- 开15:25\n商丘 到16:14 开16:18\n砀山南 到16:36 开16:38\n永城北 到16:49 开16:51\n徐州东 到17:16 开17:25\n睢宁 到17:50 开17:52\n宿迁 到18:04 开18:06\n泗阳 到18:21 开18:23\n淮安东 到18:40 开18:45\n高邮 到19:13 开19:15\n扬州东 到19:30 开19:33\n丹阳 到20:06 开20:08\n常州 到20:23 开20:25\n无锡 到20:40 开20:42\n苏州 到20:58 开21:00\n苏州园区 到21:07 开21:09\n昆山南 到21:19 开21:21\n上海虹桥 到21:41 开21:41 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:8396edc9-2aea-4276-b7e1-74ebd7cd85fb SUMMARY:合肥南G3118郑州东19A DTSTART:20260514T082500Z DTEND:20260514T105700Z LOCATION:19A,4车2F号 DESCRIPTION:杭州东 到-- 开14:31\n合肥南 到16:21 开16:25\n周口东 到18:05 开18:07\n郑州东 到18:57 开18:57 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT BEGIN:VEVENT UID:669834bf-0169-4f6b-817f-9755961dd1bd SUMMARY:宿州东G2557合肥南 DTSTART:20260512T091800Z DTEND:20260512T102700Z LOCATION:9车2F号 DESCRIPTION:北京南 到-- 开13:53\n廊坊 到14:14 开14:25\n德州东 到15:23 开15:25\n滕州东 到16:28 开16:30\n徐州东 到16:56 开16:58\n宿州东 到17:16 开17:18\n合肥南 到18:27 开18:30\n芜湖 到19:07 开19:09\n宣城 到19:35 开19:37\n广德南 到19:56 开19:58\n安吉 到20:07 开20:09\n湖州 到20:28 开20:30\n杭州东 到20:51 开21:06\n金华南 到21:55 开22:02\n永康南 到22:21 开22:21 STATUS:CONFIRMED SEQUENCE:0 TRANSP:OPAQUE END:VEVENT END:VCALENDAR