From 6ae2a686456c3c60390d635fcd6ddb24bdcd6a78 Mon Sep 17 00:00:00 2001 From: Spoked Date: Wed, 2 Oct 2024 20:44:42 -0400 Subject: [PATCH] fix: fixed comet unpack issue --- src/controllers/scrape.py | 16 ---------------- src/controllers/settings.py | 1 - src/program/content/plex_watchlist.py | 7 +++++-- src/program/scrapers/comet.py | 11 +---------- 4 files changed, 6 insertions(+), 29 deletions(-) diff --git a/src/controllers/scrape.py b/src/controllers/scrape.py index b46cdccf..deb833da 100644 --- a/src/controllers/scrape.py +++ b/src/controllers/scrape.py @@ -2,10 +2,8 @@ from fastapi import APIRouter, HTTPException, Request from sqlalchemy import select from program.scrapers import Scraping -from program.db.db_functions import get_item_by_imdb_id from program.indexers.trakt import TraktIndexer from program.media.item import MediaItem -from program.downloaders.realdebrid import get_torrents from program.db.db import db router = APIRouter( @@ -78,17 +76,3 @@ async def scrape(request: Request, imdb_id: str, season: int = None, episode: in raise HTTPException(status_code=500, detail=str(e)) return {"success": True, "data": data} - - -@router.get( - "/rd", - summary="Get Real-Debrid Torrents", - description="Get torrents from Real-Debrid." -) -async def get_rd_torrents(limit: int = 1000): - """ - Get torrents from Real-Debrid. - - - **limit**: Limit the number of torrents to get. - """ - return get_torrents(limit) \ No newline at end of file diff --git a/src/controllers/settings.py b/src/controllers/settings.py index 3084b938..671c9426 100644 --- a/src/controllers/settings.py +++ b/src/controllers/settings.py @@ -3,7 +3,6 @@ from fastapi import APIRouter, HTTPException from pydantic import BaseModel, ValidationError -from RTN.models import SettingsModel from program.settings.manager import settings_manager diff --git a/src/program/content/plex_watchlist.py b/src/program/content/plex_watchlist.py index 3adac1c9..4853029f 100644 --- a/src/program/content/plex_watchlist.py +++ b/src/program/content/plex_watchlist.py @@ -3,6 +3,7 @@ from plexapi.myplex import MyPlexAccount from requests import HTTPError, Session +from urllib3 import HTTPConnectionPool from program.db.db_functions import _filter_existing_items from program.media.item import Episode, MediaItem, Movie, Season, Show @@ -64,7 +65,7 @@ def run(self) -> Generator[MediaItem, None, None]: watchlist_items: list[str] = self._get_items_from_watchlist() rss_items: list[str] = self._get_items_from_rss() if self.rss_enabled else [] except Exception as e: - logger.error(f"Error fetching items: {e}") + logger.warning(f"Error fetching items: {e}") return plex_items: set[str] = set(watchlist_items) | set(rss_items) @@ -88,6 +89,7 @@ def _get_items_from_rss(self) -> list[str]: imdb_id = self._extract_imdb_ids(_item.get("guids", [])) if imdb_id and imdb_id.startswith("tt"): rss_items.append(imdb_id) + self.recurring_items.add(imdb_id) else: logger.log("NOT_FOUND", f"Failed to extract IMDb ID from {_item['title']}") except Exception as e: @@ -104,12 +106,13 @@ def _get_items_from_watchlist(self) -> list[str]: imdb_id: str = next((guid.id.split("//")[-1] for guid in item.guids if guid.id.startswith("imdb://")), "") if imdb_id and imdb_id.startswith("tt"): watchlist_items.append(imdb_id) + self.recurring_items.add(imdb_id) else: logger.log("NOT_FOUND", f"Unable to extract IMDb ID from {item.title} ({item.year}) with data id: {imdb_id}") else: logger.log("NOT_FOUND", f"{item.title} ({item.year}) is missing guids attribute from Plex") except Exception as e: - logger.error(f"An unexpected error occurred while fetching Plex watchlist item {item.log_string}: {e}") + logger.error(f"An unexpected error occurred while fetching Plex watchlist item {item.title}: {e}") return watchlist_items def _extract_imdb_ids(self, guids: list) -> str | None: diff --git a/src/program/scrapers/comet.py b/src/program/scrapers/comet.py index 8f4a54a3..a28dd148 100644 --- a/src/program/scrapers/comet.py +++ b/src/program/scrapers/comet.py @@ -81,16 +81,7 @@ def run(self, item: MediaItem) -> Dict[str, str]: logger.error(f"Comet exception thrown: {str(e)}") return {} - def scrape(self, item: MediaItem) -> Dict[str, str]: - """Scrape the given media item""" - data, stream_count = self.api_scrape(item) - if data: - logger.log("SCRAPER", f"Found {len(data)} streams out of {stream_count} for {item.log_string}") - else: - logger.log("NOT_FOUND", f"No streams found for {item.log_string}") - return data - - def api_scrape(self, item: MediaItem) -> tuple[Dict[str, str], int]: + def scrape(self, item: MediaItem) -> tuple[Dict[str, str], int]: """Wrapper for `Comet` scrape method""" identifier, scrape_type, imdb_id = _get_stremio_identifier(item) if not imdb_id: