public function updateRelevanceAction()
 {
     /** @var NewsSource[] $sources */
     $sources = NewsSource::find();
     $this->log('Will update relevance of ' . count($sources) . ' sources.');
     foreach ($sources as $source) {
         $this->log($source->title);
         $source->updateRelevance();
     }
     $this->log('Done');
 }
 public function create($feedUrl)
 {
     $feed = new SimplePie();
     $feed->set_feed_url($feedUrl);
     $feed->set_cache_location(__DIR__ . '/../../cache');
     $success = $feed->init();
     $feed->handle_content_type();
     if ($feed->error() || !$success) {
         return [null, $feed->error()];
     }
     $source = new NewsSource();
     $source->title = html_entity_decode($feed->get_title());
     $source->imageUrl = $feed->get_image_url();
     $source->feed = $feedUrl;
     $source->link = $feed->get_link();
     if ($source->save()) {
         return [$source, null];
     } else {
         return [null, 'Error saving to Database.'];
     }
 }
 /**
  * @param $username
  * @return bool
  */
 public function deleteAction($username, $id)
 {
     // Get User
     /** @var User $user */
     $user = User::findFirst([['username' => $username]]);
     if (!$user) {
         return $this->fail(['message' => "User doesn't exist."]);
     }
     // Check if Source already on the DB
     /** @var NewsSource $source */
     $source = NewsSource::findById($id);
     if (!$source) {
         return $this->fail(['message' => "Source doesn't exist."]);
     }
     $user->removeNewsSource($source->getId());
     if ($user->save()) {
         return $this->succeed();
     } else {
         return $this->fail(['message' => 'Error saving to Database.']);
     }
 }
Beispiel #4
0
 public function getNewsSourcesInfo()
 {
     return NewsSource::find([['_id' => ['$in' => $this->newsSources]]]);
 }