Skip to content

Quality plugin crashes when quality isn't a valid quality string #2028

@cvium

Description

@cvium

Expected behaviour:

quality field should contain a Quality object when entry is used as input from entry_list.

Actual behaviour:

quality field is a string, which is sometimes literally "unknown". The task crashes if any quality comparisons are made with an invalid quality string.

Config:

Following config reproduces the issue

  test_quality:
    mock:
    - title: foo
      quality: unknown
    accept_all: yes
    quality: 720p
    disable: seen

Another config using entry_list (untested though)

  t_e:
    seen: local
    list_add:
      - entry_list: test
    mock:
      - {title: 'My Show S01E01'}
    series:
      - My Show
  t_q:
    entry_list: test
    accept_all: yes
    quality: 720p
    disable: seen

Log:

2017-11-29 20:34 CRITICAL task          task_name BUG: Unhandled error in plugin quality: `unknown` does not appear to be a valid quality string.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flexget/task.py", line 486, in __run_plugin
    return method(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flexget/event.py", line 23, in __call__
    return self.func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/flexget/plugins/filter/quality.py", line 36, in on_task_filter
    if not any(req.allows(entry['quality']) for req in reqs):
  File "/usr/local/lib/python2.7/dist-packages/flexget/plugins/filter/quality.py", line 36, in <genexpr>
    if not any(req.allows(entry['quality']) for req in reqs):
  File "/usr/local/lib/python2.7/dist-packages/flexget/utils/qualities.py", line 475, in allows
    raise TypeError('`%s` does not appear to be a valid quality string.' % qual.text)
TypeError: `unknown` does not appear to be a valid quality string.

Additional information:

  • FlexGet version: 2.11.4
  • Python version: 2.7.12
  • Installation method: pip
  • Using daemon (yes/no): yes
  • OS and version: Ubuntu 16.04

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions