-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapp.py
82 lines (67 loc) · 2.49 KB
/
app.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
80
81
82
from flask import Flask, redirect, url_for, request, render_template
from requests import post
app = Flask(__name__)
def grabDownloadUrl(url): # Grab download link from lovetik api
apiUrl = "https://lovetik.com/api/ajax/search"
req = post(apiUrl,
data={
"query": url
},
headers={
"Origin": 'https://lovetik.com/',
"Referer": 'https://lovetik.com/',
})
response = req.json()
if "links" not in response:
print(response)
return [None, 500, response["mess"]]
return [response["links"][0]["a"], 200]
@app.route('/', methods=['GET', 'POST'])
def returnDL():
if request.method == "GET":
return render_template('homepage.html')
else:
response = dict()
response["code"] = 500
response["error"] = "API requests should be made to /api endpoint."
response["message"] = "API Endpoint tutorial at t774.herokuapp.com/api."
return response
@app.route('/api', methods=["GET", "POST"])
def apiPage():
if request.method == "GET":
return redirect("/api/docs")
else:
post_data = request.get_json()
response = dict()
responseCode = None
if "url" not in post_data:
response["error"] = "No URL Detected."
else:
tiktok_url = post_data["url"]
downloadData = grabDownloadUrl(tiktok_url)
download_url = downloadData[0]
responseCode = downloadData[1]
if download_url is None:
response["message"] = "Problem with grabbing download link. Please check TikTok Link or try again."
response["error"] = downloadData[2]
else:
response["url"] = download_url
response["code"] = responseCode if responseCode is not None else 500
return response
@app.route('/api/docs')
def docs():
return render_template('docs.html')
@app.route('/error/<int:code>', methods=["GET"])
def error(code):
return render_template('error.jinja2', error_code=code)
@app.route('/', defaults={'upath': ''})
@app.route('/<path:u_path>', methods=["GET", "POST"])
def incorrectPath(u_path):
if request.method == "GET":
return redirect("/error/404")
elif request.method == "POST":
response = dict()
response["error"] = "Incorrect path."
response["message"] = "Please use the /api endpoint."
response["code"] = 500
return response