-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmain.py
151 lines (120 loc) · 3.02 KB
/
main.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
from typing import Text
from flask import Flask, jsonify, request
from flask_cors import CORS
from api import Main
app = Flask(__name__)
main = Main()
# cors
CORS(app)
@app.get("/")
def read_root():
"""
Get home page
params: page (optional) - int
return: JSON
"""
page = request.args.get("page")
try:
if page and not page.isdigit():
return jsonify(message="error"), 400
return main.get_home(int(page) if page else 1), 200
except Exception as err:
return jsonify(message=err), 500
@app.get("/search/<query>")
def search(query):
"""
Search donghua by query
params: query - string (required)
return: JSON
"""
if not query:
return jsonify(message="missing query parameter"), 400
return main.search(query), 200
# slug from url
@app.get("/info/<slug>")
def get_info(slug: Text):
"""
Show detail of donghua
params: slug name of donghua - string (required)
return: JSON
"""
try:
data = main.get_info(slug)
return data, 200
except Exception as err:
return jsonify(message=err), 500
@app.get("/genres")
def list_genres():
"""
Show list of genres
return: JSON
"""
try:
data = main.genres()
return data, 200
except Exception as err:
return jsonify(message=err), 500
@app.get("/genre/<slug>")
def get_genres(slug):
"""
Show list of donghua by genre
params: slug genre - string (required)
query: page (optional) - int
return: JSON
"""
try:
page = request.args.get("page")
if page and not page.isdigit():
return jsonify(message="error"), 400
data = main.genres(slug, int(page) if page else 1)
return jsonify(data), 200
except Exception as err:
print(err)
return jsonify(message=err), 500
@app.get("/episode/<slug>")
def get_episode(slug: Text):
"""
Get detail of episode
params: slug episode - string (required)
return: JSON
"""
try:
data = main.get_episode(slug)
if data:
return jsonify(data), 200
return jsonify(message="not found"), 404
except Exception as err:
return jsonify(message=err), 500
# get episode from url
@app.get("/video-source/<slug>")
def get_video(slug: Text):
"""
Show list of video source
params: slug - string (required)
return: JSON
"""
try:
print(slug)
data = main.get_video_source(slug)
if data:
return jsonify(data), 200
return jsonify(message="not found"), 404
except Exception as err:
print(err)
return jsonify(message=err), 500
@app.get("/anime")
def anime():
"""
Show list of anime
return: JSON
"""
try:
req = request.args
todict = dict(req)
data = main.anime(params=todict)
return jsonify(data), 200
except Exception as err:
print(err)
return jsonify(message=err), 500
if __name__ == "__main__":
app.run(debug=True)