aetaric / checkrr

Checkrr Scans your library files for corrupt media and replace the files via sonarr and radarr
MIT License
184 stars 8 forks source link

[Feature Request] Support Multiple Sonarr/Radarr/Lidarr instances #26

Closed HStep20 closed 1 year ago

HStep20 commented 1 year ago

Many people, myself included, have multiple instances of sonarr/radarr set up for various purposes, like separate 4k and anime libraries. While the tool seems great, the inability to 'link' a folder path to an '-arr' instance makes it a bit more cumbersome to use. Yes, I could run 3 instances of the tool (one for normal libraries, one for 4k libraries, and one for anime libraries), but it'd be far more convenient if we could initialize multiple connections, and assign file paths to specific -arr instances.

The config could look something along the lines of:

checkrr:
  checkpath: 
     sonarr:
      - "./media/my_shows" 
      - "./media/requested_shows"
     sonarr-4k:
      - "./media/4kshows" 
     sonarr-anime:
      - "./media/anime"
    - "./media/not_connected_to_arr_app"

sonarr:
  process: false
  address: 127.0.0.1
  apikey: ""
  baseurl: /
  port: 8989
sonarr-4k:
  process: false
  address: 127.0.0.1
  apikey: ""
  baseurl: /
  port: 8990
sonarr-anime:
  process: false
  address: 127.0.0.1
  apikey: ""
  baseurl: /
  port: 8991
aetaric commented 1 year ago

I love this idea! It'll take a bit of effort to support this, but I should be able to get it to work.

shanekorbel commented 1 year ago

+1 to this issue

aetaric commented 1 year ago

Just updating this with my thought process for how this would likely look. You can't mix types in subkeys in YAML and I missed the spacing in the original post.

The format below would allow the parser to still read it, while allowing users to build it out dynamically to their liking. checkrr already contacts configured services to grab the list of root directories configured in them and #30 will add in mappings to translate between docker container paths and arr services.

checkrr:
  checkpath: 
    - "./media/my_shows" 
    - "./media/requested_shows"
    - "./media/4kshows" 
    - "./media/anime"
    - "./media/not_connected_to_arr_app"
arr:
  sonarr:
    process: false
    service: sonarr
    address: 127.0.0.1
    apikey: ""
    baseurl: /
    port: 8989
  4kshows:
    process: false
    service: sonarr
    address: 127.0.0.1
    apikey: ""
    baseurl: /
    port: 8990
  anime:
    process: false
    service: sonarr
    address: 127.0.0.1
    apikey: ""
    baseurl: /
    port: 8991