Fixed: Streamlined API calls to Radarr and Sonarr (#221)
This commit is contained in:
parent
9508c3c3f7
commit
870c6cdee2
3 changed files with 13 additions and 31 deletions
|
@ -18,17 +18,6 @@ class RadarrAPI(object):
|
|||
def __repr__(self):
|
||||
return f"<radarr-{self.server.id}>"
|
||||
|
||||
def get_movie(self, id):
|
||||
endpoint = '/api/v3/movie/'
|
||||
|
||||
req = self.session.prepare_request(Request('GET', self.server.url + endpoint + str(id)))
|
||||
get = connection_handler(self.session, req, self.server.verify_ssl)
|
||||
|
||||
if not get:
|
||||
return
|
||||
|
||||
return RadarrMovie(**get)
|
||||
|
||||
def get_missing(self):
|
||||
endpoint = '/api/v3/movie'
|
||||
now = datetime.now(timezone.utc).astimezone().isoformat()
|
||||
|
@ -84,7 +73,7 @@ class RadarrAPI(object):
|
|||
now = datetime.now(timezone.utc).astimezone().isoformat()
|
||||
influx_payload = []
|
||||
pageSize = 250
|
||||
params = {'pageSize': pageSize}
|
||||
params = {'pageSize': pageSize, 'includeMovie': True}
|
||||
queueResponse = []
|
||||
queue = []
|
||||
|
||||
|
@ -118,7 +107,7 @@ class RadarrAPI(object):
|
|||
return
|
||||
|
||||
for queue_item in download_queue:
|
||||
movie = self.get_movie(queue_item.movieId)
|
||||
movie = queue_item.movie
|
||||
|
||||
name = f'{movie.title} ({movie.year})'
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ from logging import getLogger
|
|||
from requests import Session, Request
|
||||
from datetime import datetime, timezone, date, timedelta
|
||||
|
||||
from varken.structures import SonarrEpisode, SonarrQueue, QueuePages, SonarrTVShow
|
||||
from varken.structures import SonarrEpisode, SonarrQueue, QueuePages
|
||||
from varken.helpers import hashit, connection_handler
|
||||
|
||||
|
||||
|
@ -19,17 +19,6 @@ class SonarrAPI(object):
|
|||
def __repr__(self):
|
||||
return f"<sonarr-{self.server.id}>"
|
||||
|
||||
def get_series(self, id):
|
||||
endpoint = '/api/v3/series/'
|
||||
|
||||
req = self.session.prepare_request(Request('GET', self.server.url + endpoint + str(id)))
|
||||
get = connection_handler(self.session, req, self.server.verify_ssl)
|
||||
|
||||
if not get:
|
||||
return
|
||||
|
||||
return SonarrTVShow(**get)
|
||||
|
||||
def get_episode(self, id):
|
||||
endpoint = '/api/v3/episode'
|
||||
params = {'episodeIds': id}
|
||||
|
@ -49,9 +38,9 @@ class SonarrAPI(object):
|
|||
future = str(date.today() + timedelta(days=self.server.future_days))
|
||||
now = datetime.now(timezone.utc).astimezone().isoformat()
|
||||
if query == "Missing":
|
||||
params = {'start': last_days, 'end': today}
|
||||
params = {'start': last_days, 'end': today, 'includeSeries': True}
|
||||
else:
|
||||
params = {'start': today, 'end': future}
|
||||
params = {'start': today, 'end': future, 'includeSeries': True}
|
||||
influx_payload = []
|
||||
air_days = []
|
||||
missing = []
|
||||
|
@ -71,7 +60,7 @@ class SonarrAPI(object):
|
|||
'attempted is: %s', e, show)
|
||||
|
||||
for episode in tv_shows:
|
||||
tvShow = self.get_series(episode.seriesId)
|
||||
tvShow = episode.series
|
||||
sxe = f'S{episode.seasonNumber:0>2}E{episode.episodeNumber:0>2}'
|
||||
if episode.hasFile:
|
||||
downloaded = 1
|
||||
|
@ -126,7 +115,7 @@ class SonarrAPI(object):
|
|||
|
||||
while response.totalRecords > response.page * response.pageSize:
|
||||
page = response.page + 1
|
||||
params = {'pageSize': pageSize, 'page': page}
|
||||
params = {'pageSize': pageSize, 'page': page, 'includeSeries': True, 'includeEpisode': True}
|
||||
req = self.session.prepare_request(Request('GET', self.server.url + endpoint, params=params))
|
||||
get = connection_handler(self.session, req, self.server.verify_ssl)
|
||||
if not get:
|
||||
|
@ -146,8 +135,8 @@ class SonarrAPI(object):
|
|||
return
|
||||
|
||||
for queueItem in download_queue:
|
||||
tvShow = self.get_series(queueItem.seriesId)
|
||||
episode = self.get_episode(queueItem.episodeId)
|
||||
tvShow = queueItem.series
|
||||
episode = queueItem.episode
|
||||
try:
|
||||
sxe = f"S{episode.seasonNumber:0>2}E{episode.episodeNumber:0>2}"
|
||||
except TypeError as e:
|
||||
|
|
|
@ -272,6 +272,7 @@ class SonarrEpisode(NamedTuple):
|
|||
sceneAbsoluteEpisodeNumber: int = None
|
||||
sceneEpisodeNumber: int = None
|
||||
sceneSeasonNumber: int = None
|
||||
series: SonarrTVShow = None
|
||||
|
||||
|
||||
class SonarrQueue(NamedTuple):
|
||||
|
@ -293,6 +294,8 @@ class SonarrQueue(NamedTuple):
|
|||
seriesId: int = None
|
||||
errorMessage: str = None
|
||||
outputPath: str = None
|
||||
series: SonarrTVShow = None
|
||||
episode: SonarrEpisode = None
|
||||
|
||||
|
||||
# Radarr
|
||||
|
@ -358,6 +361,7 @@ class RadarrQueue(NamedTuple):
|
|||
estimatedCompletionTime: str = None
|
||||
errorMessage: str = None
|
||||
outputPath: str = None
|
||||
movie: RadarrMovie = None
|
||||
|
||||
|
||||
# Sickchill
|
||||
|
|
Loading…
Reference in a new issue