OAuthを使用したPHPでのbotの作り方6

前々回OAuthを使用したPHPでのbotの作り方4 - 付箋的メモ帳の続き
いよいよbotの動作の中核にです。
まずは中身のソース

<?php
	include("前回の解説ソース");
	// Access Tokenの値
	$access_token = "アクセストークン";
	// Access Token Secretの値
	$access_token_secret = "アクセストークンシークレット";
	
	$traceFlg = false;
	if($traceFlg){
		toLog("---------------\n");
	}
	
	//xmlが帰ってくる
	$xml = access($access_token,$access_token_secret);
	$filename = "Rep-timestamp.txt";
	$since = timestamp($filename);
	
	//リプライがある
	if($xml != null){
		if($traceFlg){
			toLog("リプライ");
		}
		//リプライ件数分処理
		foreach ($xml->status as $value ){
			//$status_number = $value->id; //個別発言のステータスナンバー
			$str = $value->text;    //発言内容
			$screen_name = $value->user->screen_name; //発言者のtwitterID
			$name = $value->user->name;
			
			$time = strtotime($since);
			$linetime = strtotime($value->created_at);
			if($screen_name != "botのアカウント"){
				if($linetime > $time){
					$message = rep($name,$str);
					$message = shufullMsg($message);
					if($message != ""){
						$message = "@".$screen_name." ".$message;//リプライ用メッセージ作成
						toLog("\n".$str." ■ ".$message."\n");
						post($access_token,$access_token_secret,$message);
						$retcnt++;
					}
				}
			}
		}
		toLog("処理終了\n");
	}

	toLog("通常ポスト");
	$filename = "TL-timestamp.txt";
	$since="";
	if(file_exists($filename)){//存在チェック
		$fp = fopen($filename,"r");
		$since=fgets($fp);
		fclose($fp);
	}
	$since = strtotime($since);
	$h = strtotime("- 1 hours");
	if($h > $since){
		if($traceFlg){
			toLog("\n時間比較 一時間前:前回のポスト時刻 ".$h.":".$since."\n");
		}
		timestamp($filename);
		$msg = nomal();
		$message = shufullMsg($msg);
		post($access_token,$access_token_secret,$message);
		if($traceFlg){
			toLog("通常メッセージ:".$message."\n");
		}
	}
	toLog("メソッド終了\n");
	
//通常
function nomal(){
	$message= array(//基本のセット
				"セリフ1",
				"セリフ2"
			);
	$now = getdate();
	if(($now["wday"]==0) | ($now["wday"]==6)){//日曜か土曜日
		if($now["hours"] == 12){
			array_push($message,
					"セリフ1",
					"セリフ2"
				);
		}else if($now["hours"] == 15){
			array_push($message,
					"セリフ1",
					"セリフ2"
				);
		}
	}else{
		if($now["hours"] == 6){
			array_push($message,
					"セリフ1",
					"セリフ2"
				);
		}else if($now["hours"] == 12){
			array_push($message,
					"セリフ1",
					"セリフ2"
				);
		}else if($now["hours"] == 15){
			array_push($message,
					"セリフ1",
					"セリフ2"
				);
		}else if($now["hours"] == 21){
			array_push($message,
					"セリフ1",
					"セリフ2"
				);
		}
	}
	
	return $message;
}

//リプライ用
function rep($name,$str){
	$message = "";
	
	/*パターンマッチスタート*/

	if(preg_match("/美味しい(ね|ですね|ですよね)/u",$str)
		|preg_match("/おいしいしい(ね|ですね|ですよね)/u",$str)
		|preg_match("/うまかった(ね|ですね|ですよね)/u",$str)
	){
		$message = array(
			"セリフ1",
			"セリフ2"
		);
	}
	
	return $message;
}

?>

botの中核の処理はこれだけです。

最初にリプライを取得し、リプライに対して反応語句を選んでポスト。
次に通常ポストを選んでポストするだけです。

詳しい解説はまた次回。