-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
69 lines (50 loc) · 1.48 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
import json
import time
from flask import Flask, render_template, request
from scraper import fetch_pr, fetch_summary, kantipur_election
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html")
@app.route("/area")
def area():
name = request.args.get("name")
url = f"https://election.ekantipur.com/{name}?lng=eng"
data = kantipur_election(url)
return json.dumps(data)
@app.route("/url/")
def url():
url = request.args.get("url")
print("Got url", url)
data = kantipur_election(url)
return json.dumps(data)
@app.route("/bulk")
def bulk():
list_ = request.args.get("list")
areas = list_.split(",")
all_data = {}
for area in areas:
url = f"https://election.ekantipur.com/{area}?lng=eng"
print("Requesting", url)
data = kantipur_election(url)
_, district = parse_area(area)
all_data[district] = data
time.sleep(1)
return json.dumps(all_data)
def parse_area(area):
area_parts = area.split("-")
print(":: Area parsing", area_parts)
state_no, district = area_parts[1], area_parts[-1]
return state_no, district
@app.route("/summary")
def summary():
url = "https://election.ekantipur.com?lng=eng"
data = fetch_summary(url)
return json.dumps(data)
@app.route("/pr")
def pr():
url = "https://election.ekantipur.com/samanupatik?lng=eng"
data = fetch_pr(url)
return json.dumps(data)
if __name__ == "__main__":
app.run(port=8090)