Skip to content

Adding season_packs to all_series running alongside series causes crash #1774

@tubedogg

Description

@tubedogg

Expected behaviour:

No crash

Actual behaviour:

A crash occurs:

  File "/usr/local/lib/python2.7/site-packages/flexget/utils/tools.py", line 173, in merge_dict_from_to
    k, type(v).__name__, type(d2[k]).__name__))
MergeException: u"Merging key season_packs failed, conflicting datatypes 'bool' vs. 'dict'."

This only happens if there are multiple entries. Single entries passed through just fine. If either the series or all_series plugin is removed, or even just the season_packs option from one of them, it doesn't crash.

This exact config worked fine on prior versions (2.10.25). It's just adding season_packs that crashes it.

Steps to reproduce:

  • Step 1: Configure all_series alongside series and use the season_packs option in each.

Config:

  downloads_tv:
    include: [ includes/series.yml ]
    template: 
      - download_priorities
      - deluge-connect_move
      - notify_tv
      - aria2_tv
      - disable_all_seen
      - from_deluge-connect
    no_entries_ok: yes
    series:
      settings:
        regular_shows:
          parse_only: yes
          tracking: no
          season_packs: yes
    all_series:
      parse_only: yes
      tracking: no
      season_packs: yes
    thetvdb_lookup: yes
    accept_all: yes
    plugin_priority:
      all_series: 79
      thetvdb_lookup: 78
    if:
      - "('S01E01' in title.upper() or (series_id and series_id.upper() == 'S01E01')) and content_files|length == 1":
          set:
            is_premiere: 'y'
      - tvdb_genres is defined and 'Documentary' in tvdb_genres and 'Reality' not in tvdb_genres:
          set:
            is_doc: 'y'
      - tvdb_genres is defined and 'Mini-Series' in tvdb_genres and ('Documentary' not in tvdb_genres or ('Documentary' in tvdb_genres and 'Reality' not in tvdb_genres)):
          set:
            is_mini: 'y'
    set:
      tracker: tv
      step: '2'
      notify_title: 'TV - Deluge to aria'
      ended_doc_premiere: >
        {%- if is_doc is defined or is_mini is defined -%}
          {%- if is_doc is defined -%}Documentaries/
          {%- elif is_mini is defined -%}Miniseries/{%- endif -%}
          {%- if is_premiere is defined -%}Premieres
          {%- elif is_doc is defined -%}TV{%- endif -%}
        {%- elif is_premiere is defined -%}TV/Premieres
        {%- elif tvdb_status is defined and tvdb_status == "Ended" %}TV/Ended
        {%- else -%}TV/Current{%- endif -%}
      path: '{? deluge.tor_path2 ?}/tv'
    from_deluge_mod:
      filter:
        label: tv-1
        state: seeding
    modify_content_files: keep_list

Log:

https://gist.github.com/tubedogg/b1e4aff7de547a5f1eca652da9236a69

Additional information:

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions