#author("2023-10-09T23:22:22+00:00;2015-12-03T13:03:34+00:00","","")
|書きかけの項目です|
*目次 [#t40e70cb]
#contentsx(fromhere=true)
#contents
*subject.jsとは [#vaecb65a]
subject.jsを用いることで、板のスレ一覧(subject.txt)を変更できます。
参照:[[V2C 使用法 「外部コマンド:スクリプト」>http://v2c.s50.xrea.com/manual/script.html]]内で「subject.js」と検索。
**仕様 [#r223ae1a]
-文字コードは&size(16){''&color(red){UTF-8};''};です。
-checkSubject(ss,bd,cx) … subject.txtを取得した後解析する前に実行されます。ssそのまま、または変更した文字列を返してください。
--ss … 取得したsubject.txt
--bd … 板オブジェクト
--cx … (現在はダミー)
-subject.jsを変更した時は「ファイル」メニューの「再読み込み」→「subject.js」で再読み込みできます(V2Cの再起動でもok)。
**注意 [#s3701a1e]
-checkSubject(ss,bd,cx)はsubject.txtを実際に取得した時にのみ実行されます。(例えばHTTPレスポンスコードが 304 Not Modified. の時は実行されない。)
-現在ローカル板・Twitter仮想板でcheckSubject(ss,bd,cx)は実行されませんが、将来実行される可能性があります。(2.10.0 [R20120923]時点)
-このスクリプトはスレ一覧が更新された後に動作するので、既に表示されているスレ一覧に適用するには一覧の更新が必要になります
**ダウンロード [#k8230a52]
-&ref(スクリプト一覧/subject.js20120923.zip,20120923時点);
**使用方法の例 [#xd06a455]
***▽ソフトウェア板でスレッド924を下げてスレタイの先頭に★を追加する [#e3084868]
 function checkSubject(ss,bd,cx) {
   if (!bd.bbs.is2ch||(bd.key!='software')) {
     return ss;
   }
   var re=new RegExp('^(\\d+)\\.dat<>(.+) \\((\\d+)\\)$','gm');
   var ls=[],ls9=[];
   var rt;
   while (rt=re.exec(ss)) {
     if (rt[1][0]=='9') {
       ls9.push(rt[1]+'.dat<>★ '+rt[2]+' ('+rt[3]+')\n');
     } else {
       ls.push(rt[0]+'\n');
     }
   }
   return ls.concat(ls9).join('');
 }
引用:[[V2C 使用法 「外部コマンド:スクリプト」>http://v2c.s50.xrea.com/manual/script.html]]
***▽スレタイに含まれる[転載禁止]や[無断転載禁止]、&copy;2ch.net,&copy;bbspink.comを削除する(一重版) [#removecopyrighttag]
 function checkSubject(ss,bd,cx) {
  ss = removeSageteyon2ch(ss, bd, cx);
  ss = removeSageteyonPink(ss, bd, cx);
  return ss;
 }
 
 function removeSageteyon2ch(ss, bd, cx)
 {
  var re = /^(\d+)\.dat<>(?:\[(?:無断)?転載禁止\] )?(.+?)(?: \[(?:無断)?転載禁止\])?(&copy;|&#169;)2ch\.net\t(.*?) \((\d+)\)$/gm;
  return ss.replace(re, '$1.dat<>$2$3 ($4)\n');
 }
 
 function removeSageteyonPink(ss, bd, cx)
 {
  var re = /^(\d+)\.dat<>(?:\[(?:無断)?転載禁止\] )?(.+?)(?: \[(?:無断)?転載禁止\])?(&copy;|&#169;)bbspink\.com\t(.*?) \((\d+)\)$/gm;
  return ss.replace(re, '$1.dat<>$2$3 ($4)\n');
 }
-おそらく既にsubject.jsを導入して何らかの機能を活用していると思いますので、現在使用しているsubject.jsに上記ルーチンを追加して使用してください

***▽スレタイでリピートする[転載禁止]や[無断転載禁止]、&copy;2ch.netを削除する(多重版) [#removecopyrighttag]
 function checkSubject(ss,bd,cx) {
 //  ss = removeSageteyon2ch(ss, bd, cx);
  ss = removeSageteyon2chDuplex(ss, bd, cx);
  return ss;
 }
 
 function removeSageteyon2chDuplex(ss, bd, cx)
 {
  var re = /^(\d+)\.dat<>(?:(?: ?\[(?:無断)?転載禁止\])*)?(.+?)(?:\[(?:無断)?転載禁止\])?(?:(?:\(c\)|&copy;|&amp;copy;|&#169;|&amp;#169;)2ch\.net)?(?: \[(?:無断)?転載禁止\])?(?:&copy;|&#169;)2ch\.net\t(.*?) \((\d+)\)$/gm;
  return ss.replace(re, '$1.dat<>$2$3 ($4)\n');
 }
 
-上にある転載禁止削除ルーチンの二重記載対応版です。機能的には重複しますので、こちらを使用する場合は
一重版を利用しない設定にしてから、こちらの多重版だけを利用するように設定してください。
-多重化した部分をさらに重ねれば、原理的には三重版にも対応可能です。スレタイ前方の処理のように一重版の
判断部分をリピート「括って当該部位をリピート指定+」でシンプル対応も可能ですが、途中を意図的に変えてくるなどの
回避策を講じてくることへの想定も必要で、スレタイ後方の処理では単純に三重記述して対応可能性を期待できます。
捕獲する部分を増やすぶん余計な処理になるため微量ながらもマシンパワーを無駄に食われます。


**外部リンク [#lc3cb0f3]
-スレタイplus for V2C
http://anti.rosx.net/be/ttp/

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS