1
0
mirror of https://github.com/moparisthebest/SickRage synced 2025-01-07 11:58:01 -05:00

Merge pull request #323 from WebSpider/dev-midgetspy_fixes

Midgetspy backports
This commit is contained in:
Nils 2014-05-04 23:41:45 +02:00
commit 6d1e025445
5 changed files with 37 additions and 15 deletions

View File

@ -63,7 +63,7 @@ For example, to find out what network Scrubs is aired:
The data is stored in an attribute named `data`, within the Show instance: The data is stored in an attribute named `data`, within the Show instance:
>>> t['scrubs'].data.keys() >>> t['scrubs'].data.keys()
['networkid', 'rating', 'airs_dayofweek', 'contentrating', 'seriesname', 'id', 'airs_time', 'network', 'fanart', 'lastupdated', 'actors', 'ratingcount', 'status', 'added', 'poster', 'imdb_id', 'genre', 'banner', 'seriesid', 'language', 'zap2it_id', 'addedby', 'firstaired', 'runtime', 'overview'] ['networkid', 'rating', 'airs_dayofweek', 'contentrating', 'seriesname', 'id', 'airs_time', 'network', 'fanart', 'lastupdated', 'actors', 'ratingcount', 'status', 'added', 'poster', 'imdb_id', 'genre', 'banner', 'seriesid', 'language', 'zap2it_id', 'addedby', 'tms_wanted', 'firstaired', 'runtime', 'overview']
Although each element is also accessible via `t['scrubs']` for ease-of-use: Although each element is also accessible via `t['scrubs']` for ease-of-use:

View File

@ -99,6 +99,11 @@ class test_tvdb_basic(unittest.TestCase):
show show
) )
def test_no_season(self):
show = self.t['Katekyo Hitman Reborn']
print tvdb_api
print show[1][1]
class test_tvdb_errors(unittest.TestCase): class test_tvdb_errors(unittest.TestCase):
# Used to store the cached instance of Tvdb() # Used to store the cached instance of Tvdb()

View File

@ -96,15 +96,12 @@ class ShowContainer(dict):
#keep only the 100th latest results #keep only the 100th latest results
if time.time() - self._lastgc > 20: if time.time() - self._lastgc > 20:
tbd = self._stack[:-100] for o in self._stack[:-100]:
i = 0
for o in tbd:
del self[o] del self[o]
del self._stack[i]
i += 1
_lastgc = time.time() self._stack = self._stack[-100:]
del tbd
self._lastgc = time.time()
super(ShowContainer, self).__setitem__(key, value) super(ShowContainer, self).__setitem__(key, value)
@ -849,11 +846,24 @@ class Tvdb:
use_dvd = False use_dvd = False
if use_dvd: if use_dvd:
seas_no = int(cur_ep.find('DVD_season').text) elem_seasnum, elem_epno = cur_ep.find('DVD_season'), cur_ep.find('DVD_episodenumber')
ep_no = int(float(cur_ep.find('DVD_episodenumber').text))
else: else:
seas_no = int(cur_ep.find('SeasonNumber').text) elem_seasnum, elem_epno = cur_ep.find('SeasonNumber'), cur_ep.find('EpisodeNumber')
ep_no = int(cur_ep.find('EpisodeNumber').text)
if elem_seasnum is None or elem_epno is None:
log().warning("An episode has incomplete season/episode number (season: %r, episode: %r)" % (
elem_seasnum, elem_epno))
log().debug(
" ".join(
"%r is %r" % (child.tag, child.text) for child in cur_ep.getchildren()))
# TODO: Should this happen?
continue # Skip to next episode
# float() is because https://github.com/dbr/tvnamer/issues/95 - should probably be fixed in TVDB data
seas_no = int(float(elem_seasnum.text))
ep_no = int(float(elem_epno.text))
useDVD = False useDVD = False

View File

@ -33,7 +33,7 @@ mediaExtensions = ['avi', 'mkv', 'mpg', 'mpeg', 'wmv',
'ogm', 'mp4', 'iso', 'img', 'divx', 'ogm', 'mp4', 'iso', 'img', 'divx',
'm2ts', 'm4v', 'ts', 'flv', 'f4v', 'm2ts', 'm4v', 'ts', 'flv', 'f4v',
'mov', 'rmvb', 'vob', 'dvr-ms', 'wtv', 'mov', 'rmvb', 'vob', 'dvr-ms', 'wtv',
'ogv', '3gp'] 'ogv', '3gp', 'webm']
subtitleExtensions = ['srt', 'sub', 'ass', 'idx', 'ssa'] subtitleExtensions = ['srt', 'sub', 'ass', 'idx', 'ssa']

View File

@ -216,8 +216,8 @@ class PostProcessor(object):
# delete the file and any other files which we want to delete # delete the file and any other files which we want to delete
for cur_file in file_list: for cur_file in file_list:
self._log(u"Deleting file " + cur_file, logger.DEBUG)
if ek.ek(os.path.isfile, cur_file): if ek.ek(os.path.isfile, cur_file):
self._log(u"Deleting file " + cur_file, logger.DEBUG)
#check first the read-only attribute #check first the read-only attribute
file_attribute = ek.ek(os.stat, cur_file)[0] file_attribute = ek.ek(os.stat, cur_file)[0]
if (not file_attribute & stat.S_IWRITE): if (not file_attribute & stat.S_IWRITE):
@ -682,7 +682,14 @@ class PostProcessor(object):
ep_quality] + ", using that", logger.DEBUG) ep_quality] + ", using that", logger.DEBUG)
return ep_quality return ep_quality
# if we didn't get a quality from one of the names above, try assuming from each of the names # Try getting quality from the episode (snatched) status
if ep_obj.status in common.Quality.SNATCHED + common.Quality.SNATCHED_PROPER:
oldStatus, ep_quality = common.Quality.splitCompositeStatus(ep_obj.status) # @UnusedVariable
if ep_quality != common.Quality.UNKNOWN:
self._log(u"The old status had a quality in it, using that: " + common.Quality.qualityStrings[ep_quality], logger.DEBUG)
return ep_quality
# Try guessing quality from the file name
ep_quality = common.Quality.assumeQuality(self.file_name) ep_quality = common.Quality.assumeQuality(self.file_name)
self._log( self._log(
u"Guessing quality for name " + self.file_name + u", got " + common.Quality.qualityStrings[ep_quality], u"Guessing quality for name " + self.file_name + u", got " + common.Quality.qualityStrings[ep_quality],