svn commit: r502817 - in head/www/py-flexget: . files
Jan Beich
jbeich at FreeBSD.org
Mon May 27 19:40:17 UTC 2019
Author: jbeich
Date: Mon May 27 19:40:14 2019
New Revision: 502817
URL: https://svnweb.freebsd.org/changeset/ports/502817
Log:
www/py-flexget: update to 2.21.1
Changes: https://github.com/Flexget/Flexget/compare/2.14.24...2.21.1
Added:
head/www/py-flexget/files/patch-01-guessit-2.1.4 (contents, props changed)
head/www/py-flexget/files/patch-02-path.py-8.1 (contents, props changed)
Modified:
head/www/py-flexget/Makefile (contents, props changed)
head/www/py-flexget/distinfo (contents, props changed)
head/www/py-flexget/files/patch-requirements.txt (contents, props changed)
Modified: head/www/py-flexget/Makefile
==============================================================================
--- head/www/py-flexget/Makefile Mon May 27 19:32:31 2019 (r502816)
+++ head/www/py-flexget/Makefile Mon May 27 19:40:14 2019 (r502817)
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= flexget
-PORTVERSION= 2.14.24
+PORTVERSION= 2.21.1
PORTEPOCH= 1
CATEGORIES= www python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,18 +14,19 @@ LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy12>0:databases/py-sqlalchemy12@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${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>=2.5.3:devel/py-dateutil@${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>=8.1.1:devel/py-path.py@${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>0:devel/py-yaml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}progressbar>0:misc/py-progressbar@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}guessit>=2.1.4:multimedia/py-guessit@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}yaml>=3.13: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}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} \
@@ -42,7 +43,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy12>0:dat
${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.8.0:www/py-requests@${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}
Modified: head/www/py-flexget/distinfo
==============================================================================
--- head/www/py-flexget/distinfo Mon May 27 19:32:31 2019 (r502816)
+++ head/www/py-flexget/distinfo Mon May 27 19:40:14 2019 (r502817)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1538359480
-SHA256 (flexget-Flexget-2.14.24_GH0.tar.gz) = 3459a600848f7f44f4dc0119f26a30c0959c338a157f957d58d457d3dde9977c
-SIZE (flexget-Flexget-2.14.24_GH0.tar.gz) = 6633696
+TIMESTAMP = 1558749819
+SHA256 (flexget-Flexget-2.21.1_GH0.tar.gz) = 9a612657e087229d4f8ca13fd10deb9af39347ba1f96b8a028f3a6ed2ae30a7e
+SIZE (flexget-Flexget-2.21.1_GH0.tar.gz) = 7141563
Added: head/www/py-flexget/files/patch-01-guessit-2.1.4
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/py-flexget/files/patch-01-guessit-2.1.4 Mon May 27 19:40:14 2019 (r502817)
@@ -0,0 +1,141 @@
+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
Added: head/www/py-flexget/files/patch-02-path.py-8.1
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/py-flexget/files/patch-02-path.py-8.1 Mon May 27 19:40:14 2019 (r502817)
@@ -0,0 +1,69 @@
+Revert https://github.com/Flexget/Flexget/commit/0a401204a107
+
+--- flexget/api/core/server.py.orig 2019-05-25 02:03:39 UTC
++++ flexget/api/core/server.py
+@@ -571,6 +571,6 @@ class ServerCrashLogAPI(APIResource):
+ path = Path(self.manager.config_base)
+ crashes = [
+ {'name': file.name, 'content': file.open().readlines()}
+- for file in path.listdir(match='crash_report*.log')
++ for file in path.listdir(pattern='crash_report*.log')
+ ]
+ return jsonify(crashes)
+--- flexget/plugin.py.orig 2019-05-25 02:03:39 UTC
++++ flexget/plugin.py
+@@ -476,7 +476,7 @@ def _load_plugins_from_dirs(dirs):
+ _f for _f in plugin_path.relpath(plugins_dir).parent.splitall() if _f
+ ]
+ module_name = '.'.join(
+- [plugins_pkg.__name__] + plugin_subpackages + [plugin_path.stem]
++ [plugins_pkg.__name__] + plugin_subpackages + [plugin_path.namebase]
+ )
+ _import_plugin(module_name, plugin_path)
+ _check_phase_queue()
+@@ -498,7 +498,7 @@ def _load_components_from_dirs(dirs):
+ _f for _f in component_path.relpath(component_dir).parent.splitall() if _f
+ ]
+ package_name = '.'.join(
+- [components_pkg.__name__] + plugin_subpackages + [component_path.stem]
++ [components_pkg.__name__] + plugin_subpackages + [component_path.namebase]
+ )
+ _import_plugin(package_name, component_path)
+ _check_phase_queue()
+--- flexget/plugins/input/filesystem.py.orig 2019-05-25 02:03:39 UTC
++++ flexget/plugins/input/filesystem.py
+@@ -129,7 +129,7 @@ class Filesystem(object):
+ entry['url'] = pathlib.Path(filepath).absolute().as_uri()
+ entry['filename'] = filepath.name
+ if filepath.isfile():
+- entry['title'] = filepath.stem
++ entry['title'] = filepath.namebase
+ else:
+ entry['title'] = filepath.name
+ try:
+--- flexget/tests/test_filesystem.py.orig 2019-05-25 02:03:39 UTC
++++ flexget/tests/test_filesystem.py
+@@ -137,10 +137,10 @@ class TestFilesystem(object):
+ task_name,
+ file,
+ )
+- assert task.find_entry(title=file.stem), assertion_error
++ assert task.find_entry(title=file.namebase), assertion_error
+ else:
+ assertion_error = 'Failed %s %s test, found %s' % (test_type, task_name, file)
+- assert not task.find_entry(title=file.stem), assertion_error
++ assert not task.find_entry(title=file.namebase), assertion_error
+
+ def test_string(self, execute_task):
+ task_name = 'string'
+--- requirements.txt.orig 2019-05-25 02:03:39 UTC
++++ requirements.txt
+@@ -13,7 +13,7 @@ jinja2~=2.10
+ requests>=2.20.0
+ python-dateutil
+ jsonschema>=2.0
+-path.py>=10.6
++path.py>=8.1.1,<10.6
+ pathlib>=1.0; python_version<'3.4'
+ guessit==3.0.3
+ rebulk>=0.9.0
Modified: head/www/py-flexget/files/patch-requirements.txt
==============================================================================
--- head/www/py-flexget/files/patch-requirements.txt Mon May 27 19:32:31 2019 (r502816)
+++ head/www/py-flexget/files/patch-requirements.txt Mon May 27 19:40:14 2019 (r502817)
@@ -1,28 +1,17 @@
---- requirements.txt.orig 2017-06-21 02:13:55 UTC
+--- requirements.txt.orig 2019-05-25 02:03:39 UTC
+++ requirements.txt
-@@ -7,18 +7,15 @@ html5lib>=0.11
+@@ -7,8 +7,8 @@ html5lib>=0.11
PyRSS2Gen
pynzb
#PY3 progressbar
--rpyc==3.3.0
+-rpyc~=4.0
+-jinja2~=2.10
+rpyc
- jinja2
++jinja2
# There is a bug in requests 2.4.0 where it leaks urllib3 exceptions
--requests~=2.16.3
--#Guessit requires python-dateutil<=2.5.2
-+requests>=2.8.0, <3.0
- python-dateutil>=2.5.3
- jsonschema>=2.0
- path.py>=8.1.1
- pathlib>=1.0; python_version<'3.4'
--guessit<=2.1.4
--# Rebulk changes how guessit works higher than 0.8.2
--rebulk==0.9.0
-+guessit>=2.1.0
- apscheduler>=3.2.0
- terminaltables>=3.1.0
- colorclass>=2.2.0
-@@ -26,10 +23,10 @@ colorclass>=2.2.0
+ requests>=2.20.0
+ python-dateutil
+@@ -24,11 +24,11 @@ colorclass>=2.2.0
cherrypy>=3.7.0
flask>=0.7
flask-restful>=0.3.3
@@ -35,3 +24,6 @@
-zxcvbn-python
+zxcvbn
future>=0.15.2
+-progressbar==2.5
+\ No newline at end of file
++progressbar>=2.5
More information about the svn-ports-all
mailing list