[過去ログ] ■ SS速報VIPに初めて来た方へ (1002レス)
上下前次1-新
抽出解除 必死チェッカー(簡易版) レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
985: Kastanie ★ [saga] 2015/03/20(金) 12:12:06.78 ID:??? AAS
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);
986: Kastanie ★ [saga] 2015/03/20(金) 12:15:55.53 ID:??? AAS
/* -----------------------------------------------------------------------------
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("外部リンク:ex14.vip2ch.com
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("外部リンク:ex14.vip2ch.com
if($dat === false) return false;
return count($dat);
}
987: Kastanie ★ [saga] 2015/03/20(金) 12:16:45.94 ID:??? AAS
/* -----------------------------------------------------------------------------
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("外部リンク:ex14.vip2ch.com
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){
// 投稿する処理(ひみつ)
}
988: Kastanie ★ [saga] 2015/03/20(金) 12:19:13.05 ID:??? AAS
だいたいこんな感じです
ここに貼る前にちょっと手を入れたので、本当にこのコードで動くかはわかりませんが
しかし、見づらいコードだ……これを書き始めたころの自分をひっぱたいてやりたい
991: Kastanie ★ [saga] 2015/03/20(金) 15:44:41.44 ID:??? AAS
>>989
ああ、そこだ。手を入れる前に漠然と「あ、typoだ」と思って
ちょこちょこ書き換えてるうちにどこがtypoだったか分からなくなってたんです
あーすっきりした。ありがとうございます
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.219s*