示例#1
0
 public function add_episodes($episodes, $afterdate = 0, $gather = false)
 {
     foreach ($episodes as $episode) {
         $this->add_episode($episode, $afterdate);
     }
     // Select episodes to download
     $dlnb = AmpConfig::get('podcast_new_download');
     if ($dlnb != 0) {
         $sql = "SELECT `podcast_episode`.`id` FROM `podcast_episode` INNER JOIN `podcast` ON `podcast`.`id` = `podcast_episode`.`podcast` " . "WHERE `podcast`.`id` = ? AND `podcast_episode`.`addition_time` > `podcast`.`lastsync` " . "ORDER BY `podcast_episode`.`pubdate` DESC";
         if ($dlnb != -1) {
             $sql .= " LIMIT " . $dlnb;
         }
         $db_results = Dba::read($sql, array($this->id));
         while ($row = Dba::fetch_row($db_results)) {
             $episode = new Podcast_Episode($row[0]);
             $episode->change_state('pending');
             if ($gather) {
                 $episode->gather();
             }
         }
     }
     // Remove items outside limit
     $keepnb = AmpConfig::get('podcast_keep');
     if ($keepnb > 0) {
         $sql = "SELECT `podcast_episode`.`id` FROM `podcast_episode` WHERE `podcast_episode`.`podcast` = ? " . "ORDER BY `podcast_episode`.`pubdate` DESC LIMIT " . $keepnb . ",18446744073709551615";
         $db_results = Dba::read($sql, array($this->id));
         while ($row = Dba::fetch_row($db_results)) {
             $episode = new Podcast_Episode($row[0]);
             $episode->remove();
         }
     }
     $this->update_lastsync(time());
 }