Ejemplo n.º 1
0
    def findEpisode(self, episode, manualSearch=False):

        nzbResults = generic.NZBProvider.findEpisode(self, episode, manualSearch)

        # if we got some results then use them no matter what.
        # OR
        # return anyway unless we're doing a manual search
        if nzbResults or not manualSearch:
            return nzbResults

        sceneSearchStrings = set(sceneHelpers.makeSceneSearchString(episode))

        results = []

        # search for all show names and episode numbers like ("a","b","c") in a single search
        nzbMatrixSearchString = '("' + '","'.join(sceneSearchStrings) + '")'
        itemList = self._doSearch(nzbMatrixSearchString)

        for item in itemList:

            title = item.findtext("title")
            url = item.findtext("link").replace("&", "&")

            # parse the file name
            try:
                myParser = FileParser(title)
                epInfo = myParser.parse()
            except tvnamer_exceptions.InvalidFilename:
                logger.log(u"Unable to parse the name " + title + " into a valid episode", logger.WARNING)
                continue

            quality = self.getQuality(item)

            season = epInfo.seasonnumber if epInfo.seasonnumber != None else 1

            if not episode.show.wantEpisode(season, episode.episode, quality, manualSearch):
                logger.log(
                    u"Ignoring result "
                    + title
                    + " because we don't want an episode that is "
                    + Quality.qualityStrings[quality],
                    logger.DEBUG,
                )
                continue

            logger.log(u"Found result " + title + " at " + url, logger.DEBUG)

            result = self.getResult([episode])
            result.url = url
            result.name = title
            result.quality = quality

            results.append(result)

        return results
Ejemplo n.º 2
0
def findEpisode (episode, manualSearch=False):

	logger.log("Searching NZBMatrix for " + episode.prettyName(True))

	myCache = NZBMatrixCache()
	myCache.updateCache()
	nzbResults = myCache.searchCache(episode)
	logger.log("Cache results: "+str(nzbResults), logger.DEBUG)

	# if we got some results then use them no matter what.
	# OR
	# return anyway unless we're doing a manual search
	if nzbResults or not manualSearch:
		return nzbResults
	
	sceneSearchStrings = set(sceneHelpers.makeSceneSearchString(episode))
	
	results = []

	# search for all show names and episode numbers like ("a","b","c") in a single search
	nzbMatrixSearchString = '("' + '","'.join(sceneSearchStrings) + '")'
	itemList = _doSearch(nzbMatrixSearchString)

	for item in itemList:
		
		title = item.findtext('title')
		url = item.findtext('link').replace('&','&')
		
		# parse the file name
		try:
			myParser = FileParser(title)
			epInfo = myParser.parse()
		except tvnamer_exceptions.InvalidFilename:
			logger.log("Unable to parse the filename "+title+" into a valid episode", logger.ERROR)
			continue
		
		quality = Quality.nameQuality(title)
		
		if not episode.show.wantEpisode(episode.season, episode.episode, quality, manualSearch):
			logger.log("Ignoring result "+title+" because we don't want an episode that is "+Quality.qualityStrings[quality], logger.DEBUG)
			continue
		
		logger.log("Found result " + title + " at " + url, logger.DEBUG)
		
		result = classes.NZBSearchResult([episode])
		result.provider = providerName.lower()
		result.url = url
		result.name = title
		result.quality = quality
		
		results.append(result)
		
	return results
Ejemplo n.º 3
0
def findEpisode (episode, manualSearch=False):

	if sickbeard.NZBS_UID in (None, "") or sickbeard.NZBS_HASH in (None, ""):
		raise exceptions.AuthException("NZBs.org authentication details are empty, check your config")

	logger.log("Searching NZBs.org for " + episode.prettyName(True))

	myCache = NZBsCache()
	myCache.updateCache()
	nzbResults = myCache.searchCache(episode)
	logger.log("Cache results: "+str(nzbResults), logger.DEBUG)

	# if we got some results then use them no matter what.
	# OR
	# return anyway unless we're doing a backlog/missing or manual search
	if nzbResults or not manualSearch:
		return nzbResults

	sceneSearchStrings = set(sceneHelpers.makeSceneSearchString(episode))
	
	itemList = []
	results = []

	for curString in sceneSearchStrings:
		itemList += _doSearch("^"+curString)

	for item in itemList:
		
		title = item.findtext('title')
		url = item.findtext('link')
		
		quality = Quality.nameQuality(title)
		
		if not episode.show.wantEpisode(episode.season, episode.episode, quality, manualSearch):
			logger.log("Ignoring result "+title+" because we don't want an episode that is "+Quality.qualityStrings[quality], logger.DEBUG)
			continue
		
		logger.log("Found result " + title + " at " + url, logger.DEBUG)
		
		result = classes.NZBSearchResult([episode])
		result.provider = providerName.lower()
		result.url = url
		result.name = title
		result.quality = quality
		
		results.append(result)
		
	return results
Ejemplo n.º 4
0
    def findEpisode(self, episode, manualSearch=False):

        nzbResults = generic.NZBProvider.findEpisode(self, episode, manualSearch)

        # if we got some results then use them no matter what.
        # OR
        # return anyway unless we're doing a backlog/missing or manual search
        if nzbResults or not manualSearch:
            return nzbResults

        sceneSearchStrings = set(sceneHelpers.makeSceneSearchString(episode))

        itemList = []
        results = []

        for curString in sceneSearchStrings:
            itemList += self._doSearch("^" + curString)

        for item in itemList:

            title = item.findtext("title")
            url = item.findtext("link")

            quality = Quality.nameQuality(title)

            if not episode.show.wantEpisode(episode.season, episode.episode, quality, manualSearch):
                logger.log(
                    u"Ignoring result "
                    + title
                    + " because we don't want an episode that is "
                    + Quality.qualityStrings[quality],
                    logger.DEBUG,
                )
                continue

            logger.log(u"Found result " + title + " at " + url, logger.DEBUG)

            result = self.getResult([episode])
            result.url = url
            result.name = title
            result.quality = quality

            results.append(result)

        return results
Ejemplo n.º 5
0
	def _get_episode_search_strings(self, ep_obj):
		return ['^'+x for x in sceneHelpers.makeSceneSearchString(ep_obj)]
Ejemplo n.º 6
0
 def _get_episode_search_strings(self, ep_obj):
     return ['^' + x for x in sceneHelpers.makeSceneSearchString(ep_obj)]
Ejemplo n.º 7
0
    def _get_episode_search_strings(self, ep_obj):

        sceneSearchStrings = set(sceneHelpers.makeSceneSearchString(ep_obj))

        # search for all show names and episode numbers like ("a","b","c") in a single search
        return ['("' + '","'.join(sceneSearchStrings) + '")']
Ejemplo n.º 8
0
    def _get_episode_search_strings(self, ep_obj):

        sceneSearchStrings = set(sceneHelpers.makeSceneSearchString(ep_obj))

        # search for all show names and episode numbers like ("a","b","c") in a single search
        return ['("' + '","'.join(sceneSearchStrings) + '")']