Newer
Older
skip-web / program / runrun / runrunbus.rb
#!/usr/bin/env ruby
# coding: utf-8
require 'cgi'
require 'kconv'
c = CGI.new(:accept_charset => "UTF-8")

def zikoku(req, sel, fir, time)
  hoge = req + sel
  if  i = fir[hoge].find { |n| time <= n.to_i }
    printf("%4d発です。<br>", i)
    i = i.to_i
    y = fir[hoge].find { |m| i < m.to_i }
    if y == nil
      print "それ以降は翌日です。"
    elsif y > ""
      printf("その次は%4d発になります。<br>", y)
    end
    print "ご利用感謝致します。\n"
  else 
    print "翌日以降です。\n"
  end
end

q = Hash.new()
open("zikokuhyo.txt", "r") do |stst|
  while line = stst.gets
    line = line.toutf8
    if /^(\S+)\s(.*)/ =~ line
      q[$1] = $2.split
    end
  end
end

rosen = Hash.new()
open("rosen.txt", "r") do |ro|
  while line = ro.gets
    line = line.toutf8
    if /^(\S+)\s(.*)/ =~ line
      rosen[$1] = $2.split
    end
  end
end

ekime = {}
n = 0
open("ekime.txt", "r") do |yomi|
  while line = yomi.gets
    if /^(\S+)/ =~ line.toutf8
      ekime[n] = $1
      ekime[n] = ekime[n].toutf8 
      n += 1
    end
  end
end
n1 = n
n = 0
sel = ARGV[0]
req = c["start"].toutf8
sel = c["goal"].toutf8

puts"Content-type: text/html; charset=utf-8\n
<!DOCTYPE html>
<html lang = 'ja'>
<head><title>runrun bus</title></head>"
#puts"<body><h1><a href=runrunbus.rb>るんるんばすをけんさく</a></h1>
puts"<a href=\"runrunbus.rb\"><img src=\"bus.png\" alt=\"bus\"  width=100%></a>
<form method=\"GET\" action=\"./runrunbus.rb\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"prac.css\">"

puts"<p>乗りたい停留所<select name=\"start\">\n"
while n < n1
  printf("<option>%s", ekime[n])
  n += 1
end
puts("</select></p>")
if sel == ""
  n = 0
  puts"<p>目的の停留所<select name=\"goal\">\n"
  while n < n1
    if sel == ekime[n]
      printf("<option selected>%s", ekime[n])
      n += 1
    else
      printf("<option>%s", ekime[n])
      n += 1
    end
  end
end

print"</select>\n<!--乗りたい時間 <input name=\"hour\">:<input name=\"minute\">-->"
print"</p>\n<p>乗りたい時間<select name = \"hour\">\n"
for h in 0..23 do
  print("<option>", h)
end
print"</select>:<select name = \"minute\">\n"
for m in 0..59 do
  if m < 10
    m = m.to_s
    m += "0"
    m = m.reverse
  end
  print("<option>", m)
end
print"</select></p>"
printf("<input type=\"hidden\" name=\"goal\" value=\"%s\">\n</p>", sel)
print"<p>
<input type=\"submit\" value=\"OK\">
<input type=\"reset\" value=\"reset\">"
h = c["hour"].to_i
m1 = c["minute"]
m = c["minute"].to_i
a = h * 100 + m
if req > ""
    print "<div class='bus'></div>\n"
    print "<h1>るんるんバスの検索結果</h1>\n"
    print "<p>#{req}の#{sel}方面行きで</p>\n"
    print "<p>#{h}:#{m1}時点から一番近いのは</p>\n"
    print "<p>"
    printf("%s</p>\n", zikoku(req, sel, q, a))
end
print "<br><a href=runrunbus.rb>TOPへ</a><br>"
print "<a href=http://roy/~c115163/mycgi/runbakensaku.html>観光地検索へ</a>"
puts"<iframe width=\"100%\" height=\"600px\" frameBorder=\"0\" src=\"https://umap.openstreetmap.fr/ja/map/map_116946?scaleControl=false&miniMap=false&scrollWheelZoom=false&zoomControl=true&allowEdit=false&moreControl=true&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=true&onLoadPanel=undefined&captionBar=false\"></iframe><p><a href=\"https://umap.openstreetmap.fr/ja/map/map_116946\">フルスクリーン表示</a></p>"
print"</form>\n</body>\n</html>"