Files
prog-team-proj/ev2.py

158 lines
3.7 KiB
Python
Raw Normal View History

import logging
2026-01-04 18:51:36 -01:00
import os
from enum import Enum
2026-01-04 18:51:36 -01:00
from utilsv2 import mongo, stats
from utilsv2.log import logger
from utilsv2.parser import parse
2026-01-04 18:51:36 -01:00
from utilsv2.utils import toDateTime, toFloat, toInt
2026-01-04 18:51:36 -01:00
OS = os.name
2026-01-04 18:51:36 -01:00
MAIN_MENU = {
"1": "Adicionar novos dados",
"2": "Aplicar filtros",
"3": "Estatísticas",
"4": "Limpar filtros",
"q": "Sair",
}
2026-01-04 18:51:36 -01:00
FILTER_MENU = {
"1": "Data início",
"2": "Magnitudes",
"3": "Profundidade",
"4": "GAP",
"6": "Limpar filtros",
"7": "Mostrar filtros",
"q": "Voltar ao menu principal",
}
2026-01-04 18:51:36 -01:00
def clear_screen():
os.system("cls" if OS == "nt" else "clear")
def print_menu(menu: dict[str, str]):
clear_screen()
for k, v in menu.items():
print(f"[{k}]: {v}")
def filter_menu(old_fiters):
filters = old_fiters
while True:
print_menu(FILTER_MENU)
usrIn = input()
match usrIn:
# datas
case "1":
clear_screen()
print(
"Formato da data: YYYY-MM-DD\nInserir datas de corte, separadas por uma vírgula(,)"
)
aux = input()
d1, d2 = aux.split(",", maxsplit=1)
d1 = toDateTime(d1)
d2 = toDateTime(d2)
filters["DateTime"] = {}
if d1 != -1:
filters["DateTime"]["$gte"] = d1
if d2 != -1:
filters["DateTime"]["$lte"] = d2
# magnitudes
case "2":
clear_screen()
print("Inserir magnitudes de corte, separadas por uma vírgula(,)")
aux = input()
d1, d2 = aux.split(",", maxsplit=1)
d1 = toFloat(d1)
d2 = toFloat(d2)
filters["Magnitudes.L.Magnitude"] = {}
if d1 != -1:
filters["Magnitudes.L.Magnitude"]["$gte"] = d1
if d2 != -1:
filters["Magnitudes.L.Magnitude"]["$lte"] = d2
case "2":
clear_screen()
print("Inserir profundidades de corte, separadas por uma vírgula(,)")
aux = input()
d1, d2 = aux.split(",", maxsplit=1)
d1 = toFloat(d1)
d2 = toFloat(d2)
filters["Depth"] = {}
if d1 != -1:
filters["Depth"]["$gte"] = d1
if d2 != -1:
filters["Depth"]["$lte"] = d2
case "4":
clear_screen()
print("Inserir GAP")
aux = input()
gap = toInt(aux)
if aux:
filters["GAP"]["$lte"] = gap
case "6":
fliters = {}
case "7":
print(filters)
case "q":
return filters
def graph_menu():
pass
def main():
2025-12-28 16:22:42 -01:00
cli = mongo.connect("mongodb://localhost:27017")
2026-01-04 18:51:36 -01:00
filters = {}
while True:
print_menu(MAIN_MENU)
usrIn = input()
2025-12-28 16:22:42 -01:00
2026-01-04 18:51:36 -01:00
match usrIn:
case "1":
raise NotImplementedError
case "2":
filters = filter_menu(filters)
case "3":
print(filters)
v = mongo.filter_query(cli, "quakes", filters, "test")
2026-01-04 19:26:19 -01:00
stats.stats(v)
2026-01-04 18:51:36 -01:00
input()
case "q":
break
2025-12-28 16:22:42 -01:00
mongo.close(cli)
2026-01-04 18:51:36 -01:00
if __name__ == "__main__":
logger = logging.getLogger(__name__)
# initialization
logger.info("Started")
main()
logger.info("Ended")