def find_propers(self, search_date=None): results = self.cache.list_propers(search_date) return [ Proper(x['name'], x['url'], datetime.fromtimestamp(x['time']), self.show) for x in results ]
def find_propers(self, search_date=None): results = [] db = DBConnection() placeholders = ", ".join( ["?"] * len(Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_BEST)) sql_results = db.select( f"SELECT s.show_name, e.showid, e.season, e.episode, e.status, e.airdate FROM tv_episodes AS e INNER JOIN tv_shows AS s ON (e.showid = s.indexer_id) WHERE e.airdate >= ? AND e.status IN ({placeholders}) and e.is_proper = 0", [ search_date.toordinal(), *Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_BEST ], ) for result in sql_results or []: show = Show.find(settings.showList, int(result["showid"])) if show: episode = show.getEpisode(result["season"], result["episode"]) for term in self.proper_strings: search_strings = self.get_episode_search_strings( episode, add_string=term) for search_string in search_strings: for item in self.search(search_string): title, url = self._get_title_and_url(item) results.append( Proper(title, url, datetime.today(), show)) return results