summaryrefslogtreecommitdiffstats
path: root/pttbbs/util/railway_wrapper.pl
diff options
context:
space:
mode:
Diffstat (limited to 'pttbbs/util/railway_wrapper.pl')
-rwxr-xr-xpttbbs/util/railway_wrapper.pl119
1 files changed, 119 insertions, 0 deletions
diff --git a/pttbbs/util/railway_wrapper.pl b/pttbbs/util/railway_wrapper.pl
new file mode 100755
index 00000000..b6885173
--- /dev/null
+++ b/pttbbs/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,
+ );
+}