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()); }