diff options
Diffstat (limited to 'util/railway_wrapper.pl')
-rwxr-xr-x | util/railway_wrapper.pl | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/util/railway_wrapper.pl b/util/railway_wrapper.pl new file mode 100755 index 00000000..b6885173 --- /dev/null +++ b/util/railway_wrapper.pl @@ -0,0 +1,119 @@ +#!/usr/bin/perl +# +# 您可以使用這個檔案應付鐵路局網址的異動 +# 或是以擅於字串處理的 perl 修正以下程式碼 :) +# +#VictorHsieh 2003.02.11 + +use lib '/home/bbs/bin'; +use LocalVars; +use vars qw/ %opt %station_num @arg $command $addr/; +use strict; + +$addr = "http://passenger.tra.gov.tw/ap/index.asp"; + +@arg = split ' ', <STDIN>; +map { /(.+)=(.+)/ and $opt{$1} = $2 } grep /.+=.+/, @arg; + +station_init(); +translate(); + +$command = "MIval=Train_Time&encode=Big5&action=on"; +map { $command .= "&$_=$opt{$_}"} keys %opt; +exec "$LYNX -dump -assume_charset=big5 -nolist \"$addr?$command\""; + +# 將 page.c 中的格式轉為鐵路局所使用的格式 +sub translate{ + change_opt('from-station', 'Station1'); + change_opt('to-station', 'Station2'); + change_opt('from-time', 'From_Time'); + change_opt('to-time', 'To_Time'); + change_opt('type', 'Type'); + change_opt('tt', 'Time'); + change_opt('date','Departure_Date'); + change_opt('path', 'line'); +} + +# 轉換參數的表示法 +sub change_opt{ + my ($old, $new) = @_; + if(defined $opt{$old}){ + if( $old =~ /station/ ){ + $opt{$old} = $station_num{$opt{$old}}; + } + elsif( $old =~ /type/ ){ + $opt{$old} = ($opt{$old} eq 'fast')? 'F' : 'S'; + } + elsif( $old =~ /tt/ ){ + $opt{$old} = ($opt{$old} eq 'start')? 'D' : 'A'; + } + elsif( $old =~ /date/ ){ + my ($sec, $min, $hour, $mday, $mon, $year) = gmtime; + $mday = $mday + $opt{$old}; + $mon++; + $opt{$old} = join '/', + ($year+1900, + ($mon>9)? $mon : "0$mon", + ($mday>9)? $mday : "0$mday"); + } + elsif( $old =~ /path/ ){ + my @line = qw/ mainwest maineast mainsouth pin innerbay gg/; + $opt{$old} = $line[$opt{$old}-1]; + } + + $opt{$new} = $opt{$old} and delete $opt{$old}; + } +} + +# 各站代碼對應 +sub station_init{ + %station_num = ( + "基隆" => 1001, "八堵" => 1002, "七堵" => 1003, "五堵" => 1004, + "汐止" => 1005, "南港" => 1006, "松山" => 1007, "台北" => 1008, + "萬華" => 1009, "板橋" => 1011, "樹林" => 1012, "山佳" => 1013, + "鶯歌" => 1014, "桃園" => 1015, "內壢" => 1016, "中壢" => 1017, + "埔心" => 1018, "楊梅" => 1019, "富岡" => 1020, "湖口" => 1021, + "新豐" => 1022, "竹北" => 1023, "新竹" => 1025, "香山" => 1026, + "崎頂" => 1027, "竹南" => 1028, "談文" => 1102, "大山" => 1104, + "後龍" => 1105, "龍港" => 1106, "白沙屯" => 1107, "新埔" => 1108, + "通霄" => 1109, "苑裡" => 1110, "日南" => 1111, "大甲" => 1112, + "臺中港" => 1113, "清水" => 1114, "沙鹿" => 1115, "龍井" => 1116, + "大肚" => 1117, "追分" => 1118, "彰化" => 1120, "花壇" => 1202, + "員林" => 1203, "永靖" => 1204, "社頭" => 1205, "田中" => 1206, + "二水" => 1207, "林內" => 1208, "石榴" => 1209, "斗六" => 1210, + "斗南" => 1211, "石龜" => 1212, "大林" => 1213, "民雄" => 1214, + "嘉義" => 1215, "水上" => 1217, "南靖" => 1218, "後壁" => 1219, + "新營" => 1220, "柳營" => 1221, "林鳳營" => 1222, "隆田" => 1223, + "拔林" => 1224, "善化" => 1225, "新市" => 1226, "永康" => 1227, + "台南" => 1228, "保安" => 1229, "中洲" => 1230, "大湖" => 1231, + "路竹" => 1232, "岡山" => 1233, "橋頭" => 1234, "楠梓" => 1235, + "左營" => 1236, "高雄" => 1238, "大橋" => 1239, "造橋" => 1302, + "豐富" => 1304, "苗栗" => 1305, "南勢" => 1307, "銅鑼" => 1308, + "三義" => 1310, "泰安" => 1314, "后里" => 1315, "豐原" => 1317, + "潭子" => 1318, "台中" => 1319, "烏日" => 1320, "成功\" => 1321, + "大慶" => 1322, "太原" => 1323, "鳳山" => 1402, "後庄" => 1403, + "九曲堂" => 1404, "六塊厝" => 1405, "屏東" => 1406, "吉安" => 1602, + "志學" => 1604, "平和" => 1605, "壽豐" => 1606, "豐田" => 1607, + "溪口" => 1608, "南平" => 1609, "鳳林" => 1610, "萬榮" => 1611, + "光復" => 1612, "大富" => 1613, "富源" => 1614, "瑞北" => 1615, + "瑞穗" => 1616, "三民" => 1617, "玉里" => 1619, "安通" => 1620, + "東里" => 1621, "東竹" => 1622, "富里" => 1623, "池上" => 1624, + "海瑞" => 1625, "關山" => 1626, "月美" => 1627, "瑞和" => 1628, + "瑞源" => 1629, "鹿野" => 1630, "山里" => 1631, "台東" => 1632, + "永樂" => 1703, "東澳" => 1704, "南澳" => 1705, "武塔" => 1706, + "漢本" => 1708, "和平" => 1709, "和仁" => 1710, "崇德" => 1711, + "新城" => 1712, "景美" => 1713, "北埔" => 1714, "花蓮" => 1715, + "暖暖" => 1802, "四腳亭" => 1803, "瑞芳" => 1804, "侯硐" => 1805, + "三貂嶺" => 1806, "牡丹" => 1807, "雙溪" => 1808, "貢寮" => 1809, + "福隆" => 1810, "石城" => 1811, "大里" => 1812, "大溪" => 1813, + "龜山" => 1814, "外澳" => 1815, "頭城" => 1816, "頂埔" => 1817, + "礁溪" => 1818, "四城" => 1819, "宜蘭" => 1820, "二結" => 1821, + "中里" => 1822, "羅東" => 1823, "冬山" => 1824, "新馬" => 1825, + "蘇澳新站" => 1826, "蘇澳" => 1827, "大華" => 1903, "十分" => 1904, + "望古" => 1905, "嶺腳" => 1906, "平溪" => 1907, "菁桐 " => 1908, + "竹中" => 2203, "上員" => 2204, "竹東" => 2205, "橫山" => 2206, + "九讚頭" => 2207, "合興" => 2208, "南河" => 2209, "內灣" => 2210, + "榮華" => 2211, "源泉" => 2702, "濁水" => 2703, "龍泉" => 2704, + "集集" => 2705, "水里" => 2706, "車埕" => 2707, + ); +} |