[過去ログ]
■ SS速報VIPに初めて来た方へ (1002レス)
■ SS速報VIPに初めて来た方へ http://ex14.vip2ch.com/test/read.cgi/news4ssnip/1423920081/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(簡易版)
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
985: Kastanie ★ [saga] 2015/03/20(金) 12:12:06.78 ID:??? date_default_timezone_set('Asia/Tokyo'); /* setting ----------------------------------------------------------------------------- */ $keyPath = './nipWelcomeThreadsDatId.txt'; /* bbs */ $b = 'news4ssnip'; /* key */ $kf = @file_get_contents($keyPath); /* from */ $f = // ◆kuri/xzxzs /* mail */ $ma = 'saga'; // if target thread's rank is higher than $rankBorder, do not post. $rankBorder = 20; // if target thread has $resBorder reses already, do not post. $resBorder = 980; /* main ----------------------------------------------------------------------------- */ // debug $debugmode = (isset($_GET['debug']) && ($_GET['debug'] == 't')); // key file check if($kf === false || $kf == ''){ welcomeThreadKeyResearch($keyPath); exit(0); } $k = (integer) $kf; // load tartget thread's information $thread = threadChk($b, $k); $rank = $thread[0]; $resQty = $thread[1]; if($rank === false || $resQty === false) exit('thread info loading error.'); if(!$debugmode){ if($rank < $rankBorder) exit("target's rank is higher than {$rankBorder}."); if($resQty < 11) exit("thread's templaet is not written."); if($resQty > $resBorder){ welcomeThreadKeyResearch($keyPath); exit("target's res qty is more than {$resBorder}."); } } // create message $me = randomMsg($resBorder, $resQty); if($me === false && $me == '') exit('random message creating error.'); if($debugmode) $me = "debug mode.\nrandom message={$me}"; // post execute if($debugmode){ $b = 'zikken'; $k = 1410954923; } $post = nipWelcomeAutoPost($b, $k, $f, $ma, $me); $exitMsg = ($post)? 'post success.' : 'post error!'; exit($exitMsg); http://ex14.vip2ch.com/test/read.cgi/news4ssnip/1423920081/985
986: Kastanie ★ [saga] 2015/03/20(金) 12:15:55.53 ID:??? /* ----------------------------------------------------------------------------- get subject.txt and check target thread's information. (most top = return 1) in: [string] bbs [integer] dat ID out: [mixed] (int) rank / (bool) false ----------------------------------------------------------------------------- */ function threadChk($b, $k){ // get subject.txt $subject = @file("https://ex14.vip2ch.com/{$b}/subject.txt"); if($subject === false) return false; // search target's dat ID $sk = (string) $k; $ptn = "/^(\d{10})\.dat<>.+ \((\d+)\)$/"; $r = array(false, false); foreach($subject as $i => $line){ $pregChk = preg_match($ptn, $line, $match); if($pregChk === false || $pregChk === 0) continue; if($match[1] == $sk){ $r = array( $i + 1, $match[2], ); break; } } return $r; } /* ----------------------------------------------------------------------------- get target thread's dat and count current res qty. (>>1 only = return 1) in: [string] bbs [integer] dat ID out: [mixed] (int) res qty / (bool) false ----------------------------------------------------------------------------- */ function currentResCount($b, $k){ // get DAT file $sk = (string) $k; $dat = @file("https://ex14.vip2ch.com/{$b}/dat/{$sk}.dat"); if($dat === false) return false; return count($dat); } http://ex14.vip2ch.com/test/read.cgi/news4ssnip/1423920081/986
987: Kastanie ★ [saga] 2015/03/20(金) 12:16:45.94 ID:??? /* ----------------------------------------------------------------------------- create post message (blank or random message) in: [integer] resBorder [integer] current res qty. out: [mixed] (str) message / (bool) false ----------------------------------------------------------------------------- */ function randomMsg($resBorder, $c){ // near 1000 if(($resBorder - 5) < $c){ $srb = (string) $resBorder; return "{$srb}レスに達する頃には、botは夢の中なの。\n" .">>{$srb}の人、次スレを立ててくださいなの……あふぅ。"; } // midnight time -> random message $t = (double) date('Hi'); if($t < 140 || $t > 1950){ $messages = array( 'このスレの1〜10レス目を読んで楽しい創作ライフを!', 'テストはテストスレで!', 'このスレはage進行です(まちがってsageてる人がいても怒らないで!)', '完結、中断などで使わなくなったスレはhtml化依頼を!', '立て逃げ、乗っ取りは禁止です', 'このbotが目障りなら、◆kuri/xzxzsをNGNameにしてみよう', '聞く場所がわからない質問は、このスレで聞いてOK!', ); $seed = mt_rand(0, count($messages)-1); return $messages[$seed]; } // other -> blank return ' '; } /* ----------------------------------------------------------------------------- get subject.txt, search welcome thread and write that's dat id to local file in: [string] file path ----------------------------------------------------------------------------- */ function welcomeThreadKeyResearch($keyPath){ // get subject.txt $subject = file("https://ex14.vip2ch.com/news4ssnip/subject.txt"); if($subject === false) exit('thread key research failed.'); $needle = 'SS速報VIPに初めて来た方へ'; $ptn = "/^(\d{10})\.dat<>(.+) \(\d+\)$/"; $keys = array(); foreach($subject as $line){ $pregChk = preg_match($ptn, $line, $match); if($pregChk === false || $pregChk === 0) continue; $title = mb_convert_encoding($match[2], 'UTF-8', 'SJIS-WIN'); if(strpos($title, $needle) !== false){ $keys[] = (integer) $match[1]; echo "<p>{$title}</p>"; } } if(count($keys) == 0) exit('welcome thread not found.'); $maxKey = max($keys); $write = file_put_contents($keyPath, (string) $maxKey); if($write === false) exit('thread key writing failed.'); } /* ----------------------------------------------------------------------------- post execute ----------------------------------------------------------------------------- */ function nipWelcomeAutoPost($b, $k, $f, $ma, $me){ // 投稿する処理(ひみつ) } http://ex14.vip2ch.com/test/read.cgi/news4ssnip/1423920081/987
988: Kastanie ★ [saga] 2015/03/20(金) 12:19:13.05 ID:??? だいたいこんな感じです ここに貼る前にちょっと手を入れたので、本当にこのコードで動くかはわかりませんが しかし、見づらいコードだ……これを書き始めたころの自分をひっぱたいてやりたい http://ex14.vip2ch.com/test/read.cgi/news4ssnip/1423920081/988
991: Kastanie ★ [saga] 2015/03/20(金) 15:44:41.44 ID:??? >>989 ああ、そこだ。手を入れる前に漠然と「あ、typoだ」と思って ちょこちょこ書き換えてるうちにどこがtypoだったか分からなくなってたんです あーすっきりした。ありがとうございます http://ex14.vip2ch.com/test/read.cgi/news4ssnip/1423920081/991
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.267s*