-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
55 lines (39 loc) · 1.23 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
from datetime import date
from dotenv import load_dotenv
from flask import Flask, abort, jsonify, make_response, request, send_file
from flask.json import JSONEncoder
from src import Sourcerer
load_dotenv()
class CustomJSONEncoder(JSONEncoder):
def default(self, obj):
try:
if isinstance(obj, date):
return obj.isoformat()
iterable = iter(obj)
except TypeError:
pass
else:
return list(iterable)
return JSONEncoder.default(self, obj)
app = Flask(__name__)
app.json_encoder = CustomJSONEncoder
@app.route('/')
def index():
return make_response("OK", 200)
@app.errorhandler(404)
def not_found(error):
return make_response(jsonify({'error': 'Not found'}), 404)
@app.route('/fetch/<string:username>')
def getInfo(username):
if not username:
return make_response("Missing username", 422)
try:
scrapper = Sourcerer(username)
scrapper.launchBrowser()
scrapper.fillInfo()
scrapper.browser.close()
return scrapper.data
except:
return make_response("Something went wrong ¯\_(ツ)_/¯", 418)
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=3000)