Index: head/www/py-flexget/Makefile =================================================================== --- head/www/py-flexget/Makefile (revision 535962) +++ head/www/py-flexget/Makefile (revision 535963) @@ -1,71 +1,72 @@ # Created by: Mario Sergio Fujikawa Ferreira # $FreeBSD$ PORTNAME= flexget PORTVERSION= 2.21.35 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= www python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jbeich@FreeBSD.org COMMENT= Program to automate downloading from different sources LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy12>0:databases/py-sqlalchemy12@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rebulk>=0.9.0:devel/py-rebulk@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rpyc>0:devel/py-RPyC@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}apscheduler>=3.2.0:devel/py-apscheduler@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}future>=0.15.2:devel/py-future@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}jsonschema>=2.0:devel/py-jsonschema@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}path.py>=10.6:devel/py-path.py@${PY_FLAVOR} \ ${PY_PATHLIB} \ ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.3:devel/py-pyparsing@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}yaml>=4.2:devel/py-yaml@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}progressbar>=2.5:misc/py-progressbar@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}guessit<3.0.0:multimedia/py-guessit@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}guessit>=3.0.3:multimedia/py-guessit@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pynzb>0:news/py-pynzb@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}zxcvbn>0:security/py-zxcvbn@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}plumbum>=1.2:sysutils/py-plumbum@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}colorclass>=2.2.0:textproc/py-colorclass@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}feedparser>=5.2.1:textproc/py-feedparser@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rss2gen>0:textproc/py-rss2gen@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}terminaltables>=3.1.0:textproc/py-terminaltables@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=4.5:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cherrypy>=3.7.0:www/py-cherrypy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask>=0.7:www/py-flask@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-Compress>=1.2.1:www/py-flask-compress@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-Cors>=2.1.2:www/py-flask-cors@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-Login>=0.4.0:www/py-flask-login@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-RESTful>=0.3.3:www/py-flask-restful@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask-restplus>=0.10.1:www/py-flask-restplus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}html5lib>=0.11:www/py-html5lib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=2.20.0:www/py-requests@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=3.3:devel/py-pytest@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}vcrpy>0:devel/py-vcrpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR} USE_GITHUB= yes GH_PROJECT= Flexget NO_ARCH= yes USES= python USE_PYTHON= autoplist distutils post-extract: # Unlock dependencies' versions @${MV} ${WRKSRC}/requirements.in ${WRKSRC}/requirements.txt do-test: @(cd ${TEST_WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest) .include .if ${PYTHON_REL} < 3300 TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR} .endif .include Index: head/www/py-flexget/files/patch-01-guessit-2.1.4 =================================================================== --- head/www/py-flexget/files/patch-01-guessit-2.1.4 (revision 535962) +++ head/www/py-flexget/files/patch-01-guessit-2.1.4 (nonexistent) @@ -1,141 +0,0 @@ -Revert https://github.com/Flexget/Flexget/commit/f6b01c1176ff - ---- flexget/components/imdb/utils.py.orig 2019-05-25 02:03:39 UTC -+++ flexget/components/imdb/utils.py -@@ -96,7 +96,7 @@ class ImdbSearch(object): - parser = plugin.get('parsing', 'imdb_search').parse_movie(raw_name) - name = parser.name - year = parser.year -- if not name: -+ if name == '': - log.critical('Failed to parse name from %s', raw_name) - return None - log.debug('smart_match name=%s year=%s' % (name, str(year))) ---- flexget/components/parsing/parsers/parser_guessit.py.orig 2019-05-25 02:03:39 UTC -+++ flexget/components/parsing/parsers/parser_guessit.py -@@ -40,16 +40,9 @@ _id_regexps = Rebulk().functional( - ) - - --def rules_builder(config): -- rebulk = rebulk_builder(config) -- rebulk.rebulk(_id_regexps) -- return rebulk -+guessit_api = GuessItApi(rebulk_builder().rebulk(_id_regexps)) - - --guessit_api = GuessItApi() --guessit_api.configure(options={}, rules_builder=rules_builder, force=True) -- -- - def normalize_component(data): - if data is None: - return [] -@@ -66,19 +59,6 @@ except AttributeError: - - - class ParserGuessit(object): -- SOURCE_MAP = { -- 'Camera': 'cam', -- 'HD Camera': 'cam', -- 'HD Telesync': 'telesync', -- 'Pay-per-view': 'ppv', -- 'Digital TV': 'dvb', -- 'Video on Demand': 'vod', -- 'Analog HDTV': 'ahdtv', -- 'Ultra HDTV': 'uhdtv', -- 'HD Telecine': 'hdtc', -- 'Web': 'web-dl', -- } -- - @staticmethod - def _guessit_options(options): - settings = { -@@ -87,6 +67,7 @@ class ParserGuessit(object): - 'allowed_countries': ['us', 'uk', 'gb'], - 'single_value': True, - } -+ # 'clean_function': clean_value - options['episode_prefer_number'] = not options.get('identified_by') == 'ep' - if options.get('allow_groups'): - options['expected_group'] = options['allow_groups'] -@@ -114,18 +95,17 @@ class ParserGuessit(object): - else: - version -= 1 - proper_count = guessit_result.get('proper_count', 0) -- fastsub = 'fast subtitled' in normalize_component(guessit_result.values_list.get('other')) -+ fastsub = 'fastsub' in normalize_component(guessit_result.values_list.get('other')) - return version + proper_count - (5 if fastsub else 0) - -- def _source(self, guessit_result): -- other = normalize_component(guessit_result.values_list.get('other')) -- source = self.SOURCE_MAP.get(guessit_result.get('source'), guessit_result.get('source')) -- # special case -- if source == 'web-dl' and 'rip' in other: -- source = 'webrip' -+ def _quality(self, guessit_result): -+ """Generate a FlexGet Quality from a guessit result.""" -+ resolution = normalize_component(guessit_result.values_list.get('screen_size')) -+ other = normalize_component(guessit_result.get('other')) -+ if not resolution and 'hr' in other: -+ resolution.append('hr') - -- source = normalize_component(source) -- -+ source = normalize_component(guessit_result.get('format')) - if 'preair' in other: - source.append('preair') - if 'screener' in other: -@@ -136,17 +116,6 @@ class ParserGuessit(object): - if 'region 5' in other or 'region c' in other: - source.append('r5') - -- return source -- -- def _quality(self, guessit_result): -- """Generate a FlexGet Quality from a guessit result.""" -- resolution = normalize_component(guessit_result.values_list.get('screen_size')) -- other = normalize_component(guessit_result.values_list.get('other')) -- if not resolution and 'high resolution' in other: -- resolution.append('hr') -- -- source = self._source(guessit_result) -- - codec = normalize_component(guessit_result.values_list.get('video_codec')) - if '10bit' in normalize_component(guessit_result.values_list.get('color_depth')): - codec.append('10bit') -@@ -155,11 +124,9 @@ class ParserGuessit(object): - audio_profile = normalize_component(guessit_result.values_list.get('audio_profile')) - audio_channels = normalize_component(guessit_result.values_list.get('audio_channels')) - # unlike the other components, audio can be a bit iffy with multiple codecs, so we limit it to one -- if 'dts' in audio and any(hd in audio_profile for hd in ['hd', 'master audio']): -+ if 'dts' in audio and any(hd in audio_profile for hd in ['HD', 'HDMA']): - audio = ['dtshd'] -- elif '5.1' in audio_channels and 'dolby digital plus' in audio: -- audio = ['dd+5.1'] -- elif '5.1' in audio_channels and 'dolby digital' in audio: -+ elif '5.1' in audio_channels and any(dd in audio for dd in ['ac3', 'dolbydigital']): - audio = ['dd5.1'] - - # Make sure everything are strings (guessit will return lists when there are multiples) ---- flexget/tests/test_seriesparser.py.orig 2019-05-25 02:03:39 UTC -+++ flexget/tests/test_seriesparser.py -@@ -114,7 +114,6 @@ class TestSeriesParser(object): - s = parse(name='Something', data='Something - Season2 Episode2') - assert s.season == 2 and s.episode == 2, 'failed to parse %s' % s - -- @pytest.mark.xfail(reason='Not supported in guessit, works for internal parser') - def test_series_episode(self, parse): - """SeriesParser: series X, episode Y""" - s = parse(name='Something', data='Something - Series 2, Episode 2') ---- requirements.txt.orig 2019-05-25 02:03:39 UTC -+++ requirements.txt -@@ -15,7 +15,7 @@ python-dateutil - jsonschema>=2.0 - path.py>=10.6 - pathlib>=1.0; python_version<'3.4' --guessit==3.0.3 -+guessit<3.0.0 - rebulk>=0.9.0 - apscheduler>=3.2.0 - terminaltables>=3.1.0 Property changes on: head/www/py-flexget/files/patch-01-guessit-2.1.4 ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/www/py-flexget/files/patch-requirements.txt =================================================================== --- head/www/py-flexget/files/patch-requirements.txt (revision 535962) +++ head/www/py-flexget/files/patch-requirements.txt (revision 535963) @@ -1,29 +1,37 @@ --- requirements.txt.orig 2019-05-25 02:03:39 UTC +++ requirements.txt -@@ -7,8 +7,8 @@ html5lib>=0.11 +@@ -7,15 +7,15 @@ html5lib>=0.11 PyRSS2Gen pynzb #PY3 progressbar -rpyc~=4.0 -jinja2~=2.10 +rpyc +jinja2 # There is a bug in requests 2.4.0 where it leaks urllib3 exceptions requests>=2.20.0 python-dateutil + jsonschema>=2.0 + path.py>=10.6 + pathlib>=1.0; python_version<'3.4' +-guessit==3.0.3 ++guessit>=3.0.3 + rebulk>=0.9.0 + apscheduler>=3.2.0 + terminaltables>=3.1.0 @@ -24,11 +24,11 @@ colorclass>=2.2.0 cherrypy>=3.7.0 flask>=0.7 flask-restful>=0.3.3 -flask-restplus==0.10.1 +flask-restplus>=0.10.1 flask-compress>=1.2.1 flask-login>=0.4.0 flask-cors>=2.1.2 pyparsing>=2.0.3 -zxcvbn-python +zxcvbn future>=0.15.2 -progressbar==2.5 \ No newline at end of file +progressbar>=2.5