Added XML requests for plex, but will be replaced with a api request handling JSON objects instead. Also created cpuTemp for reading linux cpu temps, and added this to app API

This commit is contained in:
2017-02-08 13:35:09 +01:00
parent fb61212454
commit aea7491964
49 changed files with 30124 additions and 68 deletions

View File

@@ -5,12 +5,16 @@
from flask import Flask, jsonify, make_response, request, url_for, abort
from flask_httpauth import HTTPBasicAuth
from json import loads, dumps
import requests
from werkzeug.security import generate_password_hash, \
check_password_hash
from diskusage import diskUsage
from uptime import timeSinceBoot
from cpuTemp import getCpuTemp
from plexMovies import getSpecificMovieInfo
app = Flask(__name__, static_url_path = "")
auth = HTTPBasicAuth()
@@ -22,6 +26,8 @@ users = {
"test": "test"
}
tmdbBaseURL = "https://api.themoviedb.org/3/"
# Flask function for checking password sent with http request
# @auth.verify_password
# def verify_password(email, password):
@@ -64,10 +70,10 @@ def bad_request(error):
@app.route('/api/v1/disks', methods=['GET'])
@auth.login_required
def get_diskUsage():
try:
returningDiskUsage = diskUsage(request.args.get('dir'))
returningDiskUsage = diskUsage(request.args.get('dir'))
if returningDiskUsage != None:
return jsonify(returningDiskUsage)
except:
else:
abort(404)
@@ -79,6 +85,56 @@ def get_uptimes():
except:
abort(404)
@app.route('/api/v1/temps', methods=['GET'])
def get_temps():
cpuTemp = getCpuTemp()
if cpuTemp != None:
return jsonify( {"Avg cpu temp": cpuTemp} )
else:
return jsonify( {"Error":"Temp reading not supported for host machine."} )
# TODO PLEX
# Search, watching, +photo
@app.route('/api/v1/plex/request', methods=['GET'])
def get_movieRequest():
if (request.args.get("query") != None):
requestType = "search/multi?"
requestAPI = "api_key=" + "9fa154f5355c37a1b9b57ac06e7d6712"
requestQuery = "&query=" + str(request.args.get('query'))
requestLanguage = "&language=en.US"
url = tmdbBaseURL + requestType + requestAPI + requestQuery + requestLanguage
# url = "https://api.themoviedb.org/3/search/multi?include_adult=false&query=home%20alone&language=en-US&api_key=9fa154f5355c37a1b9b57ac06e7d6712"
payload = "{}"
response = requests.request("GET", url, data=payload)
print(response.text)
return response.text
else: return jsonify ({ "Error": "Query not defined." })
@app.route('/api/v1/plex/movies', methods=['GET'])
@auth.login_required
def getPlexMovies():
title = request.args.get('title')
movieInfo = getSpecificMovieInfo(title)
if movieInfo != None:
return jsonify(movieInfo)
abort(500)
@app.route('/api/v1/plex/watchings', methods=['GET'])
@auth.login_required
def getPlexWatchings():
r = requests.get('http://10.0.0.41:32400/status/sessions')
return r.text
movieInfo = getSpecificMovieInfo(title)
if movieInfo != None:
return jsonify(movieInfo)
@app.route('/api/v1/uptimes/duration', methods=['GET'])
@auth.login_required
@@ -101,4 +157,4 @@ def get_uptimesLoad():
if __name__ == '__main__':
app.run(host='0.0.0.0', port=63588)
app.run(port=63590, debug=True)