-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFirebaseQuery.py
86 lines (69 loc) · 2.93 KB
/
FirebaseQuery.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
from config import cadeiras_ref
from Cadeiras import Cadeiras
import unidecode
def cadeiras_query(curso, ano, semestre):
# Consultar dados onde "ano acadêmico", "semestre" e "curso" correspondem aos valores desejados
snapshot = (cadeiras_ref
.order_by_child('ano')
.equal_to(ano)
.get())
# Filtrar os dados pelo semestre e curso e criar objetos da classe Cadeiras
nomesq = []
for key, val in snapshot.items():
if val.get('semestre') == semestre and val.get('curso') == curso:
cadeira_obj = Cadeiras(nome=val.get('nome'),
sigla=key,
ano=val.get('ano'),
curso=val.get('curso'),
semestre=val.get('semestre'),
link=val.get('link'))
nomesq.append(cadeira_obj)
return nomesq
def siglas_query(curso, cadeira):
# Consultar dados onde "curso", "cadeira" e "semestre" correspondem aos valores desejados
snapshot = (cadeiras_ref
.order_by_child('curso')
.equal_to(curso)
.get())
# Filtrar os dados pela cadeira e semestre e criar objetos da classe Cadeiras
cadeiras_encontradas = []
for key, val in snapshot.items():
name = unidecode.unidecode(val.get('nome').lower())
cadeira = unidecode.unidecode(cadeira.lower())
print(f'Compare: {cadeira} in {name} is {cadeira in name}')
if cadeira in name:
cadeira_obj = Cadeiras(nome=val.get('nome'),
sigla=key,
ano=val.get('ano'),
curso=val.get('curso'),
semestre=val.get('semestre'),
link=val.get('link'))
cadeiras_encontradas.append(cadeira_obj)
# Criar uma lista de siglas a partir dos objetos Cadeiras
print(f'Quantidade: {len(cadeiras_encontradas)}')
siglas_encontradas = []
nome_das_cadeiras =[]
for i in cadeiras_encontradas:
siglas_encontradas.append(i.sigla)
nome_das_cadeiras.append(i.nome)
print(f'Quantidade: {len(nome_das_cadeiras)}')
print(f'Quantidade: {len(siglas_encontradas)}')
ans = ''
n = len(siglas_encontradas)
if len(siglas_encontradas) == 0:
ans = 'Nenhum resultado encontrado 😞'
else:
for i in range(0, n):
ans = ans + nome_das_cadeiras[i] + ': ' + siglas_encontradas[i] + '\n'
return ans
def link_query(key):
link = 'none'
# Consultar dados onde a chave corresponde à chave fornecida
snapshot = (cadeiras_ref
.order_by_key()
.equal_to(key)
.get())
# Se a chave estiver no snapshot, obtenha o link correspondente
if snapshot:
link = snapshot[key].get('link')
return link