-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapp.py
66 lines (50 loc) · 1.67 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
import eel
from src.login.login import check_login
from src.stats import leetcode, leaderboards
from src.askgemini import askgemini, geministats
import sqlite3
eel.init('web')
@eel.expose
def login(username, password):
myconn = sqlite3.connect('prosync.db')
cur = myconn.cursor()
r = cur.execute("SELECT username, password, leetcodeid FROM prosync WHERE username = ? AND password = ?", (username, password))
res = r.fetchone()
if res:
cur.execute(f"INSERT INTO signed_in VALUES('{res[2]}')")
myconn.commit()
return True
else:
return False
@eel.expose
def signup(username, password, leetcodeid):
myconn = sqlite3.connect('prosync.db')
cur = myconn.cursor()
r = cur.execute("SELECT username FROM prosync WHERE username = ?", (username,))
if r.fetchone():
return False
else:
cur.execute("INSERT INTO prosync (username, password, leetcodeid) VALUES (?, ?, ?)", (username, password, leetcodeid))
myconn.commit()
return True
@eel.expose
def redirect_to_home():
eel.show('home.html')
@eel.expose
def askgemini_form(question):
return askgemini.processQuestion(question)
@eel.expose
def geministats(easy, medium, hard, acceptance, submission):
return geministats.processstats(easy, medium, hard, acceptance, submission)
@eel.expose
def retrieve_data():
myconn = sqlite3.connect('prosync.db')
cur = myconn.cursor()
cur.execute("SELECT * FROM signed_in")
signed_in = cur.fetchone()
return leetcode.Leetcode(signed_in[0])
@eel.expose
def retrieve_leaderboard():
return leaderboards.sorting()
if __name__ == "__main__":
eel.start('signin.html', size=(800, 700))