substr($text,0,140), 'source'=>self::$src)); } static function getUpdates($user, $pass, $since_id = '', $count = '') { $url = self::$url_status; if( $count ) { $url .= "?count=$count"; } if( $since_id ) { $url .= $count? "&" : "?"; $url .= "since_id={$since_id}"; } return self::get($url, $user, $pass); } static function getFollowers($user, $pass, $page = '') { $url = self::$url_followers; if( $page ) { $url .= "?page=$page"; } return self::get($url, $user, $pass); } static function getReplies($user, $pass, $lastreply = '', $page = '') { $url = self::$url_replies; if( $lastreply ) { $url .= "?since_id=$lastreply"; } if( $page ) { $url .= $lastreply? "&" : "?"; $url .= "page=$page"; } return self::get($url, $user, $pass); } static function getFriends($user, $pass) { return self::get(self::$url_friends, $user, $pass); } static function sendDirectMessage($user, $pass, $friend, $text) { $args = array('user'=>$friend, 'text'=>substr($text,0,140)); return self::post(self::$url_direct_new, $user, $pass, $args); } static function getDirectMessages($user, $pass, $lastid, $page = '') { $url = self::$url_direct_get; if( $lastid ) { $url .= "?since_id=$lastid"; } if( $page ) { $url .= $lastid? "&" : "?"; $url .= "page=$page"; } return self::get($url, $user, $pass); } private function post($url, $user, $pass, $args) { $session = curl_init(); curl_setopt ( $session, CURLOPT_URL, $url ); curl_setopt ( $session, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ); curl_setopt ( $session, CURLOPT_HEADER, false ); curl_setopt ( $session, CURLOPT_REFERER, self::$url_referer ); curl_setopt ( $session, CURLOPT_USERPWD, $user . ":" . $pass ); curl_setopt ( $session, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $session, CURLOPT_POST, 1); $args_txt = ''; foreach($args as $k=>$v) { if( $args_txt ) { $args_txt .= "&"; } $args_txt .= "$k=".urlencode($v); } curl_setopt ( $session, CURLOPT_POSTFIELDS, $args_txt); $result = curl_exec ( $session ); curl_close( $session ); return json_decode($result); } private static function get($url, $user, $pass) { $session = curl_init(); curl_setopt ( $session, CURLOPT_URL, $url ); curl_setopt ( $session, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ); curl_setopt ( $session, CURLOPT_HEADER, false ); curl_setopt ( $session, CURLOPT_USERPWD, $user . ":" . $pass ); curl_setopt ( $session, CURLOPT_RETURNTRANSFER, 1 ); $result = curl_exec ( $session ); curl_close( $session ); return json_decode($result); } private static $url_update = "http://twitter.com/statuses/update.json"; private static $url_status = "http://twitter.com/statuses/user_timeline.json"; private static $url_replies = "http://twitter.com/statuses/replies.json"; private static $url_friends = "http://twitter.com/statuses/friends.json"; private static $url_followers = "http://twitter.com/statuses/followers.json"; private static $url_direct_get = "http://twitter.com/direct_messages.json"; private static $url_direct_new = "http://twitter.com/direct_message/new.json"; /** @var $url_referer is the botname we registered with twitter -- should not be changed! */ private static $url_referer = "http://dev.zentrack.net/devbot/"; private static $src = 'ztdevbot'; } ?>