ギークハウス元住吉の当番お知らせ用botです。
仕様
- cronで毎時巡回して8時と22時に当番に@ツイート。それ以外の時間はランダムツイート。
- 当番は毎週日曜日に交代
bot.php
<?php
// twitteroauth.phpとconfig.phpを読み込む
require_once('twitteroauth/twitteroauth.php'); // onceは循環参照を防ぐ
require_once('config.php');
// クラスのインスタンス化。TwitterOAuthがクラス
$conn = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
// $members(当番順のTwitterアカウント)はconfig.phpに移動した。
// ファイルから当番を読み込むように書き換える
// ツイートテンプレはconfig.phpに移動
// 当番の判定
$now = new DateTime(); // 現在日時
$duty = $now->format('W') % 7; // 週番号を7人で割って余りで判定。月曜始まり注意。
// 次の当番。6の場合は次を0にする。土日に使う。
if ($duty == 6) {
$nextDuty = $duty - 6;
} else {
$nextDuty = $duty + 1;
}
// 曜日で文章を変える
switch ($now->format('D')) {
case 'Sun':
$dutyTw = array('@'.$members[$next_duty].' '.$temp[0],
'@'.$members[$next_duty].' '.'明日、月曜日は'.$trash[1].$temp[3].$temp[0]);
break;
case 'Mon':
$dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[1].$temp[3].$temp[1].$temp[0],
'@'.$members[$duty].' '.'明日、火曜日は'.$trash[0].$temp[3].$temp[0]);
break;
case 'Tue':
$dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[0].$temp[3].$temp[1].$temp[0],
'@'.$members[$duty].' '.'明日、水曜日は'.$trash[2].$temp[3].$temp[0]);
break;
case 'Wed':
$dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[2].$temp[3].$temp[1].$temp[0],
'@'.$members[$duty].' '.'明日、木曜日は'.$trash[0].$temp[3].$temp[0]);
break;
case 'Thu':
$dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[0].$temp[3].$temp[1].$temp[0],
'@'.$members[$duty].' '.'明日、金曜日は'.$trash[3].$temp[3].$temp[0]);
break;
case 'Fri':
$dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[3].$temp[3].$temp[1].$temp[0],
'@'.$members[$duty].' '.'明日、土曜日は'.$trash[0].$temp[3].$temp[0]);
break;
case 'Sat':
$dutyTw = array('@'.$members[$duty].' '.'今日は'.$trash[0].$temp[3].$temp[1].$temp[0],
'@'.$members[$duty].' '.'生ごみの回収とタオルの洗濯をお願いします。1週間お疲れさまでした。'.$members[$next_duty].'明日から当番をお願いします。');
break;
}
// 時間判定
$hour = $now->format('G');
switch ($hour) {
case '8':
$msg = $dutyTw[0];
break;
case '13':
$msg = $timeTw[0];
break;
case '16':
$msg = $timeTw[1];
break;
case '21':
$msg = $dutyTw[1];
break;
case '23':
$msg = $timeTw[2];
break;
default:
$msg = $randTw[mt_rand(0, 10)]; // ランダムツイート
break;
}
// 深夜はツイートしない
if ($hour <= 7) {
$msg = NULL;
}
// test
//echo $msg;
//echo $msg;
//var_dump($duty);
//var_dump($msg);
var_dump($hour);
/*
// statusに入るのがツイートされる文章
$params = array('status' => $msg);
// TwitterOAuthクラスのpostメソッド?を呼び出す。->はアロー演算子
$result = $conn->post('statuses/update', $params);
// 結果出力
var_dump($result);