ページへ戻る

+ Links

 印刷 

OsaskMlList のソース :: OSASK計画

osaskwiki:OsaskMlListのソース

« Prev  
*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'' &new{2006-03-25 (土) 22:46:00};

#comment

« Prev