rivenmedia / riven

Handle your Media Library with ease!
https://rivenmedia.github.io/wiki/
GNU General Public License v3.0
341 stars 48 forks source link

App crashing due to batch_size out of range/zero #116

Closed RajuDhl closed 9 months ago

RajuDhl commented 9 months ago

In trakt.py, The batch size being 0 results in multiple unhandled exceptions.

Traceback (most recent call last):
  File "/home/raju/PycharmProjects/iceberg/backend/main.py", line 26, in run_in_thread
    yield
  File "/home/raju/PycharmProjects/iceberg/backend/main.py", line 52, in <module>
    app.program.start()
  File "/home/raju/PycharmProjects/iceberg/backend/program/__init__.py", line 33, in start
    self.core_manager = ServiceManager(self.media_items, True, Content, Plex, Scraping, Debrid, Symlinker)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/raju/PycharmProjects/iceberg/backend/utils/service_manager.py", line 10, in __init__
    self.initialize_services(services)
  File "/home/raju/PycharmProjects/iceberg/backend/utils/service_manager.py", line 28, in initialize_services
    new_service = service(self.media_items)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/raju/PycharmProjects/iceberg/backend/program/content/__init__.py", line 20, in __init__
    self._get_content()
  File "/home/raju/PycharmProjects/iceberg/backend/program/content/__init__.py", line 34, in _get_content
    service.run()
  File "/home/raju/PycharmProjects/iceberg/backend/program/content/overseerr.py", line 52, in run
    container = self.updater.create_items(new_items)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/raju/PycharmProjects/iceberg/backend/program/updaters/trakt.py", line 33, in create_items
    imdb_id_batches = [imdb_ids[i:i + batch_size] for i in range(0, len(imdb_ids), batch_size)]
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: range() arg 3 must not be zero

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/raju/PycharmProjects/iceberg/backend/main.py", line 50, in <module>
    with server.run_in_thread():
  File "/usr/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/raju/PycharmProjects/iceberg/backend/main.py", line 28, in run_in_thread
    app.program.stop()
  File "/home/raju/PycharmProjects/iceberg/backend/program/__init__.py", line 58, in stop
    for service in self.core_manager.services:
                   ^^^^^^^^^^^^^^^^^
AttributeError: 'Program' object has no attribute 'core_manager'
dreulavelle commented 9 months ago

Looks like an Overseerr issue. Whats your settings for overseerr?

RajuDhl commented 9 months ago

It happens even when overseer is disabled

Following is my configuration

{
  "version": "0.4.0",
  "debug": true,
  "log": true,
  "symlink": {
    "host_path": "/home/plex/media",
    "container_path": "/media"
  },
  "real_debrid": {
    "api_key": debred_api
  },
  "plex": {
    "token": plex_token,
    "url": URL
  },
  "content": {
    "plex_watchlist": {
      "enabled": false,
      "rss": "",
      "update_interval": 80
    },
    "mdblist": {
      "enabled": false,
      "lists": [""],
      "api_key": "",
      "update_interval": 80
    },
    "overseerr": {
      "enabled": false,
      "url": URL,
      "api_key": overseerr_api
    }
  },
  "scraping": {
    "after_2": 0.5,
    "after_5": 2,
    "after_10": 24,
    "torrentio": {
      "enabled": true,
      "filter": "sort=qualitysize%7Cqualityfilter=480p,scr,cam,unknown"
    },
    "orionoid": {
      "enabled": true,
      "api_key": orion_api 
    },
    "jackett": {
      "enabled": false,
      "url": "http://localhost:9117"
    }
  }
}

To add, My plex shows as disabled. And I am a bit confused in setting up symlink. Is there anywhere I can ask if I need some help setting things up?? save12

RajuDhl commented 9 months ago

To add,

batch_size = math.ceil(len(imdb_ids) * 0.1)
batch_size = max(batch_size, 1)
imdb_id_batches = [imdb_ids[i:i + batch_size] for i in range(0, len(imdb_ids), batch_size)]

keeping batch size > 0 fixes things.

Haven't looked anything deep and there might be some other underlying issues though :)

dreulavelle commented 9 months ago

make sure keys are wrapped in quotes, as they are strings. Theres a discord link on the website too

RajuDhl commented 9 months ago

The keys are, I removed those just for the comment

dreulavelle commented 9 months ago

Closing. This happens because Overseerr isn't validating correctly. Fixed this in upcoming update.