From 5e94e6976b1b7c736c172b8bb54b7bda8ceea146 Mon Sep 17 00:00:00 2001 From: Will Longo Date: Tue, 17 Apr 2018 14:28:02 -0500 Subject: [PATCH 1/2] Update sonarr.py added ability to track upcoming episodes (https://picload.org/image/dogapgwa/1.png) slightly modified missing episodes to show additional data (episode name) also added leading 0 to reflect S00E00 format to help my OCD. feel free to use what you like! --- sonarr.py | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/sonarr.py b/sonarr.py index d311c38..40c26d8 100644 --- a/sonarr.py +++ b/sonarr.py @@ -14,11 +14,11 @@ missing = [] influx_payload = [] for show in tv_shows.keys(): - name = '{} - S{}E{}'.format(tv_shows[show]['series']['title'], tv_shows[show]['seasonNumber'], - tv_shows[show]['episodeNumber']) - missing.append((name, tv_shows[show]['id'])) + seriesTitle = '{}'.format(tv_shows[show]['series']['title']) + sxe = 'S{:0>2} - E{:0>2}'.format(tv_shows[show]['seasonNumber'],tv_shows[show]['episodeNumber']) + missing.append((seriesTitle, sxe, tv_shows[show]['id'], tv_shows[show]['title'])) -for show, id in missing: +for seriesTitle, sxe, id, title in missing: influx_payload.append( { "measurement": "Sonarr", @@ -28,12 +28,43 @@ for show, id in missing: }, "time": current_time, "fields": { - "name": show + "name": seriesTitle, + "epname": title, + "sxe": sxe } } ) + +get_upcoming_shows = requests.get('{}/api/calendar/'.format(configuration.sonarr_url), + headers=headers).json() +upcoming_shows = {d['id']: d for d in get_upcoming_shows} +upcoming = [] +influx_payload2 = [] + +for show in upcoming_shows.keys(): + seriesTitle = '{}'.format(upcoming_shows[show]['series']['title']) + sxe = 'S{:0>2} - E{:0>2}'.format(upcoming_shows[show]['seasonNumber'],upcoming_shows[show]['episodeNumber']) + upcoming.append((seriesTitle, sxe, upcoming_shows[show]['id'], upcoming_shows[show]['title'], upcoming_shows[show]['airDate'])) + +for seriesTitle, sxe, id, title, airDate in upcoming: + influx_payload2.append( + { + "measurement": "Sonarr", + "tags": { + "type": "Soon", + "sonarrId": id + }, + "time": current_time, + "fields": { + "name": seriesTitle, + "epname": title, + "sxe": sxe, + "airs": airDate + } + } + ) influx = InfluxDBClient(configuration.grafana_url, configuration.grafana_port, configuration.grafana_username, configuration.grafana_password, configuration.sonarr_grafana_db_name) influx.write_points(influx_payload) - +influx.write_points(influx_payload2) From 989c863a119985a98754109319fa477541ff3b17 Mon Sep 17 00:00:00 2001 From: Will Longo Date: Tue, 17 Apr 2018 14:33:02 -0500 Subject: [PATCH 2/2] Update sonarr.py forgot to delete ' - ' for SXXEXX naming :/ --- sonarr.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sonarr.py b/sonarr.py index 40c26d8..88305d5 100644 --- a/sonarr.py +++ b/sonarr.py @@ -15,7 +15,7 @@ influx_payload = [] for show in tv_shows.keys(): seriesTitle = '{}'.format(tv_shows[show]['series']['title']) - sxe = 'S{:0>2} - E{:0>2}'.format(tv_shows[show]['seasonNumber'],tv_shows[show]['episodeNumber']) + sxe = 'S{:0>2}E{:0>2}'.format(tv_shows[show]['seasonNumber'],tv_shows[show]['episodeNumber']) missing.append((seriesTitle, sxe, tv_shows[show]['id'], tv_shows[show]['title'])) for seriesTitle, sxe, id, title in missing: @@ -43,7 +43,7 @@ influx_payload2 = [] for show in upcoming_shows.keys(): seriesTitle = '{}'.format(upcoming_shows[show]['series']['title']) - sxe = 'S{:0>2} - E{:0>2}'.format(upcoming_shows[show]['seasonNumber'],upcoming_shows[show]['episodeNumber']) + sxe = 'S{:0>2}E{:0>2}'.format(upcoming_shows[show]['seasonNumber'],upcoming_shows[show]['episodeNumber']) upcoming.append((seriesTitle, sxe, upcoming_shows[show]['id'], upcoming_shows[show]['title'], upcoming_shows[show]['airDate'])) for seriesTitle, sxe, id, title, airDate in upcoming: