mirror of
https://github.com/KevinMidboe/Node-Com-Handler.git
synced 2025-10-29 17:50:27 +00:00
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:
64
v1/app.py
64
v1/app.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user