def find_propers(self, search_date=datetime.datetime.today()): results = [] for show in [ s['doc'] for s in sickrage.srCore.mainDB.db.all('tv_shows', with_doc=True) ]: for episode in [ e['doc'] for e in sickrage.srCore.mainDB.db.get_many( 'tv_episodes', show['indexer_id'], with_doc=True) ]: if episode['airdate'] >= str(search_date.toordinal()) \ and episode['status'] in Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_BEST: self.show = findCertainShow(sickrage.srCore.SHOWLIST, int(episode["showid"])) if not show: continue curEp = show.getEpisode(int(episode["season"]), int(episode["episode"])) for term in self.proper_strings: searchString = self._get_episode_search_strings( curEp, add_string=term) for item in self.search(searchString[0]): title, url = self._get_title_and_url(item) results.append( Proper(title, url, datetime.datetime.today(), self.show)) return results
def findPropers(self, search_date=datetime.datetime.today()): results = [] sqlResults = main_db.MainDB().select( '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 >= ' + str(search_date.toordinal()) + ' AND (e.status IN (' + ','.join([str(x) for x in Quality.DOWNLOADED]) + ')' + ' OR (e.status IN (' + ','.join([str(x) for x in Quality.SNATCHED]) + ')))' ) if not sqlResults: return [] for sqlshow in sqlResults: self.show = findCertainShow(sickrage.srCore.SHOWLIST, int(sqlshow["showid"])) if self.show: curEp = self.show.getEpisode(int(sqlshow["season"]), int(sqlshow["episode"])) searchStrings = self._get_episode_search_strings(curEp, add_string='PROPER|REPACK') for searchString in searchStrings: for item in self.search(searchString): title, url = self._get_title_and_url(item) if re.match(r'.*(REPACK|PROPER).*', title, re.I): results.append(Proper(title, url, datetime.datetime.today(), self.show)) return results
def find_propers(self, search_date=datetime.datetime.today()): results = [] dbData = [] for show in [ s['doc'] for s in sickrage.srCore.mainDB.db.all('tv_shows', with_doc=True) ]: for episode in [ e['doc'] for e in sickrage.srCore.mainDB.db.get_many( 'tv_episodes', show['indexer_id'], with_doc=True) ]: if episode['airdate'] >= str(search_date.toordinal()) \ and episode['status'] in Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_BEST: self.show = findCertainShow(sickrage.srCore.SHOWLIST, int(show["showid"])) if not self.show: continue curEp = self.show.getEpisode(int(episode["season"]), int(episode["episode"])) searchStrings = self._get_episode_search_strings( curEp, add_string='PROPER|REPACK') for searchString in searchStrings: for item in self.search(searchString): title, url = self._get_title_and_url(item) if re.match(r'.*(REPACK|PROPER).*', title, re.I): results += [ Proper(title, url, datetime.datetime.today(), self.show) ] return results
def findPropers(self, search_date=datetime.datetime.today()): results = [] sqlResults = main_db.MainDB().select( '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 >= ' + str(search_date.toordinal()) + ' AND e.status IN (' + ','.join([ str(x) for x in Quality.DOWNLOADED + Quality.SNATCHED + Quality.SNATCHED_BEST ]) + ')') for sqlshow in sqlResults or []: show = findCertainShow(sickrage.srCore.SHOWLIST, int(sqlshow["showid"])) if show: curEp = show.getEpisode(int(sqlshow["season"]), int(sqlshow["episode"])) for term in self.proper_strings: searchString = self._get_episode_search_strings( curEp, add_string=term) for item in self.search(searchString[0]): title, url = self._get_title_and_url(item) results.append( Proper(title, url, datetime.datetime.today(), show)) return results
def find_propers(self, search_date=None): results = self.cache.list_propers(search_date) return [ Proper(x['name'], x['url'], datetime.datetime.fromtimestamp(x['time']), self.show) for x in results ]
def findPropers(self, search_date=None): results = [] search_terms = [' proper ', ' repack '] for term in search_terms: for item in self._doSearch(self._make_post_data_JSON(search_term=term)): if item[b'utadded']: try: result_date = datetime.datetime.fromtimestamp(int(item[b'utadded'])) except Exception: result_date = None if result_date: if not search_date or result_date > search_date: title, url = self._get_title_and_url(item) results.append(Proper(title, url, result_date, self.show)) return results
def findPropers(self, search_date=None): results = [] search_terms = ['%.proper.%', '%.repack.%'] for term in search_terms: for item in self.search({'release': term}, age=4 * 24 * 60 * 60): if item['Time']: try: result_date = datetime.datetime.fromtimestamp(float(item['Time'])) except TypeError: result_date = None if result_date: if not search_date or result_date > search_date: title, url = self._get_title_and_url(item) results.append(Proper(title, url, result_date, self.show)) return results
def find_propers(self, search_date=None): search_terms = ['.PROPER.', '.REPACK.'] results = [] for term in search_terms: for item in self.search(term, retention=4): if 'usenetage' in item: title, url = self._get_title_and_url(item) try: result_date = datetime.datetime.fromtimestamp( int(item['usenetage'])) except Exception: result_date = None if result_date: results.append( Proper(title, url, result_date, self.show)) return results
def find_propers(self, search_date=None): results = [] for item in self.search("v2|v3|v4|v5"): (title, url) = self._get_title_and_url(item) if item.has_key('published_parsed') and item['published_parsed']: result_date = item.published_parsed if result_date: result_date = datetime(*result_date[0:6]) else: continue if not search_date or result_date > search_date: search_result = Proper(title, url, result_date, self.show) results.append(search_result) return results