誕生日を呟いてくれる自分用bot作る!(のちのちWEBサービスとして。。。!!)


誕生日を登録したら、その日に呟いてくれるBOT作成します!!
のちのちはWEBサービスとして、できれば!と。

でも第一段階は自分専用で作ります。


作り方

・データベースは「days」で、カラムは「id(int)・name(varchar)・birthday(date)」
 →idは主キーで auto_increment 指定。

・bakeでdaysというプロジェクトフォルダを作ります。
 →コントローラー・モデル・ビュー・db_config も作成
作り方参考URL:http://wiki.github.com/slywalker/CakePHPWorkshopKansai/chapter2-blog-tutorial



model/day.php



<?phpclassDayextendsAppModel{
var
$name='Day';

//本日の日付取得
function getdate(){
$today = getdate();
$data = $this->Check($today);

$data = "-".$data['mon']."-".$data['mday'];
return
$data;
}

//年齢計算
function Age($data){
$today = getdate();

if(isset($data)){
foreach(
$data as $k => $v){
$year = explode("-",$v['Day']['birthday']);
$age = (int)$today['year']-(int)$year['0'];
$this->tweet($v,$age);
}
}
return;
}

//1桁の月・日に0を付ける
function Check($data){
if(
mb_strlen($data['mon']) === 1){
$data['mon'] = "0".$data['mon'];
}
if(
mb_strlen($data['mday']) === 1){
$data['mday'] = "0".$data['mday'];
}
return
$data;
}

//つぶやく
function tweet($v,$age){
$this->Twitter = ConnectionManager::getDataSource('twitter');

$text = $v['Day']['name']."'s BirthDay !! ".$age." yeras old!";
$this->Twitter->status_update($text);
}
}
?>





controller/days_controller.php


actionを追加

function tweet(){
$days = new Day();
$today = $days-> getdate();
$data = $this->Day->find('all',array('conditions'=>array("Day.birthday LIKE" => "%".$today )));
$days->Age($data);
}

・actionに対応するviewを作成
 →view/days/tweet.ctp

アクセスは
http://ドキュメントルート(緑の箱が出る画面)/コントローラー名(days)/アクション名(add/tweet etc...)

で、cronで定期的に呼び出したりする。