public function set_item()
 {
     if (isset($_GET['item_id'])) {
         $this->item = FeedAggregator_DatabaseHelper::get_item_by_id($_GET['item_id']);
     } else {
         throw new FeedAggregator_Exception('The page name must be set!');
     }
 }
 public static function get_image_feeds_div($tags, $number_of_feeds, $number_of_items_per_feed)
 {
     $feeds = FeedAggregator_DatabaseHelper::get_feeds_for_all_tags($tags, NULL, 0, $number_of_feeds);
     $div = new HTMLTags_Div();
     foreach ($feeds as $feed) {
         $feed['items'] = FeedAggregator_DatabaseHelper::get_items_for_feed_id($feed['id'], NULL, 0, $number_of_items_per_feed);
         $div->append(FeedAggregator_DisplayHelper::get_images_only_feed_div($feed));
     }
     return $div;
 }
 public function do_actions()
 {
     try {
         FeedAggregator_DatabaseHelper::delete_old_feeds_from_cache();
         print_r($this->colour_output('Deleted Feeds from Cache' . PHP_EOL, 'green'));
         print_r('Exiting...' . PHP_EOL);
     } catch (Exception $e) {
         print_r($this->colour_output($e->getMessage() . PHP_EOL, 'red'));
         exit;
     }
 }
 public function do_actions()
 {
     try {
         /*
          * Get feeds for whom their time has come
          */
         $feeds = FeedAggregator_CLIHelper::get_feeds_to_process_from_retrieval_queue();
         //print_r($queued_videos);exit;
         foreach ($feeds as $feed_data) {
             try {
                 /**
                  * Download the feed
                  */
                 $xml_data = FeedAggregator_CLIHelper::download_feed($feed_data['url']);
                 FeedAggregator_DatabaseHelper::set_feed_retrieved_date($feed_data['id'], date('Y-m-d h:i:s'));
                 print_r($this->colour_output("#" . $feed_data['id'] . " Downloaded..." . PHP_EOL, 'green'));
                 /**
                  * Parse the feed object 
                  * and insert the items into the DB
                  */
                 // print_r($xml_data);exit;
                 $this->get_feed_parser()->set_raw_feed_data($xml_data);
                 foreach ($this->get_feed_parser()->get_items() as $item) {
                     // print_r($item);exit;
                     /* TODO:
                      * Currently $item is a SimplePie_Item object,
                      * which would be a problem if another parser is used
                      *
                      * Should implement some helper functions for 
                      * FeedAggregator_SimplePieFeedParser that can 
                      * deal with the items for us abstractly
                      */
                     if (!FeedAggregator_CLIHelper::item_is_in_cache($feed_data['id'], $item->get_id())) {
                         FeedAggregator_CLIHelper::add_feed_item_to_cache($feed_data['id'], $item);
                         print_r($this->colour_output("#" . $feed_data['id'] . " Added item to database..." . PHP_EOL, 'green'));
                     }
                 }
             } catch (Exception $e) {
                 $output = "#" . $feed_data['id'] . ' Failed to retrieve feed "' . $feed_data['name'] . '" (' . $e->getMessage() . ")" . PHP_EOL;
                 print_r($this->colour_output($output, 'red'));
             }
         }
         print_r('Queue processed. Exiting...' . PHP_EOL);
     } catch (VideoLibrary_Exception $e) {
         print_r($this->colour_output($e->getMessage() . PHP_EOL, 'red'));
         exit;
     }
 }
 protected function render_edit_something_form_ol()
 {
     $acm = $this->get_admin_crud_manager();
     echo "<ol>\n";
     $this->render_edit_something_form_li_text_input('frequency_minutes');
     $status_values = FeedAggregator_DatabaseHelper::get_enum_values('hpi_feed_aggregator_retrieval_queue', 'status');
     $status_li = '<li><label for="status">Status</label><div class="radio-inputs">';
     foreach ($status_values as $status_value) {
         $status_li .= '<label><input type="radio" name="status" value="' . $status_value . '"';
         $cur_status_value = $acm->has_current_var('status') ? $acm->get_current_var('status') : NULL;
         if ($cur_status_value == $status_value) {
             $status_li .= ' checked="checked"';
         }
         $i++;
         $status_li .= '>';
         $status_li .= $status_value . '<br />';
     }
     $status_li .= '</label></div></li>';
     echo $status_li;
     echo "</ol>\n";
     // echo $this->get_form_help_message();
 }
 public function edit_something()
 {
     // print_r($_POST);exit;
     $id = FeedAggregator_DatabaseHelper::edit_feed_status_and_frequency_in_retrieval_queue($_GET['id'], $_POST['status'], $_POST['frequency_minutes']);
     return $id;
 }
    public static function delete_all_feeds()
    {
        $dbh = DB::m();
        $stmt = <<<SQL
TRUNCATE TABLE
    hpi_feed_aggregator_feeds
SQL;
        mysql_query($stmt, $dbh);
        FeedAggregator_DatabaseHelper::delete_all_feeds_from_retrieval_queue();
        FeedAggregator_DatabaseHelper::delete_all_tags();
    }
 protected function render_edit_something_form_ol()
 {
     $acm = $this->get_admin_crud_manager();
     echo "<ol>\n";
     $this->render_edit_something_form_li_text_input('name');
     $this->render_edit_something_form_li_text_input('title');
     $this->render_edit_something_form_li_text_input('description');
     $this->render_edit_something_form_li_text_input('url');
     $this->render_edit_something_form_li_text_input('format');
     $this->render_edit_something_form_li_text_input('sort_order');
     echo '<fieldset class="tags-fieldset" id="tags-fieldset"><legend>Tags</legend>';
     echo '<li><label for="tags">Tags</label>';
     echo '<input type="text" name="tags" id="tags" value ="';
     echo FeedAggregator_DisplayHelper::get_tags_csv_string(FeedAggregator_DatabaseHelper::get_tags_for_feed_id($_GET['id']));
     echo '" />';
     echo $this->get_tags_list_for_form();
     echo "</ol>\n";
     echo $this->get_form_help_message();
 }
 public function delete_everything()
 {
     FeedAggregator_DatabaseHelper::delete_all_feeds();
 }