Beispiel #1
0
    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
        ]
Beispiel #2
0
    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