ページへ戻る

 印刷 

OsaskMlList :: OSASK計画

osaskwiki:OsaskMlList

OSASK-ML のURLとナンバーへのリンクCGI

MLへのリンクができないとつまんないので、つくってみた。Rubyですにょ。

Page Top

スクリプト

#!/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
Page Top

何に使うんだ?

WikiからML発言ナンバーでリンクしたくて・・・それだけです。・・・最近Rubyネタばっかりだな 笑

  • こんなおもしろそうなのがあったとは!見落としていたニョ! ・・・これ、つかっちゃっていいんだよねぇ? だれが作ったページだろ? nisiさん? -- hideyosi 2006-03-25 (土) 22:46:00

Last-modified: 2009-11-17 (火) 00:00:00 (JST) (102d) by ゲスト