protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'])->getConnection(); $applicationConfig = sfProjectConfiguration::getApplicationConfiguration('frontend', 'prod', true); $context = sfContext::createInstance($applicationConfig); // Go to the Subreddit and obtain the past few keys. $reddit_location = $options['subreddit']; $reddit = new RedditObject($reddit_location); $quiet = (bool) $options['quiet']; if (!$quiet) { echo "Obtaining the most recent comments from {$reddit_location}..."; } $reddit->appendData(); $found_keys = count($reddit->getComments()); if (!$quiet) { echo "\nFound {$found_keys} keys. Updating keys in the database..."; } ValidationTable::getInstance()->storeNewKeys($reddit->getComments()); // Now that new keys are stored in the database we need to update all applicable users $users = sfGuardUserTable::getInstance()->getUsersToBeValidated(); $updated = sfGuardUserTable::getInstance()->validateUsers($users); if (!$quiet) { echo "\nSending emails..."; } foreach ($users as $user_id) { $sf_user = $context->getUser(); $sf_user->setApiUserId($user_id); $sf_user->sendMail('RedditValidationSucceeded'); } if (!$quiet) { echo "\n{$updated} users validated and email sent.\n"; } }
/** * Tests for success at creating the object. */ public function testCreate() { /*$t = new RedditObject(); $this->assertTrue($t instanceof RedditObject);*/ $reddit_location = 'http://www.reddit.com/r/atheism'; $reddit = new RedditObject($reddit_location); $this->assertTrue($reddit instanceof RedditObject); $reddit->appendData(); ValidationTable::getInstance()->storeNewKeys($reddit->getComments()); }