forked from Waterboy1602/Addarr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathradarr.py
83 lines (68 loc) · 2.33 KB
/
radarr.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/env python3
import requests, json, sys, logging
import commons as commons
log = logging
log.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', filename='telegramBot.log',
filemode='w',
level=logging.INFO)
addMovieNeededFields = ['tmdbId', 'year', 'title', 'titleSlug', 'images']
def search(title):
parameters = {
"term": title
}
req = requests.get(commons.generateApiQuery('radarr', 'movie/lookup', parameters))
parsed_json = json.loads(req.text)
if req.status_code == 200:
return parsed_json
else:
return False
def giveTitles(parsed_json):
data = []
for movie in parsed_json:
if all(x in movie for x in ['title', 'overview', 'remotePoster', 'year', 'tmdbId']):
data.append({
'title': movie['title'],
'overview': movie['overview'],
'poster': movie['remotePoster'],
'year': movie['year'],
'id': movie['tmdbId']
})
return data
def returnVal(rawjson):
totalData = []
moviesList = rawjson
for movie in moviesList:
specMovie = moviesList[movie]
totalData.append(specMovie["title"], specMovie["tmdbId"], specMovie["remotePoster"], specMovie["overview"], specMovie["year"])
return totalData
def inLibrary(tmdbId):
parameters = {}
req = requests.get(commons.generateApiQuery('radarr', 'movie', parameters))
parsed_json = json.loads(req.text)
for movie in parsed_json:
if movie['tmdbId'] == tmdbId:
return True
break
return False
def addToLibrary(tmdbId):
parameters = {
"tmdbId": str(tmdbId)
}
req = requests.get(commons.generateApiQuery('radarr', 'movie/lookup/tmdb', parameters))
parsed_json = json.loads(req.text)
data = json.dumps(buildData(parsed_json))
add = requests.post(commons.generateApiQuery('radarr', 'movie'), data=data)
if add.status_code == 201:
return True
else:
return False
def buildData(json):
built_data = {
'qualityProfileId': 1,
'rootFolderPath': '/media/movies/',
"addOptions" : {
"searchForMovie" : "true"},
}
for key in addMovieNeededFields:
built_data[key] = json[key]
return built_data