2009/10/18

卡馬代練計畫

卡馬代練計畫
這個梗真的不錯,看起來像是 M$7的舔秘點.....
http://funp.com/t762093 但是我好像以前就幹過這檔事是了,因為有人發出了需求...
當個專業的 MIS 就是要滿足需求

於是就在網路上找了 卡馬機器人 , 的 lib
http://code.google.com/p/rlplurkapi/
請下載,裡面有 php 及 python 的程式
http://code.google.com/p/rlplurkapi/downloads/list
解開發會發現有個 example.php 但是不太會用,算以亂改一通....
基本上就改成大概這樣,分成
1.定時 post 氣象預報(氣象局即時 rss)
2.及定時 post 正妹圖(flickr的rss)

#!/usr/bin/php
<?php
// plurk 帳號資訊
$nick_name = 'mtchang.xx@xxxx.com';
$password = 'xxxxxxxx';

require 'RLPlurkAPI.php';

$plurk = new RLPlurkAPI();
$plurk->login($nick_name, $password);


// -------------------------------------
function getCWB($string){

if($string=='kaohsiung') {
        // 高雄氣象報告
        $file_xml="cwbdata_36_02.xml";
        $xml = simplexml_load_file($file_xml, 'SimpleXMLElement',LIBXML_NOCDATA);
        // 由氣象局的 RSS 顯示天器相關資訊
        // $xml->channel->item->pubDate;
        $cwbdate_title = $xml->channel->item->title;
        $cwbdata_url   =  $xml->channel->item->link;
        $cwbdata_desc  = $xml->channel->item->description;
        preg_match_all('/.*%/', $cwbdata_desc , $cwbdata);

        $today = getdate();

        $data="\n目前時間:".$today[mon].'-'.$today[mday].'-'.$today[hours];
        $data=$data."\n氣象報告:".$cwbdata[0][0];
        // print_r($cwbdata[0]);
        // echo $data;
        // $plurk->addPlurk('en', 'says', "高雄市天氣:$data");

        return $data;
        }
}
// usage sample: echo getCWB('kaohsiung');


// -------------------------------------
// 定時 POST 文
// ------------------------------------

echo "\n\n------ addPlurk 定時post文 ------\n";
$today = getdate();
print_r($today);

/* 變數如下,如需其他時間請自行更改,但需配合 cron 設定
Array 
(
    [seconds] => 51
    [minutes] => 20
    [hours] => 23
    [mday] => 30
    [wday] => 6
    [mon] => 5
    [year] => 2009
    [yday] => 149
    [weekday] => Saturday
    [month] => May
    [0] => 1243696851
)

*/

echo '目前時間:'.$today[mon].'-'.$today[mday].'-'.$today[hours].'-'.$today[minutes]."\n";

if($today[hours]==0 AND $today[minutes]==0) {            // test ok 9/6

    $plurk->addPlurk('en', 'says', '踩線...i am robot... ');

}elseif( ($today[hours]==8 AND $today[minutes]==0) OR ($today[hours]==17 AND $today[minutes]==0) ) {

        // 高雄氣象報告
        $cwbdata=getCWB('kaohsiung');
        $plurk->addPlurk('en', 'says', " $cwbdata ");
        echo "\n氣象報告 running....\n".$cwbdata;

}
/*  因為抓到的 rss xml 會有抓錯正妹的狀況,所以先關了...
elseif($today[minutes]==0 ) {      // 以下為正妹robot

        $file_xml="flickr.xml";
    
        $xml = simplexml_load_file($file_xml, 'SimpleXMLElement',LIBXML_NOCDATA);
        //print_r($xml);
    $rand=$today[hours];    // 0~19依序輪撥正妹
        //$rand=rand(0,19);
        $beauty=$xml->entry[$rand]->link[2];
        $published=$xml->entry[$rand]->published;
        $link="\n正妹保卡馬".$published.' '.$beauty[href][0]."\n";
    echo $link;
    $plurk->addPlurk('en', 'says', "$link");
}
*/


* 當然這樣是不會動的,還要加上 crontab 排程,讓資訊可以變動流通

mtchang@www:~/public_html/svn/plurk-php$ crontab -l
# m h  dom mon dow   command
0 0-20 * * * /home/mtchang/svn/plurk-php/gocron.sh

mtchang@www:~/svn/plurk-php$ more gocron.sh 
#!/bin/bash
cd /home/mtchang/svn/plurk-php
# update cwb data
w3m http://www.cwb.gov.tw/rss/forecast/36_02.xml > cwbdata_36_02.xml
w3m http://www.cwb.gov.tw/rss/forecast/36_14.xml > cwbdata_36_14.xml


# run plurk check
/home/mtchang/svn/plurk-php/skip_karma.php 

* 本來還有寫判斷與聚集詞彙的功能,但常常暴走後來就整個不想理他了.其實這可以很好玩的
* 中研院中文斷詞系統,有提供api可以玩 http://ckipsvr.iis.sinica.edu.tw/
* 後來 yahoo 也出了一個 http://tw.developer.yahoo.com/cas/ 也是要註冊api才可以玩

結合斷詞系統就可以寫得更棒了....只是我沒有時間...只能在這裡嘴炮.

沒有留言: