From 7ebfdaff30884564d16aca51771fc2c64c42f0be Mon Sep 17 00:00:00 2001 From: rolux Date: Sat, 1 Sep 2012 05:27:59 +0200 Subject: [PATCH] revert changes --- ox/movie.py | 65 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/ox/movie.py b/ox/movie.py index bf9423f..2a47f12 100644 --- a/ox/movie.py +++ b/ox/movie.py @@ -39,6 +39,7 @@ def format_path(data, has_director_directory=True): director = data['seriesDirectorSort' if data['isEpisode'] else 'directorSort'] or ['Unknown Director'] title = data['seriesTitle' if data['isEpisode'] else 'title'] or 'Untitled' year = data['seriesYear' if data['isEpisode'] else 'year'] + language = 'en' if data['type'] == 'subtitle' and data['language'] == None else data['language'] parts = map(format_underscores, filter(lambda x: x != None, [ data['directory'] or director[0][0] if has_director_directory else title[0], '; '.join(director) if has_director_directory else None, @@ -57,6 +58,7 @@ def format_path(data, has_director_directory=True): return '/'.join(parts) + def parse_item_files(files): # parses a list of file objects associated with one item (file objects # as returned by parse_path, but extended with 'path' and 'time') @@ -372,32 +374,45 @@ def parse_movie_path(path): language = '' #season/episode/episodeTitle - season = find_re(parts[-1], '\.Season (\d+)\.') - if season: - season = int(season) - else: - season = None - - episode = find_re(parts[-1], '\.Episode[s]* ([\d+]+)\.') - if episode: - episode = episode.split('+')[0] - episode = int(episode) - else: - episode = None - - if episode and 'Episode %d'%episode in fileparts: - episodeTitle = fileparts.index('Episode %d' % episode) + 1 - episodeTitle = fileparts[episodeTitle] - if episodeTitle == extension or episodeTitle.startswith('Part'): - episodeTitle = None - - if not season and 'Episode' in fileparts: - episodeTitle = fileparts.index('Episode') + 1 - episodeTitle = fileparts[episodeTitle] - if episodeTitle == extension or episodeTitle.startswith('Part'): - episodeTitle = None - else: + match = re.compile('(.+?) \((S(\d+))?(E(\d+))?\)( (.+?))?\.').match(parts[-1]) + if match: + seriesTitle = match.group(1) + season = match.group(3) + episode = match.group(5) + episodeTitle = (match.group(6) or '').strip() + if episode != None: + episode = int(episode) + if season != None: + season = int(season) + if episode and not season: season = 1 + else: + season = find_re(parts[-1], '\.Season (\d+)\.') + if season: + season = int(season) + else: + season = None + + episode = find_re(parts[-1], '\.Episode[s]* ([\d+]+)\.') + if episode: + episode = episode.split('+')[0] + episode = int(episode) + else: + episode = None + + if episode and 'Episode %d'%episode in fileparts: + episodeTitle = fileparts.index('Episode %d' % episode) + 1 + episodeTitle = fileparts[episodeTitle] + if episodeTitle == extension or episodeTitle.startswith('Part'): + episodeTitle = None + + if not season and 'Episode' in fileparts: + episodeTitle = fileparts.index('Episode') + 1 + episodeTitle = fileparts[episodeTitle] + if episodeTitle == extension or episodeTitle.startswith('Part'): + episodeTitle = None + else: + season = 1 if season: seriesTitle = title