Arcadia SS投稿掲示板のSSをPSPで読む(2)
Arcadia SS投稿掲示板のSSをPSPで読む - MasaHeroの日記の続き。
気づいたらArcadia側の仕様が変わっていたのでそれに対応+機能追加。各話毎に別ファイルとして切り分けるようにした。
disabledraw; #num_ext=strlen(filetype); #num_name=strlen(basename2); $bname=directory2+"\\"+leftstr(basename2,#num_name-#num_ext); //余分なヘッダの削除 movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<link"; beginsel; searchdown ">"; right 1; endsel; delete; searchdown "<script"; beginsel; searchdown "</script>"; right 9; endsel; delete; searchdown "<body"; right 5; insert ">"; beginsel; searchdown "a name=kiji"; searchdown "a name=kiji"; left; endsel; delete; //記事のカウント #kijicount=0; movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "name=kiji"; #rslt=result; while(#rslt){ #kijicount=#kijicount+1; searchdown "<td"; searchdown ">"; right; replacedown "\[[0-9]+\]","",regular; #tmp_x=x; #tmp_y=y; searchdown "</td>"; $kiji_name[#kijicount]=gettext(#tmp_x,#tmp_y,x,y); searchdown "name=kiji"; #rslt=result; } //記事目次の挿入 movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<title>"; right 7; insert $kiji_name[1]; beginsel; searchdown "</title>"; endsel; delete; searchdown "<body>"; right 6; insert "\n"; insert "<ol>"; #kijicount_tmp=2; while(#kijicount_tmp<=#kijicount){ insert "<li><a href=\"./"+leftstr(basename2,#num_name-#num_ext)+"/"+str(#kijicount_tmp)+".html\">" +$kiji_name[#kijicount_tmp]+"</a></li>\n"; #kijicount_tmp=#kijicount_tmp+1; } insert "</ol>\n"; //物理タグの排除 //font movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<font"; while(result){ beginsel; searchdown ">"; right; endsel; delete; searchdown "<font"; } replaceallfast "</font>",""; //brタグの削減 replaceallfast "<br><br>","<br>"; replaceallfast "<br><br>+","<br><br>",regular; //余分な空白の排除 replaceallfast " +"," ",regular; //widthの削除 replaceallfast "width=[0-9]+%","",regular; //最後の広告の排除 gofileend; searchup "<table"; beginsel; searchdown "</body>"; endsel; delete; //tableをpで代用 movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<table[ >]",regular; while(result){ beginsel; searchdown ">"; right; endsel; delete; insert "<p>"; searchdown "<table[ >]",regular; } movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<tr[ >]",regular; while(result){ beginsel; searchdown ">"; right; endsel; delete; insert "<p>"; searchdown "<tr[ >]",regular; } movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<tt[ >]",regular; while(result){ beginsel; searchdown ">"; right; endsel; delete; insert "<p>"; searchdown "<tt[ >]",regular; } replaceallfast "(</table>)|(</tr>)|(</tt>)","</p>",regular; movetolineno 1,1; //カーソルを最初の文字に移動する searchdown "<td[ >]",regular; while(result){ beginsel; searchdown ">"; right; endsel; delete; searchdown "<td[ >]",regular; } replaceallfast "</td>",""; //blockquoteの削除 replaceallfast "</*blockquote>","",regular; //ファイル分割 run "mkdir "+$bname; gofiletop; #kijicount_tmp=1; while(#kijicount_tmp<=#kijicount){ gofiletop; searchdown "<a name=kiji"; searchdown "<a name=kiji"; if( !result ) break; beginsel; gofileend; endsel; cut; insert "</body></html>\n"; save; newfile; setencode 6,1; #kijicount_tmp=#kijicount_tmp+1; insert "<html lang=\"ja\"><head>\n"; insert "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"; insert "<title>"+$kiji_name[#kijicount_tmp]+"</title>\n</head>\n"; insert "<body>\n"; paste; saveas $bname+"\\"+str(#kijicount_tmp)+".html"; } enabledraw;