Ejemplo n.º 1
0
    def run(self):
        generic_queue.QueueItem.run(self)

        try:
            logger.log(u'Beginning manual search for: [%s]' % self.segment.prettyName())
            self.started = True

            search_result = search.search_providers(self.show, [self.segment], True)

            if search_result:
                # just use the first result for now
                logger.log(u'Downloading %s from %s' % (search_result[0].name, search_result[0].provider.name))
                self.success = search.snatch_episode(search_result[0])

                # give the CPU a break
                time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])

            else:
                ui.notifications.message('No downloads found',
                                         u'Could not find a download for <i>%s</i>' % self.segment.prettyName())

                logger.log(u'Unable to find a download for: [%s]' % self.segment.prettyName())

        except Exception:
            logger.log(traceback.format_exc(), logger.DEBUG)

        finally:
            # Keep a list with the 100 last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self, MANUAL_SEARCH_HISTORY_SIZE)

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 2
0
    def run(self):
        generic_queue.QueueItem.run(self)

        try:
            logger.log(u'Beginning manual search for: [%s]' % self.segment.prettyName())
            self.started = True

            search_result = search.search_providers(self.show, [self.segment], True, try_other_searches=True)

            if search_result:
                # just use the first result for now
                logger.log(u'Downloading %s from %s' % (search_result[0].name, search_result[0].provider.name))
                self.success = search.snatch_episode(search_result[0])

                helpers.cpu_sleep()

            else:
                ui.notifications.message('No downloads found',
                                         u'Could not find a download for <i>%s</i>' % self.segment.prettyName())

                logger.log(u'Unable to find a download for: [%s]' % self.segment.prettyName())

        except Exception:
            logger.log(traceback.format_exc(), logger.DEBUG)

        finally:
            # Keep a list with the 100 last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self, MANUAL_SEARCH_HISTORY_SIZE)

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 3
0
    def run(self):
        generic_queue.QueueItem.run(self)

        is_error = False
        try:
            if not self.standard_backlog:
                ep_count, ep_count_scene = get_aired_in_season(self.show)
                for ep_obj in self.segment:
                    set_wanted_aired(ep_obj, True, ep_count, ep_count_scene)

            logger.log(u'Beginning backlog search for: [%s]' % self.show.name)
            search_result = search.search_providers(
                self.show, self.segment, False,
                try_other_searches=(not self.standard_backlog or not self.limited_backlog),
                scheduled=self.standard_backlog)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
                    if search.snatch_episode(result):
                        for ep in result.episodes:
                            self.snatched_eps.add((ep.show.indexer, ep.show.indexerid, ep.season, ep.episode))

                    helpers.cpu_sleep()
            else:
                logger.log(u'No needed episodes found during backlog search for: [%s]' % self.show.name)
        except (StandardError, Exception):
            is_error = True
            logger.log(traceback.format_exc(), logger.ERROR)

        finally:
            logger.log('Completed backlog search %sfor: [%s]' % (('', 'with a debug error ')[is_error], self.show.name))
            self.finish()
Ejemplo n.º 4
0
    def run(self):
        generic_queue.QueueItem.run(self)

        is_error = False
        try:
            logger.log(u'Beginning backlog search for: [%s]' % self.show.name)
            search_result = search.search_providers(
                self.show,
                self.segment,
                False,
                try_other_searches=(not self.standard_backlog
                                    or not self.limited_backlog))

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' %
                               (result.name, result.provider.name))
                    search.snatch_episode(result)

                    helpers.cpu_sleep()
            else:
                logger.log(
                    u'No needed episodes found during backlog search for: [%s]'
                    % self.show.name)
        except (StandardError, Exception):
            is_error = True
            logger.log(traceback.format_exc(), logger.DEBUG)

        finally:
            logger.log('Completed backlog search %sfor: [%s]' %
                       (('', 'with a debug error ')[is_error], self.show.name))
            self.finish()
Ejemplo n.º 5
0
    def run(self):
        generic_queue.QueueItem.run(self)
        self.started = True

        try:
            ep_count, ep_count_scene = get_aired_in_season(self.show)
            for ep_obj in self.segment:

                logger.log(u'Marking episode as bad: [%s]' %
                           ep_obj.prettyName())

                failed_history.set_episode_failed(ep_obj)
                (release, provider) = failed_history.find_release(ep_obj)
                failed_history.revert_episode(ep_obj)
                if release:
                    failed_history.add_failed(release)
                    history.log_failed(ep_obj, release, provider)

                logger.log(u'Beginning failed download search for: [%s]' %
                           ep_obj.prettyName())

                set_wanted_aired(ep_obj,
                                 True,
                                 ep_count,
                                 ep_count_scene,
                                 manual=True)

            search_result = search.search_providers(self.show,
                                                    self.segment,
                                                    True,
                                                    try_other_searches=True)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' %
                               (result.name, result.provider.name))
                    if search.snatch_episode(result):
                        for ep in result.episodes:
                            self.snatched_eps.add(
                                (ep.show.indexer, ep.show.indexerid, ep.season,
                                 ep.episode))

                    helpers.cpu_sleep()
            else:
                pass
                # logger.log(u'No valid episode found to retry for: [%s]' % self.segment.prettyName())
        except (StandardError, Exception):
            logger.log(traceback.format_exc(), logger.ERROR)

        finally:
            # Keep a list with the last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self.base_info())

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 6
0
    def run(self):
        generic_queue.QueueItem.run(self)

        try:
            logger.log(u'Beginning manual search for: [%s]' %
                       self.segment.prettyName())
            self.started = True

            ep_count, ep_count_scene = get_aired_in_season(self.show)
            set_wanted_aired(self.segment,
                             True,
                             ep_count,
                             ep_count_scene,
                             manual=True)

            search_result = search.search_providers(self.show, [self.segment],
                                                    True,
                                                    try_other_searches=True)

            if search_result:
                # just use the first result for now
                logger.log(
                    u'Downloading %s from %s' %
                    (search_result[0].name, search_result[0].provider.name))
                self.success = search.snatch_episode(search_result[0])
                for ep in search_result[0].episodes:
                    self.snatched_eps.add((ep.show.indexer, ep.show.indexerid,
                                           ep.season, ep.episode))

                helpers.cpu_sleep()

            else:
                ui.notifications.message(
                    'No downloads found',
                    u'Could not find a download for <i>%s</i>' %
                    self.segment.prettyName())

                logger.log(u'Unable to find a download for: [%s]' %
                           self.segment.prettyName())

        except (StandardError, Exception):
            logger.log(traceback.format_exc(), logger.ERROR)

        finally:
            # Keep a list with the last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self.base_info())

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 7
0
    def run(self):
        generic_queue.QueueItem.run(self)
        self.started = True

        try:
            for ep_obj in self.segment:

                logger.log(u'Marking episode as bad: [%s]' %
                           ep_obj.prettyName())

                cur_status = ep_obj.status

                failed_history.set_episode_failed(ep_obj)
                (release, provider) = failed_history.find_release(ep_obj)
                failed_history.revert_episode(ep_obj)
                if release:
                    failed_history.add_failed(release)
                    history.logFailed(ep_obj, release, provider)

                logger.log(u'Beginning failed download search for: [%s]' %
                           ep_obj.prettyName())

            search_result = search.search_providers(self.show,
                                                    self.segment,
                                                    True,
                                                    try_other_searches=True,
                                                    old_status=cur_status)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' %
                               (result.name, result.provider.name))
                    search.snatch_episode(result)

                    helpers.cpu_sleep()
            else:
                pass
                # logger.log(u'No valid episode found to retry for: [%s]' % self.segment.prettyName())
        except (StandardError, Exception):
            logger.log(traceback.format_exc(), logger.DEBUG)

        finally:
            # Keep a list with the 100 last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self, MANUAL_SEARCH_HISTORY_SIZE)

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 8
0
    def run(self):
        generic_queue.QueueItem.run(self)
        self.started = True

        try:
            ep_count, ep_count_scene = get_aired_in_season(self.show)
            for ep_obj in self.segment:

                logger.log(u'Marking episode as bad: [%s]' % ep_obj.prettyName())

                failed_history.set_episode_failed(ep_obj)
                (release, provider) = failed_history.find_release(ep_obj)
                failed_history.revert_episode(ep_obj)
                if release:
                    failed_history.add_failed(release)
                    history.log_failed(ep_obj, release, provider)

                logger.log(u'Beginning failed download search for: [%s]' % ep_obj.prettyName())

                set_wanted_aired(ep_obj, True, ep_count, ep_count_scene, manual=True)

            search_result = search.search_providers(self.show, self.segment, True, try_other_searches=True)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
                    if search.snatch_episode(result):
                        for ep in result.episodes:
                            self.snatched_eps.add((ep.show.indexer, ep.show.indexerid, ep.season, ep.episode))

                    helpers.cpu_sleep()
            else:
                pass
                # logger.log(u'No valid episode found to retry for: [%s]' % self.segment.prettyName())
        except (StandardError, Exception):
            logger.log(traceback.format_exc(), logger.ERROR)

        finally:
            # Keep a list with the last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self.base_info())

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 9
0
    def test(self):
        global searchItems
        searchItems = curData['i']
        show = TVShow(1, tvdbdid)
        show.name = show_name
        show.quality = curData['q']
        show.saveToDB()
        sickbeard.showList.append(show)
        episode = None

        for epNumber in curData['e']:
            episode = TVEpisode(show, curData['s'], epNumber)
            episode.status = c.WANTED
            episode.saveToDB()

        bestResult = search.search_providers(show, episode.season, episode.episode, forceSearch)
        if not bestResult:
            self.assertEqual(curData['b'], bestResult)
        self.assertEqual(curData['b'], bestResult.name) #first is expected, second is choosen one
Ejemplo n.º 10
0
    def run(self):
        generic_queue.QueueItem.run(self)

        is_error = False
        try:
            if not self.standard_backlog:
                ep_count, ep_count_scene = get_aired_in_season(self.show)
                for ep_obj in self.segment:
                    set_wanted_aired(ep_obj, True, ep_count, ep_count_scene)

            logger.log(u'Beginning backlog search for: [%s]' % self.show.name)
            search_result = search.search_providers(
                self.show,
                self.segment,
                False,
                try_other_searches=(not self.standard_backlog
                                    or not self.limited_backlog),
                scheduled=self.standard_backlog)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' %
                               (result.name, result.provider.name))
                    if search.snatch_episode(result):
                        for ep in result.episodes:
                            self.snatched_eps.add(
                                (ep.show.indexer, ep.show.indexerid, ep.season,
                                 ep.episode))

                    helpers.cpu_sleep()
            else:
                logger.log(
                    u'No needed episodes found during backlog search for: [%s]'
                    % self.show.name)
        except (StandardError, Exception):
            is_error = True
            logger.log(traceback.format_exc(), logger.ERROR)

        finally:
            logger.log('Completed backlog search %sfor: [%s]' %
                       (('', 'with a debug error ')[is_error], self.show.name))
            self.finish()
Ejemplo n.º 11
0
    def run(self):
        generic_queue.QueueItem.run(self)
        self.started = True

        try:
            for epObj in self.segment:

                logger.log(u'Marking episode as bad: [%s]' % epObj.prettyName())

                failed_history.markFailed(epObj)

                (release, provider) = failed_history.findRelease(epObj)
                if release:
                    failed_history.logFailed(release)
                    history.logFailed(epObj, release, provider)

                failed_history.revertEpisode(epObj)
                logger.log(u'Beginning failed download search for: []' % epObj.prettyName())

            search_result = search.search_providers(self.show, self.segment, True)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
                    search.snatch_episode(result)

                    # give the CPU a break
                    time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
            else:
                pass
                # logger.log(u'No valid episode found to retry for: [%s]' % self.segment.prettyName())
        except Exception:
            logger.log(traceback.format_exc(), logger.DEBUG)

        finally:
            # Keep a list with the 100 last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self, MANUAL_SEARCH_HISTORY_SIZE)

            if self.success is None:
                self.success = False

            self.finish()
Ejemplo n.º 12
0
    def test(self):
        global searchItems
        searchItems = curData['i']
        show_obj = TVShow(1, tvdbdid)
        show_obj.name = show_name
        show_obj.quality = curData['q']
        show_obj.save_to_db()
        sickbeard.showList.append(show_obj)
        sickbeard.showDict[show_obj.sid_int] = show_obj
        episode = None

        for epNumber in curData['e']:
            episode = TVEpisode(show_obj, curData['s'], epNumber)
            episode.status = c.WANTED
            episode.save_to_db()

        bestResult = search.search_providers(show_obj, episode.season, episode.episode, forceSearch)
        if not bestResult:
            self.assertEqual(curData['b'], bestResult)
        self.assertEqual(curData['b'], bestResult.name) #first is expected, second is choosen one
Ejemplo n.º 13
0
    def run(self):
        generic_queue.QueueItem.run(self)

        try:
            logger.log(u'Beginning backlog search for: [%s]' % self.show.name)
            search_result = search.search_providers(self.show, self.segment, False)

            if search_result:
                for result in search_result:
                    # just use the first result for now
                    logger.log(u'Downloading %s from %s' % (result.name, result.provider.name))
                    search.snatch_episode(result)

                    # give the CPU a break
                    time.sleep(common.cpu_presets[sickbeard.CPU_PRESET])
            else:
                logger.log(u'No needed episodes found during backlog search for: [%s]' % self.show.name)
        except Exception:
            logger.log(traceback.format_exc(), logger.DEBUG)

        finally:
            self.finish()
Ejemplo n.º 14
0
    def run(self):
        generic_queue.QueueItem.run(self)

        try:
            logger.log(u'Beginning manual search for: [%s]' % self.segment.prettyName())
            self.started = True

            ep_count, ep_count_scene = get_aired_in_season(self.show)
            set_wanted_aired(self.segment, True, ep_count, ep_count_scene, manual=True)

            search_result = search.search_providers(self.show, [self.segment], True, try_other_searches=True)

            if search_result:
                # just use the first result for now
                logger.log(u'Downloading %s from %s' % (search_result[0].name, search_result[0].provider.name))
                self.success = search.snatch_episode(search_result[0])
                for ep in search_result[0].episodes:
                    self.snatched_eps.add((ep.show.indexer, ep.show.indexerid, ep.season, ep.episode))

                helpers.cpu_sleep()

            else:
                ui.notifications.message('No downloads found',
                                         u'Could not find a download for <i>%s</i>' % self.segment.prettyName())

                logger.log(u'Unable to find a download for: [%s]' % self.segment.prettyName())

        except (StandardError, Exception):
            logger.log(traceback.format_exc(), logger.ERROR)

        finally:
            # Keep a list with the last executed searches
            fifo(MANUAL_SEARCH_HISTORY, self.base_info())

            if self.success is None:
                self.success = False

            self.finish()