Auto_Reupload TV
Quick Information
- GG-BOT: Auto ReUploader
- Deployment: Docker
Steps to reproduce
Try to have a TV Show Upload fails
Logs / Trace
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ │
│ /app/auto_reupload.py:1912 in <module> │
│ │
│ 1909 print(f"Starting reupload process at {datetime.now()}") │
│ 1910 │
│ 1911 while True: │
│ ❱ 1912 │ schedule.run_pending() │
│ 1913 │
│ /usr/lib/python3.9/site-packages/schedule/__init__.py:780 in run_pending │
│ │
│ 777 │ """Calls :meth:`run_pending <Scheduler.run_pending>` on the │
│ 778 │ :data:`default scheduler instance <default_scheduler>`. │
│ 779 │ """ │
│ ❱ 780 │ default_scheduler.run_pending() │
│ 781 │
│ 782 │
│ 783 def run_all(delay_seconds: int = 0) -> None: │
│ │
│ /usr/lib/python3.9/site-packages/schedule/__init__.py:100 in run_pending │
│ │
│ 97 │ │ """ │
│ 98 │ │ runnable_jobs = (job for job in self.jobs if job.should_run) │
│ 99 │ │ for job in sorted(runnable_jobs): │
│ ❱ 100 │ │ │ self._run_job(job) │
│ 101 │ │
│ 102 │ def run_all(self, delay_seconds: int = 0) -> None: │
│ 103 │ │ """ │
│ │
│ /usr/lib/python3.9/site-packages/schedule/__init__.py:172 in _run_job │
│ │
│ 169 │ │ return job │
│ 170 │ │
│ 171 │ def _run_job(self, job: "Job") -> None: │
│ ❱ 172 │ │ ret = job.run() │
│ 173 │ │ if isinstance(ret, CancelJob) or ret is CancelJob: │
│ 174 │ │ │ self.cancel_job(job) │
│ 175 │
│ │
│ /usr/lib/python3.9/site-packages/schedule/__init__.py:661 in run │
│ │
│ 658 │ │ │ return CancelJob │
│ 659 │ │ │
│ 660 │ │ logger.debug("Running job %s", self) │
│ ❱ 661 │ │ ret = self.job_func() │
│ 662 │ │ self.last_run = datetime.datetime.now() │
│ 663 │ │ self._schedule_next_run() │
│ 664 │
│ │
│ /app/auto_reupload.py:1900 in reupload_job │
│ │
│ 1897 │ │ f"[Main] There are a total of {len(torrents)} completed torre │
│ 1898 │ ) │
│ 1899 │ for torrent in torrents: │
│ ❱ 1900 │ │ _process_torrent(torrent) │
│ 1901 │
│ 1902 │
│ 1903 # -------------- END of reupload_job -------------- │
│ │
│ /app/auto_reupload.py:1485 in _process_torrent │
│ │
│ 1482 │ ) │
│ 1483 │ │
│ 1484 │ # tmdb, imdb and tvmaze in torrent_info will be filled by this me │
│ ❱ 1485 │ possible_matches = metadata_utilities.fill_database_ids( │
│ 1486 │ │ torrent_info, │
│ 1487 │ │ [metadata_tmdb], │
│ 1488 │ │ [metadata_imdb], │
│ │
│ /app/utilities/utils_metadata.py:1230 in fill_database_ids │
│ │
│ 1227 │ │ logging.error( │
│ 1228 │ │ │ "[MetadataUtils] No ids provided by user / mediainfo. Fal │
│ 1229 │ │ ) │
│ ❱ 1230 │ │ possible_matches = _search_and_get_possible_matches( │
│ 1231 │ │ │ torrent_info, auto_mode │
│ 1232 │ │ ) │
│ 1233 │
│ │
│ /app/utilities/utils_metadata.py:1243 in _search_and_get_possible_matches │
│ │
│ 1240 │ │ "[Main] We are missing the 'TMDB', 'TVMAZE' & 'IMDB' ID, tryi │
│ 1241 │ ) │
│ 1242 │ # this method searches and gets all three ids ` 'imdb', 'tmdb', ' │
│ ❱ 1243 │ metadata_result = _metadata_search_tmdb_for_id( │
│ 1244 │ │ query_title=torrent_info["title"], │
│ 1245 │ │ year=torrent_info["year"] if "year" in torrent_info else "", │
│ 1246 │ │ content_type=torrent_info["type"], │
│ │
│ /app/utilities/utils_metadata.py:370 in _metadata_search_tmdb_for_id │
│ │
│ 367 │ │ │ │ # if we couldn't get tvdb id from tmdb, we can try to │
│ 368 │ │ │ │ if tmdb_external_ids["imdb"] != "0": │
│ 369 │ │ │ │ │ imdb_external_ids = _get_external_ids_from_imdb(t │
│ ❱ 370 │ │ │ │ │ tmdb_external_ids["tvdb"] = imdb_external_ids["tv │
│ 371 │ │ │ │ │
│ 372 │ │ │ │ if ( │
│ 373 │ │ │ │ │ tmdb_external_ids["tvdb"] == "0" │
╰──────────────────────────────────────────────────────────────────────────────╯
TypeError: 'NoneType' object is not subscriptable
Priority/Severity
-
High (anything that impacts the normal user flow or blocks app usage)
Edited by Noob Master669