Basic functionality implemented
This commit is contained in:
127
api/api.py
Normal file
127
api/api.py
Normal file
@@ -0,0 +1,127 @@
|
||||
from hashlib import new
|
||||
from typing import DefaultDict
|
||||
import flask, werkzeug
|
||||
from flask import request, jsonify
|
||||
import myjdapi
|
||||
import getpass
|
||||
import configparser
|
||||
|
||||
app = flask.Flask(__name__)
|
||||
app.config["DEBUG"] = True
|
||||
|
||||
jd = myjdapi.Myjdapi()
|
||||
jd.set_app_key("flaskapiios")
|
||||
|
||||
config = configparser.RawConfigParser()
|
||||
config.read('config.ini')
|
||||
config.sections()
|
||||
Email = config['Auth']['Email']
|
||||
Password = config['Auth']['Password']
|
||||
|
||||
def get_id(links, uuid):
|
||||
for i, obj in enumerate(links):
|
||||
if obj["uuid"] == uuid:
|
||||
return i
|
||||
|
||||
|
||||
@app.route('/api/devices', methods=['GET'])
|
||||
def api_devices():
|
||||
jd.connect(Email,Password)
|
||||
jd.update_devices()
|
||||
devicelist = jd.list_devices()
|
||||
devicesDict = dict()
|
||||
for i, obj in enumerate(devicelist):
|
||||
devicesDict[obj["name"]] = obj["name"]
|
||||
return jsonify(devicesDict)
|
||||
|
||||
@app.route('/api/linkgrabber', methods=['GET'])
|
||||
def api_url():
|
||||
jd.connect(Email,Password)
|
||||
# Check if a URL was provided as part of the URL.
|
||||
# If URL is provided, assign it to a variable.
|
||||
# If no URL is provided, display an error in the browser.
|
||||
if 'url' in request.args:
|
||||
url = request.args['url']
|
||||
print(url)
|
||||
else:
|
||||
return "Error: No url field provided."
|
||||
if 'device' in request.args:
|
||||
print("THIS IS DEVICE: ")
|
||||
print(str(request.args['device']))
|
||||
device = jd.get_device(str(request.args['device']))
|
||||
else:
|
||||
return "Error: No device provided."
|
||||
device.linkgrabber.add_links([{
|
||||
"autostart" : False,
|
||||
"links" : url}])
|
||||
return ("Tue")
|
||||
|
||||
@app.route('/api/links', methods=['GET'])
|
||||
def api_listlinks():
|
||||
jd.connect(Email,Password)
|
||||
if 'device' in request.args:
|
||||
device = jd.get_device(str(request.args['device']))
|
||||
else:
|
||||
return "Error: No device provided."
|
||||
links = device.linkgrabber.query_links()
|
||||
linkDict = dict()
|
||||
for i, obj in enumerate(links):
|
||||
linkDict[obj["name"]] = obj["uuid"]
|
||||
newList = list(linkDict.items())
|
||||
|
||||
return dict(newList)
|
||||
return jsonify(device.linkgrabber.query_links())
|
||||
|
||||
@app.route('/api/variants', methods=['GET'])
|
||||
def api_variants():
|
||||
jd.connect(Email,Password)
|
||||
if 'uuid' in request.args:
|
||||
uuid = int(request.args['uuid'])
|
||||
else:
|
||||
return "Error: no file selected"
|
||||
if 'device' in request.args:
|
||||
device = jd.get_device(str(request.args['device']))
|
||||
else:
|
||||
return "Error: No device provided."
|
||||
|
||||
#links = device.linkgrabber.query_links()
|
||||
|
||||
uuid = str(uuid).split()
|
||||
varid = "MKV_VP9_1080P_30FPS_AAC_128KBIT_DASH"
|
||||
varid = varid
|
||||
a = device.linkgrabber.get_variants(uuid)
|
||||
s = {
|
||||
"id" : "MP4_H264_1080P_30FPS_AAC_128KBIT_DASH",
|
||||
"data" : "{\r\n \"aBitrate\" : -1,\r\n \"height\" : 1080,\r\n \"width\" : 1920,\r\n \"fps\" : 30,\r\n \"projection\" : \"NORMAL\"\r\n}"
|
||||
}
|
||||
print (s)
|
||||
s = str(s).split()
|
||||
device.linkgrabber.set_variant(uuid, s)
|
||||
|
||||
return jsonify(device.linkgrabber.get_variants(uuid))
|
||||
|
||||
@app.route('/api/download', methods=['GET'])
|
||||
def api_addownload():
|
||||
jd.connect(Email,Password)
|
||||
if 'uuid' in request.args:
|
||||
# file = []
|
||||
uuid = int(request.args['uuid'])
|
||||
else:
|
||||
return "Error: No file selected"
|
||||
if 'device' in request.args:
|
||||
device = jd.get_device(str(request.args['device']))
|
||||
else:
|
||||
return "Error: No device provided."
|
||||
|
||||
links = device.linkgrabber.query_links()
|
||||
|
||||
id = get_id(links, uuid)
|
||||
id = str(id).split()
|
||||
uuid = str(uuid).split()
|
||||
|
||||
device.linkgrabber.move_to_downloadlist(id, uuid)
|
||||
device.linkgrabber.clear_list()
|
||||
return ("Tue")
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0', port=5000)
|
Reference in New Issue
Block a user