Navigation Menu

Skip to content

Commit

Permalink
improve serie regexp
Browse files Browse the repository at this point in the history
  • Loading branch information
gawel committed Dec 16, 2013
1 parent 0293a07 commit 3488b2f
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 12 deletions.
15 changes: 9 additions & 6 deletions chut/examples/vlserie.py
Expand Up @@ -6,13 +6,14 @@

__version__ = "0.11"

_episode = re.compile(r's([0-9]+)\s*e\s*([0-9]+)')
_episode = re.compile(r'[^0-9]+(?P<s>[0-9]+)\s*(x|e)\s*(?P<e>[0-9]+)[^0-9]+')


def extract_numbers(f):
season, episode = _episode.findall(f.lower())[0]
episode = int(season), int(episode)
return episode
m = _episode.search(f.lower())
if m:
m = m.groupdict()
return int(m['s']), int(m['e'])


@console_script(fmt='brief')
Expand Down Expand Up @@ -88,16 +89,18 @@ def play(filename, episode):
serie = config[path.abspath('.')]

filenames = find(
'. -iregex ".*s[0-9]+\s*e\s*[0-9]+.*\(avi\|wmv\|mkv\|mp4\)"',
'. -iregex ".*[0-9]+\s*\(e\|x\)\s*[0-9]+.*\(avi\|wmv\|mkv\|mp4\)"',
shell=True)
filenames = [path.abspath(f) for f in filenames]
filenames = sorted([(extract_numbers(f), f) for f in filenames])
filenames = [(e, f) for e, f in filenames if f is not None]
print(filenames)

if args['<season>']:
episode = int(args['<season>']), int(args['<episode>'])
filenames = [(x, f) for x, f in filenames if x >= episode]
elif serie.latest:
episode = extract_numbers(serie.latest)
episode = extract_numbers(serie.latest.lower())
if args['--latest']:
filenames = [(x, f) for x, f in filenames if x >= episode]
else:
Expand Down
15 changes: 9 additions & 6 deletions docs/_static/binaries/vlserie
Expand Up @@ -41,13 +41,14 @@ import re

__version__ = "0.11"

_episode = re.compile(r's([0-9]+)\s*e\s*([0-9]+)')
_episode = re.compile(r'[^0-9]+(?P<s>[0-9]+)\s*(x|e)\s*(?P<e>[0-9]+)[^0-9]+')


def extract_numbers(f):
season, episode = _episode.findall(f.lower())[0]
episode = int(season), int(episode)
return episode
m = _episode.search(f.lower())
if m:
m = m.groupdict()
return int(m['s']), int(m['e'])


@console_script(fmt='brief')
Expand Down Expand Up @@ -123,16 +124,18 @@ def vlserie(args):
serie = config[path.abspath('.')]

filenames = find(
'. -iregex ".*s[0-9]+\s*e\s*[0-9]+.*\(avi\|wmv\|mkv\|mp4\)"',
'. -iregex ".*[0-9]+\s*\(e\|x\)\s*[0-9]+.*\(avi\|wmv\|mkv\|mp4\)"',
shell=True)
filenames = [path.abspath(f) for f in filenames]
filenames = sorted([(extract_numbers(f), f) for f in filenames])
filenames = [(e, f) for e, f in filenames if f is not None]
print(filenames)

if args['<season>']:
episode = int(args['<season>']), int(args['<episode>'])
filenames = [(x, f) for x, f in filenames if x >= episode]
elif serie.latest:
episode = extract_numbers(serie.latest)
episode = extract_numbers(serie.latest.lower())
if args['--latest']:
filenames = [(x, f) for x, f in filenames if x >= episode]
else:
Expand Down

0 comments on commit 3488b2f

Please sign in to comment.