どうもはてなRSSをうまく読み込んでくれなくなったので対応してみた。あらたにSnoopyを使って組み直し。2つのRSSを読み込んで、新しい要素だけを適当に加工してmixiに書き込むというphpスクリプト。WINDOWSのタスクに登録して1日2回書き込み。
でも前のHTTP/Request.phpで作っていたバージョンがなぜ動かなくなったのかは不明のまま。
<?php #美乳 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); require_once "XML/RSS.php"; include "Snoopy.class.php"; $email = "address"; $pass = "pass"; $id = "ID"; $post_key = "key"; #ログイン $login = new Snoopy; $login_url = "http://mixi.jp/login.pl"; $login_vars["next_url"] = "/home.pl"; $login_vars["email"] = $email; $login_vars["password"] = $pass; $login_vars["sticky"] = "on"; $login->submit($login_url,$login_vars); $cookies = $login->cookies; WriteMixi("hatena.txt","http://d.hatena.ne.jp/doroyamada/rss"); WriteMixi("diary.txt","http://kazz.mine.nu/diary02/rss_1_0.rdf"); function WriteMixi($datfile,$rss){ global $post_key, $cookies,$id; $LastUpdateUnix = $NewestEntryUnix =filemtime($datfile); $LastUpdateRss = UnixtoRss($LastUpdateUnix); #RSS読み込み $rss =& new XML_RSS($rss); $rss->parse(); $items = array_reverse($rss->getItems()); foreach ($items as $item) { $ItemUnix = RssToUnix($item['dc:date']); if($ItemUnix <= $LastUpdateUnix){ # ファイルのタイムスタンプと比較 continue; } $NewestEntryUnix = max($ItemUnix,$NewestEntryUnix); $body = mb_convert_encoding($item['description'],"EUC-JP","UTF-8")."\n".$item['link']." ".str_replace(array("T","-","+09:00"),array(" ","/",""),$item['dc:date']); // POST $diary = new Snoopy; $submit_url = "http://mixi.jp/add_diary.pl"; $submit_vars["submit"] = "confirm"; $submit_vars["packed"] = ""; $submit_vars["post_key"] = $post_key; $submit_vars["news_id"] = ""; $submit_vars["id"] = $id; $submit_vars["diary_title"] = mb_convert_encoding($item['title'],"EUC-JP","UTF-8"); $submit_vars["diary_body"] = $body; $diary->cookies = $cookies; $diary->submit($submit_url,$submit_vars); sleep(2); #ひと休み } #foreachの終わり。 if(is_int($NewestEntryUnix)){touch($datfile,$NewestEntryUnix);} #タイムスタンプ変更 } #functionの終わり function UnixToRss($unixdate){ return date("Y-m-d\TH:i:s+09:00",$unixdate); } function RssToUnix($rssdate){ if(ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})\+09:00",$rssdate,$temp)){ return mktime($temp[4],$temp[5],$temp[6],$temp[2],$temp[3],$temp[1]); }else{ return FALSE; } } ?>