<?php
class Twitter
{
protected $baseUrl = 'http://twitter.com/statuses/';
protected $username = 'username';
protected $password = 'password';
public $statuses = array();
public function apiStatuses($count = 3)
{
$xml = new SimpleXMLElement(file_get_contents($this->baseUrl . 'user_timeline/' . $this->username . '.xml?count=' . $count));
foreach($xml->status as $stat) {
$this->statuses[] = $stat->text;
}
}
public function getStatuses()
{
return DB::select('*', 'tweets', '', 'rank ASC');
}
public function updateStatus($status)
{
$ch = curl_init($this->baseUrl . 'update.xml');
$user = $this->username;
$pass = $this->password;
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
curl_setopt($ch, CURLOPT_POSTFIELDS, 'status=' . $status);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
}
class Cron extends Twitter
{
function __construct()
{
$this->apiStatuses();
if($this->statuses) {
$fields = array('status', 'rank');
DB::delete('tweets', "tweet_id > '0'");
$i = 1;
foreach($this->statuses as $stat) {
$values['status'] = $stat;
$values['rank'] = $i;
DB::insert('tweets', $fields, $values);
$i++;
}
}
}
}
?>
<?php
require_once('/path-to-class-lib/twitter.class.php');
require_once('/path-to-class-lib/cron.class.php');
if($_GET['t'] == '1') {
new Cron();
}
?>