Flexget: List indices Error with sonarr_list plugin

Expected behaviour:

Synchronisation of the Trakt-List ‘serien’ to Sonarr

Actual behaviour:

no synchronisation; task series_unseen crashes with error " BUG: Unhandled error in plugin list_add: list indices must be integers, not unicode"

Config:

schedules:
  - tasks: [series_unseen,series_seen,clean-compare]
    interval:
      minutes: 10

tasks:

### SERIES-SONARR #
# Get from series list any shows that have unseen episodes, add to Sonarr and search for missing

  series_unseen:
    priority: 3
    disable:
      - seen
      - seen_info_hash
      - retry_failed
    trakt_lookup:
      account: procuria
      username: Procuria
    trakt_list:
      account: procuria
      list: serien
      type: shows
    if:
      - trakt_watched: reject
    accept_all: yes
    list_add:
      - sonarr_list:
          base_url: http://localhost
          port: 8989
          api_key: MyApiKey
          ignore_episodes_with_files: yes
          root_folder_path: /home/Deluge/TV 
          search_missing_episodes: yes

# Get from series list any shows that have already been seen, add to Sonarr and only get future episodes
# Skip ended to keep Sonarr clean

  series_seen:
    priority: 4
    disable:
      - seen
      - seen_info_hash
      - retry_failed
    thetvdb_lookup: yes
    trakt_lookup:
      account: procuria
      username: Procuria
    trakt_list:
      account: procuria
      list: serien
      type: shows
    if:
      - "tvdb_status != 'Ended' and trakt_watched": accept
    list_add:
      - sonarr_list:
          base_url: http://localhost
          port: 8989
          api_key: MyApiKey
          ignore_episodes_with_files: yes
          ignore_episodes_without_files: yes
          root_folder_path: /home/Deluge/TV

### CLEANUP-SONARR #
# List compare Sonarr and series list, anything in Sonarr that is not in series list is added to entry_list sonarr-rm
# A direct list match between trakt and Sonarr does not work and removes shows incorrectly

  clean-compare:
    delay: 1 days
    priority: 6
    disable:
      - seen
      - seen_info_hash
      - retry_failed
    trakt_lookup: yes
    sonarr_list:
      base_url: http://localhost
      port: 8989
      api_key: MyApiKey
    list_match:
      from:
        - trakt_list:
            account: procuria
            list: serien
            type: shows
      action: reject
    accept_all: yes
    list_remove:
      - sonarr_list:
          base_url: http://localhost
          port: 8989
          api_key: MyApiKey

Log:

2018-05-07 20:24 INFO     manager                       Reloading config from disk.
2018-05-07 20:24 INFO     manager                       Config successfully reloaded from disk.
2018-05-07 20:34 CRITICAL task          series_unseen   BUG: Unhandled error in plugin list_add: list indices must be integers, not unicode
2018-05-07 20:34 CRITICAL manager       series_unseen   An unexpected crash has occurred. Writing crash report to /root/.flexget/crash_report.2018.05.07.203448568805.log. Please verify you are running the latest version of flexget by using "flexget -V" from CLI or by using version_checker plugin at http://flexget.com/wiki/Plugins/version_checker. You are currently using version 2.13.15
2018-05-07 20:34 WARNING  task          series_unseen   Aborting task (plugin: list_add)
2018-05-07 20:35 INFO     trakt_list    clean-compare   Successfully deleted to/from list serien: 0 movie(s), 0 show(s), 0 episode(s), 0 season(s).

Crash-Log:

2018-05-07 20:34 CRITICAL task          series_unseen   BUG: Unhandled error in plugin list_add: list indices must be integers, not unicode
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/output/list_add.py", line 54, in on_task_output
    thelist |= task.accepted
  File "/usr/lib/python2.7/_abcoll.py", line 330, in __ior__
    self.add(value)
  File "/usr/local/lib/python2.7/dist-packages/flexget/plugins/list/sonarr_list.py", line 217, in add
    log.verbose('Successfully added show %s to Sonarr', show['title'])
TypeError: list indices must be integers, not unicode

Additional information:

  • FlexGet version: 2.13.15
  • Python version: 2.7.12
  • Installation method: pip
  • Using daemon (yes/no): yes
  • OS and version: 16.04.4 LTS (GNU/Linux 4.4.0-122-generic x86_64)

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 32 (16 by maintainers)

Most upvoted comments

Looks like the wiki page needs an update with the base_path option. I think we can probably also add some handling in the plugin to detect and report this better. I think at a minimum it should start checking the return code is 2xx before processing further.

@Senojpd can you try adding base_path: /sonarr to your flexget config in the sonarr_list section…

so it will look like this in the end

tasks:
  import-trakt-to-sonarr:
    trakt_list:
      username: ******
      list: watchlist
      type: shows
    accept_all: yes
    list_add:
      - sonarr_list:
          base_url: http://localhost
          port: 12468
          base_path: /sonarr
          api_key: **********
          ignore_episodes_with_files: true
          ignore_episodes_without_files: true
          search_missing_episodes: true
          monitored: true
          
schedules:
  # Run every task once an hour
  - tasks: [import-trakt-to-sonarr]
    interval:
      minutes: 1

HOLY FUCKING SHIT BOYS. IT WORKED!

You legend, I’ve spent so many hours on this. Also, and no idea if it was related but I cleared my db files.

The sonarr response looks like it’s a list of all your shows. There’s about 45 shows in the response. Maybe @liiight has an idea why. I’ve never worked with sonarr.