-
Notifications
You must be signed in to change notification settings - Fork 0
/
process_main.py
86 lines (69 loc) · 4.18 KB
/
process_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
import PySimpleGUI as sg
from db import dbms
from sheets_api_v3 import googleAPI
from dataBuilder_main import dataHandler
from dataBuilder_json import jsonHandler
myDb = dbms()
def build_Data(values, log):
myDate = values["dateToAdd"]
loginData = myDb.getFromSettings("type", "google")
sheet = myDb.getFromSettings("name", values["subject"])
if(len(myDb.getFromSettings("type", "subject")) <= 0):
log.write("Operation stopped: An error occured", textColor="red")
sg.Popup('No Class/Subject added, exiting.', keep_on_top=True)
exit()
compiledData = {
"date": values["dateToAdd"],
"credentials": {
"username" : loginData[0][2] if len(loginData) > 0 else "not_found_in_db",
"password" : loginData[1][2] if len(loginData) > 0 else "not_found_in_db"
},
"sheet_id": sheet[0][2] if len(sheet) > 0 else "not_found_in_db",
"method": "I" if values["I"] else ("M" if values["M"] else ("H" if values["H"] else "U")),
"whatToDo": "remote" if values["uploadData"] else "local",
"takeSS": "Y" if values["-SS-"] else "N",
"meetLink": values["meetLink"],
"folder": values["-FOLDER-"]
}
#log.write("------------------------------------------------------------------------------ Config -------------------------------------------------------------------------------")
#log.write("Date: " + compiledData["date"])
#log.write("Subject: " + values["subject"])
#log.write("Sheet ID: " + compiledData["sheet_id"])
#log.write("Method: " + compiledData["method"])
#log.write("Save at : " + compiledData["whatToDo"])
#log.write("Take Screenshot? " + compiledData["takeSS"])
#log.write("Folder: " + compiledData["folder"])
#log.write("-----------------------------------------------------------------------------------------------------------------------------------------------------------------------")
return compiledData
def main(values, log):
inputData = build_Data(values, log)
if(inputData["method"] != "U"):
data = dataHandler(inputData["credentials"]["username"], inputData["credentials"]["password"], log)
meetData, tesseractData = data.dataCollector(inputData["takeSS"], inputData["method"], inputData["meetLink"], inputData["folder"])
prepdData, discrepancies = data.getPresentAbsentData(inputData["method"], tesseractData, meetData)
prepdData.insert(0, [inputData["date"]])
else:
meetData, tesseractData, prepdData, discrepancies = jsonHandler("data\\ready_to_upload\\").getData(inputData["date"], inputData["sheet_id"])
if(meetData != None):
log.write("Re-check the following roll numbers for attendance: ", textColor="blue")
log.write(discrepancies, textColor="blue")
if(inputData["whatToDo"] == "remote"):
API = googleAPI(inputData["sheet_id"], log)
API.connectToGoogle()
emptyColumn = API.getCoulumnToAddTo()
prepdData.extend([
[""],
['=CONCATENATE(COUNTIF('+emptyColumn+'2:'+emptyColumn+'117, "Present"), "/116")'],
['=CONCATENATE(COUNTIF('+emptyColumn+'2:'+emptyColumn+'117, "Absent"), "/116")']
])
log.write("Uploading data")
cellsAffected = API.updateSheet("Sheet1!" + emptyColumn + "1:" + emptyColumn + str(len(prepdData)), prepdData)
log.write(str(cellsAffected) + " cells updated")
jsonHandler('data\\logs\\').prepLocalSave(inputData, values, meetData, tesseractData, prepdData, discrepancies)
elif(inputData["whatToDo"] == "local"):
log.write("Saving Data Locally")
jsonHandler('data\\ready_to_upload\\').prepLocalSave(inputData, values, meetData, tesseractData, prepdData, discrepancies)
log.write("Everything Done", textColor="green")
else:
log.write("No saved data found for: " + inputData["date"] + ", Subject: " + values["subject"], textColor="white", backgroundColor="red")
#log.write("---------------------------------------------------------------------------------------------------------------------------------------")