七行プログラミング (452レス)
上下前次1-新
106: nobodyさん [sage] 02/12/01 01:22 ID:??? AAS
 mkdir, rmdir 実装。特にヒネりもなく…。 
  
 use CGI':all';use File::Copy;$d=path_info;($c=$f=script_name)=~s|/[^/]+$||;*p=* 
 param;opendir D,$e=".$d/";$F=p(F);$N=$e.p(N);$_=p(S);/MV/?move$F,$N:/CP/?copy$F 
 ,$N:/RM/?unlink$F:/MD/?mkdir$N,511:/RD/?rmdir$F:1;put header,start_html('7files 
 '),startform(0,$f.$d),table(Tr[map{$i="$d/$_";($l,$s)=-d".$i"?($f.$i,DIR):($c.$ 
 i,-s _);td({bgcolor,(white,silver)[$t^=1]},[checkbox(F,0,".$i",''),a({href,$l}, 
 $_),$s,"".localtime((stat)[9])])}sort grep!/^\./,readdir D]),textfield(N),map( 
 submit(S,$_),MV,CP,RM,MD,RD),endform,end_html 
  
 table を何とかせんと、劇的には縮まらな気。 
107: nobodyさん [sage] 02/12/01 05:42 ID:??? AAS
 bgcolorを削って、chdirにしてみた・・ 
  
 use CGI':all';use File::Copy;$d=path_info;*p=*param;chdir".$d";$N=p N;$F=p F;$_ 
 =p S;/MV/?move$F,$N:/CP/?copy$F,$N:/RM/?unlink$F:/MD/?mkdir$N,511:/RD/?rmdir$F: 
 1;opendir D,".";($c=$f=script_name)=~s|/[^/]+$||;put header,start_html('7files' 
 ),startform(0,$f.$d),table(Tr[map{td[checkbox(F,0,$_,''),a({href,-d$_?"$f$d/$_" 
 :"$c$d/$_"},$_),-s||DIR,"".localtime((stat)[9])]}sort grep!/^\./,readdir D]), 
 textfield(N),map(submit(S,$_),MV,CP,RM,MD,RD),endform,end_html 
  
 p(F); を p F; って表記するのも環境/バージョンに依存するのかな?
108(1): nobodyさん [sage] 02/12/01 07:42 ID:??? AAS
 give up 気味。(´Д`; 
  
 use CGI':all';use File::Copy;$d=path_info;*b=*param;chdir".$d";$N=b N;$F=b F;%m 
 =qw(MV move$F,$N CP copy$F,$N RM unlink$F MD mkdir$N,511 RD rmdir$F);eval$m{b S 
 };opendir D,".";($c=$f=script_name)=~s|/[^/]+$||;put header,start_html('7files' 
 ),startform(0,$f.$d),table(Tr[map{td[checkbox(F,0,$_,''),a({href,(-d$_?$f:$c). 
 "$d/$_"},$_),-s||DIR,"".localtime((stat)[9])]}sort grep!/^\./,readdir D]), 
 textfield(N),(map{submit S,$_}keys%m),endform,end_html 
  
 param のエイリアスを b にしたのは、p 要素の p() を 
 使えるようにする為の布石。 
  
 > p(F); を p F; って表記 
 大丈夫っぽいです。 
109(1): nobodyさん [sage] 02/12/01 08:40 ID:??? AAS
 ディレクトリは別にサイズ取れない訳じゃないので 
 -s||DIR は駄目ですな…。 
110: nobodyさん [sage] 02/12/01 12:51 ID:??? AAS
 >109 
 Win/ActivePerlだとディレクトリのサイズ0が返ってきていた 
 これも環境に依存するのか。。 -d _?DIR:-s _ でok ? 
  
 use CGI':all';use File::Copy;$_='$d=path_info;*b=*param;chz".$d";$N=b N;$F=b F; 
 %m=qw(MV move$F,$N CP copy$F,$N RM unlink$F MD mkz$N,511 RD rmz$F);eval$m{b S} 
 ;openz D,".";($c=$f=script_name)=~s|/[^/]+$||;put header,start_html("7files") 
 ,startform(0,$f.$d),table(Tr[map{td[checkbox(F,0,$_,""),a({href,(-d$_?$f:$c) 
 ."$d/$_"},$_),-d _?DIR:-s _,"".localtime((stat)[9])]}sort grep/^[^.]/,readz 
 D]),textfield(N),(map{submit S,$_}keys%m),endform,end_html';s/z/dir/g;eval 
  
 置換してスクリプト長くなってるし。。。そろそろ give up 
>108 のファイルサイズを直して、完成かな
111: nobodyさん [sage] 02/12/01 14:28 ID:??? AAS
 せっかくだから空ファイル作成 (MF) など付けてみる。 
  
 use CGI':all';use File::Copy;$d=path_info;*b=*param;chdir".$d";$N=b N;$F=b F;%m 
 =(qw(MV move$F,$N CP copy$F,$N RM unlink$F MD mkdir$N,511 RD rmdir$F MF),'open 
 F,">$N"');eval$m{b S};opendir D,".";($c=$f=script_name)=~s|/[^/]+$||;put header 
 ,start_html("7files"),startform(0,$f.$d),table(Tr[map{td[checkbox(F,0,$_,""),a( 
 {href,(-d$_?$f:$c)."$d/$_"},$_),-d$_?DIR:-s,"".localtime((stat)[9])]}sort grep! 
 /^\./,readdir D]),p(textfield(N),map{submit S,$_}keys%m),endform,end_html 
112: nobodyさん [sage] 02/12/02 07:11 ID:??? AAS
 Rss出力と検索機能 4 7wiki.cgi 
  
 ---- 7search.cgi 
 use CGI':all';$f=script_name;$s=param S;opendir D,".";if($s){map{$t=$_;if(open 
 F,$t){eval{flock F,2};while(<F>){chomp;if(/\Q$s\E/io){push(@r,li(a{href,$t},$t) 
 ," - $_");last}}close F}}sort grep/^[^.]+$/,readdir D}put header,start_html( 
 '7search'),startform(0,$f),p(textfield(S),submit),endform,hr,ul(@r),end_html 
  
 ---- 7rss.cgi 
 use CGI qw/:all channel item textinput link name/;($p)=script_name=~m|(.+)/[^/] 
 +$|x;$s=server_name.$p;opendir D,".";$w='7wiki';put"Content-type:text/xml\n\n", 
 qq|<?xml version="1.0"?>\n<rdf:RDF xmlns:rdf="外部リンク:www.w3c.org|, 
 q|df-syntax-ns#" xmlns="外部リンク:my.netscape.com">|,channel(title 
 ($w),link"$s/$w.cgi"),(map{item(title($_),link"$s.$_")."\n"}sort grep/^[^.]+$/, 
 readdir D),textinput(title($w),link("$s/7search.cgi"),name(S)),"\n</rdf:RDF>"; 
  
 # CGI.pm v2.69 以降 or c2.67 wiz xhtml tag 
 - link() の動作がちょっと不安。 
113: nobodyさん [sage] 02/12/02 07:39 ID:??? AAS
 7rss.cgi 
 > item(title($_),link"$s.$_")." 
 < item(title($_),link"$s.cgi/$_")." 
114: nobodyさん [sage] 02/12/02 08:06 ID:??? AAS
 #7search.cgi - v0.02  fixed some bugs 
 use CGI':all';($c=$f=script_name)=~s|/[^/]+$||;$s=param S;if($s){opendir D,"."; 
 map{$t=$_;if(open F,$t){eval{flock F,2};while(<F>){chomp;if(/\Q$s\E/io){push@r, 
 li(a({href,"$c/7wiki.cgi/$t"},$t)," $_");last}}close F}}sort grep/^[^.]+$/, 
 readdir D}put header,start_html('7search'),startform(0,$f),p(textfield(S), 
 submit),endform,hr,ul(@r),end_html 
  
 #7rss.cgi - v0.02  show latest 15 articles 
 use CGI qw/:all channel item textinput link name/;($p)=script_name=~m|(.+)/[^/] 
 +$|x;$s=server_name.$p;opendir D,".";$w='7wiki';put"Content-type:text/xml\n\n", 
 qq|<?xml version="1.0"?>\n<rdf:RDF xmlns:rdf="外部リンク:www.w3c.org|, 
 q|df-syntax-ns#" xmlns="外部リンク:my.netscape.com">|,channel(title 
 ($w),link"$s/$w.cgi"),(map{item title($_),link"$s.cgi/$_"}sort{-M$a<=>-M$b}grep 
 /^[^.]+$/,readdir D)[0..14],textinput(title($w),link("$s/7search.cgi"),name S), 
 "\n</rdf:RDF>";
115: nobodyさん [sage] 02/12/02 17:31 ID:??? AAS
 # 7rss.cgi v0.03 
  
 use CGI qw/:all channel item textinput link name/;opendir D,".";$w='7wiki';($p) 
 =url=~m|^(.+)/[^/]+$|;put header('text/xml'),qq|<?xml version="1.0"?>\n<rdf:RD| 
 ,'F xmlns:rdf="外部リンク:www.w3c.org" xmlns="外部リンク:my.' 
 ,'netscape.com/rdf/simple/0.9/">',channel(title($w),link"$p/$w.cgi"),(map{item 
 title($_),link"$p/$w.cgi/$_"}sort{-M$a<=>-M$b}grep/^[^.]+$/,readdir D)[0..14], 
 textinput(title($w),link("$p/7search.cgi"),name S),"\n</rdf:RDF>"; 
116: nobodyさん [] 02/12/21 03:14 ID:RF/wn3c8(1) AAS
 7threadキボンヌ 
117(1): nobodyさん [sage] 02/12/30 09:38 ID:??? AAS
 拙作をまとめていた isweb のサイト、広告ウザいので引っ越し。 
 ついでに配布体裁整え。外部リンク:calorymate.s15.xrea.com 
  
 7wiki と 7files 、参加作という事でサイトに載っけていいですか? 
118: 'a';$happy = new Year; [sage] 02/12/31 15:36 ID:??? AAS
 >>117 
 Take It free. 
  
 <一応、ベースとなるものを書いたモノです 
 自分が代表してレスしていいのかわかんないけど && 
 このスレッド的にはどうなのか知らないけど・・・、 
  
 このまま過去ログに埋もれて日の目を見ないよりも、 
 公開して保守して貰えるのなら、そっちの方がいいよな 
 て事でお願いします。 
 ついでに、7rss, 7search も載せてもらえるとうれしいな。 
package Year;sub new{bless{},shift} 
119: nobodyさん [sage] 03/01/15 02:35 ID:??? AAS
 忘れた頃に。(w 
  
 --- 7search.cgi 
 use CGI':all';put header,start_html('7search'),startform(0,$_=script_name),p( 
 textfield(S),submit),endform,hr;if($s=param S){m|/[^/]+$|;$c=$`;opendir D,"."; 
 for(sort grep/^\w+$/&-f,readdir D){if(open F,$t=$_){eval{flock F,2};/\Q$s\E/io 
 &&push(@r,li(a({href,"$c/7wiki.cgi/$t"},$t)," $_"))&&next while<F>;}}@r&&put ul 
 @r}put end_html 
  
 --- 7rss.cgi 
 use CGI qw/:all channel item textinput link name/;opendir D,".";$w='7wiki';url 
 =~m|[^/]+$|;$p=$`;put header('text/xml'),join"\n",'<?xml version="1.0"?>', 
 '<rdf:RDF xmlns:rdf="外部リンク:www.w3c.org" xmlns="http' 
 .'外部リンク:my.netscape.com">',channel(title($w),link"$p$w.cgi"),(map{ 
 item title($_),link"$p$w.cgi/$_"}sort{-M$a<=>-M$b}grep/^\w+$/&-f,readdir D)[0.. 
 14],textinput(title($w),link($p.'7search.cgi'),name S),'</rdf:RDF>' 
  
 つー事で載せときました。 
120: 山崎渉 [(^^)sage] 03/01/15 13:41 ID:??? AAS
 (^^)           
121: nobodyさん [sage] 03/01/17 18:30 ID:??? AAS
 2ch の dat ファイル (かちゅ〜しゃのログ) を XHTML ファイルに変換。 
 外部リンク:cm.xrea.cc 
  
 $s="kat2xhtml.tmpl";sub a{'<a href="'.pop().'</a>'}sub p{'<span class="'.pop(). 
 '</span>'}while(<>){($n,$m,$d,$_,$t,$")=split/,/;$.-1||($T=$t)=~s/\s+$//;$n=$n 
 =~m|^<b>([^<]*)</b>(?:([^<]*)<b></b>)?$|?p"n\">$1":'';$n.=p"m\">$2"if$2;$n=$m=~ 
 /\@/?a"mailto:$m\">$n":$m=~/./?p qq|k" title="$m">$n|:$n;s/\x81\x97\x81\x4D/,/g 
 ;s/\s+(?:target="_blank"|$)//g;s|\s*<br>|<br />|g;s/&(?![a-z]+;)/&/g;for(@r 
 =split/(<a href="[^"]+">[^<]+<\/a>)/){(($u,$a)=m|^<a href="([^"]+)">([^<]+)</a> 
 $|x)?($u=~s/~/%7E/g&&($_=a"$u\">$a"),$a=~/^>>(\d+)/&&($_=a"#R$1\">$a")): 
 s/"/"/g}$A.="<dt>$. :<a id=\"R$.\">$n :$d</a></dt><dd>@r</dd>\n"}if(open 
 T,$s){$/='';$_=<T>;s/\%(.)/${$1}/g;print} 
  
 機能減らさないと七行に収まらないかなぁ。 
122(2): nobodyさん [] 03/03/10 02:24 ID:drTO4vMw(1) AAS
 使い方わからなかったけど…(かちゅーしゃのログ持っていないので。 
  
 '<a href="'.pop().'</a> 
 ↓ 
 "a href=\"$_[0]</a>"
123: 山崎渉 [(^^)] 03/03/13 17:04 ID:??? AAS
 (^^) 
124: nobodyさん [sage] 03/03/13 18:58 ID:??? AAS
 このスレの dat 上げといたんでテストする人はどぞ。 
 外部リンク[dat]:cm.xrea.cc 
  
 >>122 
 @_ でもいいですね。 
  
 $s="kat2xhtml.tmpl";sub a{"<a href=\"@_</a>"}sub p{"<span class=\"@_</span>"} 
 while(<>){($n,$m,$d,$_,$t,$")=split/,/;$.-1||chomp($T=$t);$n=~m|<b>([^<]*)(?: 
 </b>([^<]*))?|x;$n=($1&&p"n\">$1").($2&&p"m\">$2");$n=p qq|k" title="$m">$n|if 
 $m.0;s/\x81\x97\x81\x4D/,/g;s/\s+(?:target="\w*"|$)//g;s|\s*<br>|<br />|g;s/& 
 (?![a-z]+;)/&/gx;for(@r=split/(<a href="[^"]+">[^<]+<\/a>)/){(($u,$a)= 
 /^<a href="([^"]+)">([^<]+)/)?($_=$u=~s/~/%7E/g?a"$u\">$a":$a=~/^(?:>){1,2} 
 (\d+)/x?a"#R$1\">$a":$_):s/"/"/g}$A.="<dt>$. :<a id=\"R$.\">$n :$d</a>". 
 "</dt><dd>@r</dd>\n"}if(open T,$s){$/='';$_=<T>;s/\%(.)/${$1}/g;print} 
  
 mailto: やめてあと一行。 
125: 通りすがり [sage] 03/03/25 06:39 ID:??? AAS
 このすれ見て 
 ish思い出しますた 
126: 山崎渉 [(^^)] 03/04/17 12:25 ID:??? AAS
 (^^)    
127:  ◆PAmX3cjLtw  [] 03/04/18 14:01 ID:yrVQyLZr(1/2) AAS
 こんなスレあったんだ。燃えてきた! 
128(8):  ◆PAmX3cjLtw  [] 03/04/18 15:48 ID:yrVQyLZr(2/2) AAS
 俺も作ってみた。 
 2chモドキの掲示板です。ログファイル F が必要。 
 URLと、発言番号への自動リンクがありますが、使い物になるかどうか・・・。 
 Win98のPWSとLinuxのApacheで動作を確認しました。。。 
  
 ------------ 7ch.cgi ----------------- 
 #!/usr/bin/perl 
 use CGI':all';*i=*param;$n=i N;$m=i M;$t=i T;open F,'+<F';eval{flock F,2};1 for 
 <F>;$.++;if($t){$_=$t;s/</</g;$h='<a href=';s!(https?外部リンク:.+?)$!$h$1>$1</a>!mg 
 ;s!>>(\d+)!$h#$1>>>$1</a>!g;s/\n/br/eg;seek F,0,2;print F dt("$. :".b(a{href=> 
 $m?"mailto:$m":undef,name=>$.},$n||='名無しさん'),':'.localtime),(dd $_.br.br) 
 ."\n"}seek F,0,0;*x=*textfield;print header(-charset=>''),start_html(-style=>' 
 body{background:#eee}b{color:green}').startform,dl(<F>),hr,submit('書き込む'),' 
 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',5,70,1),endform.end_html; 
 -------------------- 
  
 結構つかれた・・・。 
129: nobodyさん [sage] 03/04/18 16:33 ID:??? AAS
 すげぇ… 
130(1): nobodyさん [sage] 03/04/19 00:20 ID:??? AAS
 >>128 
 日本語まともに表示できるようにしたら、URL リンク外してもはみだしちゃった。 
  
 #!/usr/bin/perl 
 use CGI':all';open F,'+<F';eval{flock F,2};[<F>];$.++;*i=*param;if($_=i T){s/< 
 /&lt;/gx;$h='<a href="';s!(&gt;&gt;\d+)!$h#R$1">$1</a>!g;s/\n/br/eg;$m=i M;seek 
 F,0,2;print F dt("$. :".b(a{name=>"R$.",$m&&(href=>"mailto:$m")},i(N)|| 
 '名無しさん'),':'.localtime),dd($_.br.br),"\n"}*x=*textfield;$c='Shift_JIS'; 
 seek F,0,0;put header(-charset=>$c),start_html(-encoding=>$c,-lang=>'ja', 
 -style=>'body{background:#eee}b{color:green}'),dl(<F>),hr,startform,p(submit( 
 '書き込む'),' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',5,70,1)),endform, 
 end_html 
  
 CGI.pm は 2.91 と 2.46 で確認。&を戻して使って下され。 
上下前次1-新書関写板覧索設栞歴
あと 322 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s