private function process_data($data)
 {
     foreach ($data->results as $tweet) {
         $tweet = new Tweet($tweet->id_str);
         $tweet->save();
         $this->tids[] = $tweet->tid;
     }
 }
Example #2
0
 public function store(Request $request)
 {
     $type = $request->get('type');
     $tweet = Tweet::find($id);
     if (!$tweet) {
         $tweet = new Tweet();
         $tweet[$type] = 1;
     }
     $tweet->id = $request->get('id');
     $tweet->text = $request->get('text');
     $tweet->increment($type);
     $tweet->save();
     return $request->all();
 }
 public function create()
 {
     $tweet = new Tweet();
     $fromAccount = false;
     if ($this->GetData('account_id')) {
         $account = TwitterAccount::find_by_id($this->GetData('account_id'));
         if ($account) {
             $fromAccount = true;
             $tweet->twitter_account_id = $account->id;
             $tweet->account = $account;
         }
     }
     if ($this->post) {
         $tweet->message = $this->PostData('message');
         $tweet->set_publish_at($this->PostData('publish_at'));
         if ($this->PostData('twitter_account_id')) {
             $tweet->twitter_account_id = $this->PostData('twitter_account_id');
         }
         if ($tweet->save()) {
             Site::Flash('notice', 'Your tweet has been added');
             if ($fromAccount) {
                 Redirect("admin/twitter/accounts/{$account->id}/");
             } else {
                 Redirect("admin/twitter/tweets");
             }
         }
     }
     if ($fromAccount) {
         $this->assign('account', $account);
     } else {
         $accounts = array();
         $allAccounts = TwitterAccount::find_all();
         foreach ($allAccounts as $account) {
             $accounts[$account->id] = $account->name;
         }
         $this->assign('accounts', $accounts);
     }
     $this->assign("tweet", $tweet);
     $this->assign("fromAccount", $fromAccount);
     $this->title = "Add Tweet";
     $this->render("tweet/create.tpl");
 }
 public function add_tweet($message, $publish_at = null)
 {
     if (!$publish_at) {
         $publish_at = time();
     }
     $tweet = new Tweet();
     $tweet->twitter_account_id = $this->id;
     $tweet->message = $message;
     $tweet->publish_at = $publish_at;
     $tweet->save();
     return $tweet;
 }
 protected function execute($arguments = array(), $options = array())
 {
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'])->getConnection();
     $web = new sfWebBrowser();
     $this->logSection($this->namespace, 'Getting latest tweets for @' . sfConfig::get('app_twitter_username'));
     $atom = $web->get('http://search.twitter.com/search.atom?q=from:' . sfConfig::get('app_twitter_username') . '&rpp=5');
     try {
         if (!$atom->responseIsError()) {
             $feed = new SimpleXMLElement($atom->getResponseText());
             foreach ($feed->entry as $rss) {
                 $id = preg_replace('/[^0-9]+/', '', $rss->link[0]['href']);
                 $tweet = Doctrine::getTable('Tweet')->find($id);
                 $namespaces = $rss->getNameSpaces(true);
                 if ($tweet instanceof Tweet) {
                     if (strtotime($rss->updated) <= strtotime($tweet->getUpdatedAt())) {
                         continue;
                     } else {
                         $this->updated++;
                     }
                 } else {
                     $tweet = new Tweet();
                     $this->new++;
                 }
                 $file = $web->get('http://api.twitter.com/1/statuses/show/' . $id . '.json');
                 try {
                     if (!$file->responseIsError()) {
                         $json = json_decode($file->getResponseText());
                         $tweet->setId($id);
                         $tweet->setText($rss->title);
                         $tweet->setHTML(html_entity_decode($rss->content));
                         $tweet->setUri($rss->link[0]['href']);
                         if (isset($json->in_reply_to_status_id)) {
                             $tweet->setReplyId($json->in_reply_to_status_id);
                         }
                         if (isset($json->in_reply_to_user_id)) {
                             $tweet->setReplyUserId($json->in_reply_to_user_id);
                             $tweet->setReplyUsername($json->in_reply_to_screen_name);
                         }
                         if (isset($json->geo, $json->geo->coordinates)) {
                             $tweet->setLatitude($json->geo->coordinates[0]);
                             $tweet->setLongitude($json->geo->coordinates[1]);
                         }
                         $tweet->setLanguage($rss->children($namespaces['twitter'])->lang);
                         $tweet->setSource(html_entity_decode($rss->children($namespaces['twitter'])->source));
                         $tweet->setCreatedAt($rss->published);
                         $tweet->setUpdatedAt($rss->updated);
                         $tweet->save();
                         echo '.';
                     } else {
                         // Error response (eg. 404, 500, etc)
                     }
                 } catch (Exception $e) {
                     // Adapter error (eg. Host not found)
                 }
             }
         } else {
             // Error response (eg. 404, 500, etc)
         }
     } catch (Exception $e) {
         // Adapter error (eg. Host not found)
     }
     echo "\n";
     $this->logSection($this->namespace, 'Done: ' . $this->new . ' new, ' . $this->updated . ' updated.');
 }