OSASK-ML のURLとナンバーへのリンクCGI
MLへのリンクができないとつまんないので、つくってみた。Rubyですにょ。
スクリプト
#!/usr/local/bin/ruby require 'net/http' require 'cgi' cgi = CGI.new par = [] todaystr = Time.now.strftime("%Y%m%d") a = true Dir.glob("\.\/????????.txt").each do |f| if "./#{todaystr}.txt" == f then a = false else File.delete(f) end end sv = 'www2.hideyosi.com' tp = '/~hideyosi_m/osask_ml/' # sv = 'www.afis.to' # tp = '/~mone/osask/osask_ml/' if a then Net::HTTP.start( sv , 80 ) {|http| response , = http.get(tp) response.body.split("\n").each{|pul| if /HREF=\"(\d{6})\/\"\>/ =~ pul then par << $1 end } } open("./#{todaystr}.txt", "w") do |f| par.each { |pname| Net::HTTP.start( sv, 80 ) {|http| response , = http.get("#{tp}#{pname}/index.html") response.body.split("\n").each{|pul| if /HREF=\"msg(\d{5})\.html\"\>\[(?:OSASK|osask) (\d+)\] (.+)\<\/A\>/ =~ pul then surl = "#{pname}/msg#{$1}.html" smid = "[OSASK #{$2}]" smti = "#{$3}" f << $2 + "\t" + surl + "\n" end } } } end end returl = "" inn = cgi['n'].to_s if inn then open("./#{todaystr}.txt") do |f| while f.gets if /(\d+)\t(.+)$/ =~ $_ then returl = $2 if $1 == inn end end end end if returl != "" then print cgi.header({"Location" => "http://#{sv}#{tp}#{returl}" }) print "転送 >> #{returl}" else cgi.out{"みつからない~ぐへぇ・・・"} end
何に使うんだ?
WikiからML発言ナンバーでリンクしたくて・・・それだけです。・・・最近Rubyネタばっかりだな 笑
- こんなおもしろそうなのがあったとは!見落としていたニョ! ・・・これ、つかっちゃっていいんだよねぇ? だれが作ったページだろ? nisiさん? -- hideyosi 2006-03-25 (土) 22:46:00
Counter: 142,
today: 2,
yesterday: 0
初版日時: 2003-12-04 (木) 23:09:00
最終更新: 2009-11-17 (火) 00:00:00 (JST) (319d) by ゲスト
|
ぺージ情報 | 閲覧可 | 編集可 | |||
---|---|---|---|---|---|---|
ぺージ名 : | OsaskMlList | グループ : | すべての訪問者 | グループ : | すべての訪問者 | |
ページ作成 : | ゲスト | ユーザー : | すべての訪問者 | ユーザー : | すべての訪問者 | |
ページ別名 : | 未設定 |