Influxdb2 (#3)
* #203 * Update docker compose to specify influxdb:1.8.4 * Update requirements to use urllib3==1.26.5 * updated to support Radarr and Sonarr V3 Api * bump requirements for requests * Fix Sonarr & Radarr V3 API /queue endpoint (#220) * Fix lint issues * More lint fixes * Update Sonarr structures * Add Overseerr Support (#210) * Remove duplicate structures * update changelog to reflect v1.7.7 changes * Add IP data to tautulli #202 * add missing ip address in tautulli * Fixed: Streamlined API calls to Radarr and Sonarr (#221) * Fixed: Sonarr Data pull issues (#222) * Fix Sonarrr calendar * Update lidarr structure (#225) Added missing arguments to Lidarr structure Fixes #223 * Clean up request totals. Upstream change sct/overseerr#2426 * Cleanup blank space * Fix requested_date syntax. * Fix requested_date for Overseerr tv and movie * Fix overseerr config refernces * Fix overseerr structures * Update intparser to accommodate changes to config structure * Cleanup overseerr data collection * Fix SERVICES_ENABLED in varken.py to acomidate overseerr * Fixed: Sonarr/Lidarr Queues (#227) * Change sonarr queue structures to str * Fixed: Multipage queue fetching * Update historical tautulli import (#226) * Fixed: Sonarr perams ordering * Fixed: Proper warnings for missing data in sonarr and radarr * Added: Overseerr ENVs to docker compose. * Added: Logging to empty/no data returns * Update Sonarr & Lidarr Structs to match latest API changes (#231) * Add support for estimatedCompletionTime in LidarrQueue * Add support for tvdbId in SonarrEpisode struct * Fix typo in docker yml * Rename example url for overseerr in docker yml * Update radarr structures to inclue originalLanguage * Update radarr structures to include addOptions * Update radarr structures to include popularity * fix(ombi): Update structures.py (#238) * feat(docker): remove envs from example * fix(logging): remove depreciation warning. Var for debug mode (#240) * fix(build): bump schedule version to 1.1 * fix(build): bump docker python version * fix(dep): update requests and urllib3 * fix(sonarr): ensure invalid sonarr queue items are just skipped over - fixes #239 (#243) * add branch to build inputs * update pipeline badge * Update automation * Add influxdb 2 client * Add structure for influxdb 2 params This contains all the data needed for connecting and writing to an InfluxDB2 server * Parse influxdb 2 config data * Add influxdb2 manager class This stores the data needed for InfluxDB2, and has a single `write_points` function on this that takes an array of points to add to the database * Use the correct db manager for varken * Add influxdb2 to the example varken config file * Create influx bucket if it doesn't exist * Update InfluxDB type on README * Clean up linting errors * Wrap create bucket in try/catch * Use bucket given in ini file * Log exception to troubleshoot errors * Allow configured influx2 address as URL (no port) * Bypass validity check to troubleshoot --------- Co-authored-by: mal5305 <malcolm.e.rogers@gmail.com> Co-authored-by: samwiseg0 <2241731+samwiseg0@users.noreply.github.com> Co-authored-by: Robin <19610103+RobinDadswell@users.noreply.github.com> Co-authored-by: tigattack <10629864+tigattack@users.noreply.github.com> Co-authored-by: Stewart Thomson <stewartthomson3@gmail.com> Co-authored-by: Cameron Stephen <mail@cajs.co.uk> Co-authored-by: MDHMatt <10845262+MDHMatt@users.noreply.github.com> Co-authored-by: Nathan Adams <dinnerbone@dinnerbone.com> Co-authored-by: Nicholas St. Germain <nick@cajun.pro> Co-authored-by: Gabe Revells <gcrevell@mtu.edu>
This commit is contained in:
parent
b5a83f0d34
commit
7e03144365
15 changed files with 578 additions and 194 deletions
|
|
@ -20,6 +20,16 @@ class InfluxServer(NamedTuple):
|
|||
verify_ssl: bool = False
|
||||
|
||||
|
||||
class Influx2Server(NamedTuple):
|
||||
url: str = 'localhost'
|
||||
org: str = 'server'
|
||||
token: str = 'TOKEN'
|
||||
bucket: str = 'varken'
|
||||
timeout: int = 10000
|
||||
ssl: bool = False
|
||||
verify_ssl: bool = False
|
||||
|
||||
|
||||
class SonarrServer(NamedTuple):
|
||||
api_key: str = None
|
||||
future_days: int = 0
|
||||
|
|
@ -57,6 +67,17 @@ class OmbiServer(NamedTuple):
|
|||
verify_ssl: bool = False
|
||||
|
||||
|
||||
class OverseerrServer(NamedTuple):
|
||||
api_key: str = None
|
||||
id: int = None
|
||||
url: str = None
|
||||
verify_ssl: bool = False
|
||||
get_request_total_counts: bool = False
|
||||
request_total_run_seconds: int = 30
|
||||
num_latest_requests_to_fetch: int = 10
|
||||
num_latest_requests_seconds: int = 30
|
||||
|
||||
|
||||
class TautulliServer(NamedTuple):
|
||||
api_key: str = None
|
||||
fallback_ip: str = None
|
||||
|
|
@ -91,22 +112,13 @@ class UniFiServer(NamedTuple):
|
|||
|
||||
|
||||
# Shared
|
||||
class Queue(NamedTuple):
|
||||
downloadId: str = None
|
||||
episode: dict = None
|
||||
estimatedCompletionTime: str = None
|
||||
id: int = None
|
||||
movie: dict = None
|
||||
protocol: str = None
|
||||
quality: dict = None
|
||||
series: dict = None
|
||||
size: float = None
|
||||
sizeleft: float = None
|
||||
status: str = None
|
||||
statusMessages: list = None
|
||||
timeleft: str = None
|
||||
title: str = None
|
||||
trackedDownloadStatus: str = None
|
||||
class QueuePages(NamedTuple):
|
||||
page: int = None
|
||||
pageSize: int = None
|
||||
sortKey: str = None
|
||||
sortDirection: str = None
|
||||
totalRecords: str = None
|
||||
records: list = None
|
||||
|
||||
|
||||
# Ombi Structures
|
||||
|
|
@ -127,8 +139,10 @@ class OmbiTVRequest(NamedTuple):
|
|||
childRequests: list = None
|
||||
denied: bool = None
|
||||
deniedReason: None = None
|
||||
externalProviderId: str = None
|
||||
id: int = None
|
||||
imdbId: str = None
|
||||
languageProfile: str = None
|
||||
markedAsDenied: str = None
|
||||
overview: str = None
|
||||
posterPath: str = None
|
||||
|
|
@ -145,72 +159,159 @@ class OmbiTVRequest(NamedTuple):
|
|||
|
||||
class OmbiMovieRequest(NamedTuple):
|
||||
approved: bool = None
|
||||
approved4K: bool = None
|
||||
available: bool = None
|
||||
available4K: bool = None
|
||||
background: str = None
|
||||
canApprove: bool = None
|
||||
denied: bool = None
|
||||
denied4K: None = None
|
||||
deniedReason: None = None
|
||||
deniedReason4K: None = None
|
||||
digitalRelease: bool = None
|
||||
digitalReleaseDate: None = None
|
||||
has4KRequest: bool = None
|
||||
id: int = None
|
||||
imdbId: str = None
|
||||
is4kRequest: bool = None
|
||||
issueId: None = None
|
||||
issues: None = None
|
||||
langCode: str = None
|
||||
languageCode: str = None
|
||||
markedAsApproved: str = None
|
||||
markedAsApproved4K: str = None
|
||||
markedAsAvailable: None = None
|
||||
markedAsAvailable4K: None = None
|
||||
markedAsDenied: str = None
|
||||
markedAsDenied4K: str = None
|
||||
overview: str = None
|
||||
posterPath: str = None
|
||||
qualityOverride: int = None
|
||||
released: bool = None
|
||||
releaseDate: str = None
|
||||
requestedByAlias: str = None
|
||||
requestedDate: str = None
|
||||
requestedDate4k: str = None
|
||||
requestedUser: dict = None
|
||||
requestedUserId: str = None
|
||||
requestStatus: str = None
|
||||
requestType: int = None
|
||||
rootPathOverride: int = None
|
||||
showSubscribe: bool = None
|
||||
source: int = None
|
||||
status: str = None
|
||||
subscribed: bool = None
|
||||
theMovieDbId: int = None
|
||||
title: str = None
|
||||
langCode: str = None
|
||||
languageCode: str = None
|
||||
requestedByAlias: str = None
|
||||
requestStatus: str = None
|
||||
|
||||
|
||||
# Overseerr
|
||||
class OverseerrRequestCounts(NamedTuple):
|
||||
pending: int = None
|
||||
approved: int = None
|
||||
processing: int = None
|
||||
available: int = None
|
||||
total: int = None
|
||||
movie: int = None
|
||||
tv: int = None
|
||||
declined: int = None
|
||||
|
||||
|
||||
# Sonarr
|
||||
class SonarrTVShow(NamedTuple):
|
||||
added: str = None
|
||||
airTime: str = None
|
||||
alternateTitles: list = None
|
||||
certification: str = None
|
||||
cleanTitle: str = None
|
||||
ended: bool = None
|
||||
firstAired: str = None
|
||||
genres: list = None
|
||||
id: int = None
|
||||
images: list = None
|
||||
imdbId: str = None
|
||||
languageProfileId: int = None
|
||||
monitored: bool = None
|
||||
nextAiring: str = None
|
||||
network: str = None
|
||||
overview: str = None
|
||||
path: str = None
|
||||
previousAiring: str = None
|
||||
qualityProfileId: int = None
|
||||
ratings: dict = None
|
||||
rootFolderPath: str = None
|
||||
runtime: int = None
|
||||
seasonFolder: bool = None
|
||||
seasons: list = None
|
||||
seriesType: str = None
|
||||
sortTitle: str = None
|
||||
statistics: dict = None
|
||||
status: str = None
|
||||
tags: list = None
|
||||
title: str = None
|
||||
titleSlug: str = None
|
||||
tvdbId: int = None
|
||||
tvMazeId: int = None
|
||||
tvRageId: int = None
|
||||
useSceneNumbering: bool = None
|
||||
year: int = None
|
||||
|
||||
|
||||
class SonarrEpisode(NamedTuple):
|
||||
absoluteEpisodeNumber: int = None
|
||||
airDate: str = None
|
||||
airDateUtc: str = None
|
||||
episodeFile: dict = None
|
||||
episodeFileId: int = None
|
||||
episodeNumber: int = None
|
||||
grabbed: bool = None
|
||||
hasFile: bool = None
|
||||
id: int = None
|
||||
lastSearchTime: str = None
|
||||
monitored: bool = None
|
||||
overview: str = None
|
||||
sceneAbsoluteEpisodeNumber: int = None
|
||||
sceneEpisodeNumber: int = None
|
||||
sceneSeasonNumber: int = None
|
||||
seasonNumber: int = None
|
||||
series: dict = None
|
||||
seriesId: int = None
|
||||
title: str = None
|
||||
unverifiedSceneNumbering: bool = None
|
||||
sceneAbsoluteEpisodeNumber: int = None
|
||||
sceneEpisodeNumber: int = None
|
||||
sceneSeasonNumber: int = None
|
||||
series: SonarrTVShow = None
|
||||
tvdbId: int = None
|
||||
|
||||
|
||||
class SonarrQueue(NamedTuple):
|
||||
downloadClient: str = None
|
||||
downloadId: str = None
|
||||
episodeId: int = None
|
||||
id: int = None
|
||||
indexer: str = None
|
||||
language: dict = None
|
||||
protocol: str = None
|
||||
quality: dict = None
|
||||
size: float = None
|
||||
sizeleft: float = None
|
||||
status: str = None
|
||||
statusMessages: list = None
|
||||
title: str = None
|
||||
trackedDownloadState: str = None
|
||||
trackedDownloadStatus: str = None
|
||||
seriesId: int = None
|
||||
errorMessage: str = None
|
||||
outputPath: str = None
|
||||
series: SonarrTVShow = None
|
||||
episode: SonarrEpisode = None
|
||||
timeleft: str = None
|
||||
estimatedCompletionTime: str = None
|
||||
|
||||
|
||||
# Radarr
|
||||
class RadarrMovie(NamedTuple):
|
||||
added: str = None
|
||||
addOptions: str = None
|
||||
alternativeTitles: list = None
|
||||
alternateTitles: list = None
|
||||
certification: str = None
|
||||
cleanTitle: str = None
|
||||
downloaded: bool = None
|
||||
collection: dict = None
|
||||
digitalRelease: str = None
|
||||
folderName: str = None
|
||||
genres: list = None
|
||||
hasFile: bool = None
|
||||
|
|
@ -219,32 +320,58 @@ class RadarrMovie(NamedTuple):
|
|||
imdbId: str = None
|
||||
inCinemas: str = None
|
||||
isAvailable: bool = None
|
||||
lastInfoSync: str = None
|
||||
minimumAvailability: str = None
|
||||
monitored: bool = None
|
||||
movieFile: dict = None
|
||||
originalTitle: str = None
|
||||
overview: str = None
|
||||
path: str = None
|
||||
pathState: str = None
|
||||
physicalRelease: str = None
|
||||
physicalReleaseNote: str = None
|
||||
profileId: int = None
|
||||
qualityProfileId: int = None
|
||||
ratings: dict = None
|
||||
runtime: int = None
|
||||
secondaryYear: str = None
|
||||
secondaryYear: int = None
|
||||
secondaryYearSourceId: int = None
|
||||
sizeOnDisk: int = None
|
||||
sizeOnDisk: float = None
|
||||
sortTitle: str = None
|
||||
status: str = None
|
||||
studio: str = None
|
||||
tags: list = None
|
||||
title: str = None
|
||||
titleSlug: str = None
|
||||
tmdbId: int = None
|
||||
website: str = None
|
||||
year: int = None
|
||||
youTubeTrailerId: str = None
|
||||
title: str = None
|
||||
originalLanguage: str = None
|
||||
addOptions: str = None
|
||||
popularity: str = None
|
||||
|
||||
|
||||
# Radarr Queue
|
||||
class RadarrQueue(NamedTuple):
|
||||
customFormats: list = None
|
||||
downloadClient: str = None
|
||||
downloadId: str = None
|
||||
id: int = None
|
||||
indexer: str = None
|
||||
languages: list = None
|
||||
movieId: int = None
|
||||
protocol: str = None
|
||||
quality: dict = None
|
||||
size: float = None
|
||||
sizeleft: float = None
|
||||
status: str = None
|
||||
statusMessages: list = None
|
||||
title: str = None
|
||||
trackedDownloadState: str = None
|
||||
trackedDownloadStatus: str = None
|
||||
timeleft: str = None
|
||||
estimatedCompletionTime: str = None
|
||||
errorMessage: str = None
|
||||
outputPath: str = None
|
||||
movie: RadarrMovie = None
|
||||
timeleft: str = None
|
||||
|
||||
|
||||
# Sickchill
|
||||
|
|
@ -364,6 +491,7 @@ class TautulliStream(NamedTuple):
|
|||
reference_id: int = None
|
||||
relay: int = None
|
||||
relayed: int = None
|
||||
row_id: int = None
|
||||
section_id: str = None
|
||||
secure: str = None
|
||||
selected: int = None
|
||||
|
|
@ -402,6 +530,7 @@ class TautulliStream(NamedTuple):
|
|||
stream_video_codec: str = None
|
||||
stream_video_codec_level: str = None
|
||||
stream_video_decision: str = None
|
||||
stream_video_dynamic_range: str = None
|
||||
stream_video_framerate: str = None
|
||||
stream_video_full_resolution: str = None
|
||||
stream_video_height: str = None
|
||||
|
|
@ -461,6 +590,7 @@ class TautulliStream(NamedTuple):
|
|||
video_codec: str = None
|
||||
video_codec_level: str = None
|
||||
video_decision: str = None
|
||||
video_dynamic_range: str = None
|
||||
video_frame_rate: str = None
|
||||
video_framerate: str = None
|
||||
video_full_resolution: str = None
|
||||
|
|
@ -491,7 +621,9 @@ class LidarrQueue(NamedTuple):
|
|||
sizeleft: float = None
|
||||
status: str = None
|
||||
trackedDownloadStatus: str = None
|
||||
trackedDownloadState: str = None
|
||||
statusMessages: list = None
|
||||
errorMessage: str = None
|
||||
downloadId: str = None
|
||||
protocol: str = None
|
||||
downloadClient: str = None
|
||||
|
|
@ -499,6 +631,7 @@ class LidarrQueue(NamedTuple):
|
|||
outputPath: str = None
|
||||
downloadForced: bool = None
|
||||
id: int = None
|
||||
estimatedCompletionTime: str = None
|
||||
|
||||
|
||||
class LidarrAlbum(NamedTuple):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue