-
Notifications
You must be signed in to change notification settings - Fork 0
/
attendance.py
118 lines (79 loc) · 3.47 KB
/
attendance.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
from config import appConfig
from src.structures.Browser import Browser
from src.structures.Login import Login
from src.structures.Frequency import Frequency
from src.app.environmentApp import environmentApp
import os
import time
from selenium.webdriver.common.by import By
from dotenv import load_dotenv
load_dotenv()
get_student_email = os.getenv("STUDENT_EMAIL")
get_student_password = os.getenv("STUDENT_PASSWORD")
if appConfig().is_development:
environmentApp(get_student_email, get_student_password, os.getenv("FREQUENCY_JSON_FILE")).login_senac()
""" print("Iniciando o programa no modo de desenvolvimento.")
time.sleep(3)
frequency_json_file = os.getenv("FREQUENCY_JSON_FILE")
# Procurar pelo arquivo JSON
if os.path.exists(frequency_json_file):
# Abrir o arquivo JSON
with open(frequency_json_file, "r", encoding="utf-8") as f:
# Ler o arquivo JSON
json = f.read()
# Fechar o arquivo JSON
f.close()
print("Lendo o arquivo JSON...")
time.sleep(3)
frequency = Frequency()
frequency.format_json()
else:
print("O arquivo JSON não existe. É necessário que você inicie o programa em modo de produção para que ele seja criado e depois você poderá iniciar o programa em modo de desenvolvimento.")
quit() """
elif appConfig().is_production:
print("Iniciando o programa no modo de produção.")
time.sleep(3)
browser = Browser("chrome")
login = Login(browser, get_student_email, get_student_password)
login.login()
time.sleep(3)
try:
is_logged_in = login.is_logged_in()
if is_logged_in:
attendance = login.write_attendance_file(is_logged_in)
if attendance == True:
print("Logado com sucesso.")
try:
if browser.get_current_url().startswith("https://www.sp.senac.br/login-unico/login") or browser.get_current_url().startswith("https://www.sp.senac.br/area-exclusiva/"):
if browser.driver.find_element(By.CLASS_NAME, value="ssp-erro__title").text == "Humpf!":
print(
"O servidor está bloqueando o acesso. Tente novamente daqui a alguns minutos!")
browser.driver.quit()
else:
print("Não foi barrado pelo servidor.")
except:
print("Não está na página de login e nem na página de área exclusiva.")
time.sleep(3)
frequency = Frequency()
print("Acessando página de frequência.")
time.sleep(3)
browser.get(frequency.get_frequency_page())
print("Entrou na página de frequência.")
time.sleep(3)
frequency.get_activities_page()
print("Acessando página de atividades.")
time.sleep(3)
frequency.access_activity()
print("Acessando atividade.")
formatted_json = frequency.format_json()
if formatted_json:
print("Passou da função de formatar o JSON.")
time.sleep(3)
dataframe = frequency.convert_json_to_dataframe()
if dataframe == True:
print("Tabela criada com sucesso.")
else:
print("Falha ao logar.")
browser.driver.quit()
except Exception as e:
print(f"Erro ao fazer login: {e}")