mirror of
https://github.com/SinTan1729/TvTimeToTrakt.git
synced 2025-04-19 17:40:01 -05:00
Add TVTimeShow class
This commit is contained in:
parent
bfc6b171b3
commit
118e5f8882
1 changed files with 28 additions and 20 deletions
|
@ -8,7 +8,7 @@ import sys
|
||||||
import time
|
import time
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional, Callable, TypeVar, Union
|
from typing import Optional, Callable, TypeVar, Union, Any
|
||||||
|
|
||||||
import trakt.core
|
import trakt.core
|
||||||
from tinydb import Query, TinyDB
|
from tinydb import Query, TinyDB
|
||||||
|
@ -305,16 +305,37 @@ class Searcher:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
class TVTimeItem:
|
||||||
|
def __init__(self, name: str):
|
||||||
|
self.name = name
|
||||||
|
|
||||||
|
|
||||||
|
class TVTimeTVShow(TVTimeItem):
|
||||||
|
def __init__(self, row: Any):
|
||||||
|
# Get the name of the item
|
||||||
|
super().__init__(row["tv_show_name"])
|
||||||
|
# Get the TV Time Episode id
|
||||||
|
self.episode_id = row["episode_id"]
|
||||||
|
# Get the TV Time Season Number
|
||||||
|
self.season_number = row["episode_season_number"]
|
||||||
|
# Get the TV Time Episode Number
|
||||||
|
self.episode_number = row["episode_number"]
|
||||||
|
# Get the date which the show was marked 'watched' in TV Time
|
||||||
|
# and parse the watched date value into a Python type
|
||||||
|
self.date_watched = datetime.strptime(
|
||||||
|
row["updated_at"], "%Y-%m-%d %H:%M:%S"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TVShowSearcher(Searcher):
|
class TVShowSearcher(Searcher):
|
||||||
def __init__(self, season_number: str, episode_number: str):
|
def __init__(self, tv_show: TVTimeTVShow):
|
||||||
super().__init__(userMatchedShowsTable, TVShow.search, self._print_manual_selection)
|
super().__init__(userMatchedShowsTable, TVShow.search, self._print_manual_selection)
|
||||||
self.season_number = season_number
|
self.tv_show = tv_show
|
||||||
self.episode_number = episode_number
|
|
||||||
|
|
||||||
def _print_manual_selection(self, items_with_same_name: list[SearchResult]) -> None:
|
def _print_manual_selection(self, items_with_same_name: list[SearchResult]) -> None:
|
||||||
print(
|
print(
|
||||||
f"INFO - MANUAL INPUT REQUIRED: The TV Time data for Show '{self.name}' (Season {self.season_number},"
|
f"INFO - MANUAL INPUT REQUIRED: The TV Time data for Show '{self.name}' (Season {self.tv_show.season_number},"
|
||||||
f"Episode {self.episode_number}) has {len(items_with_same_name)} matching Trakt shows with the same name.\a "
|
f"Episode {self.tv_show.episode_number}) has {len(items_with_same_name)} matching Trakt shows with the same name.\a "
|
||||||
)
|
)
|
||||||
|
|
||||||
# Output each show for manual selection
|
# Output each show for manual selection
|
||||||
|
@ -356,20 +377,7 @@ class Processor:
|
||||||
# Ignore the header row
|
# Ignore the header row
|
||||||
next(self._reader, None)
|
next(self._reader, None)
|
||||||
for rowsCount, row in enumerate(self._reader):
|
for rowsCount, row in enumerate(self._reader):
|
||||||
# Get the name of the item
|
tv_time_tv_show = TVTimeTVShow(row)
|
||||||
tv_show_name = row["tv_show_name"]
|
|
||||||
# Get the TV Time Episode id
|
|
||||||
tv_show_episode_id = row["episode_id"]
|
|
||||||
# Get the TV Time Season Number
|
|
||||||
tv_show_season_number = row["episode_season_number"]
|
|
||||||
# Get the TV Time Episode Number
|
|
||||||
tv_show_episode_number = row["episode_number"]
|
|
||||||
# Get the date which the show was marked 'watched' in TV Time
|
|
||||||
tv_show_date_watched = row["updated_at"]
|
|
||||||
# Parse the watched date value into a Python type
|
|
||||||
tv_show_date_watched_converted = datetime.strptime(
|
|
||||||
tv_show_date_watched, "%Y-%m-%d %H:%M:%S"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Query the local database for previous entries indicating that
|
# Query the local database for previous entries indicating that
|
||||||
# the episode has already been imported in the past. Which will
|
# the episode has already been imported in the past. Which will
|
||||||
|
|
Loading…
Reference in a new issue