From 5e30c5b6d7f490bfdfffaa2cff615dc794534f8a Mon Sep 17 00:00:00 2001 From: xf0r3m Date: Thu, 23 May 2024 14:37:29 +0200 Subject: [PATCH] =?utf8?q?Rozpisanie=20i=20przetestowanie=20funkcji=20bazy?= =?utf8?q?=20danych.=20Do=20przetestowania=20zosta=C5=82o=20za=C5=82adowan?= =?utf8?q?ie=20danych=20z=20PA.=20Dostosowanie=20funkcji=20przetwarzaj?= =?utf8?q?=C4=85cej=20dane=20z=20PA=20do=20za=C5=82adowania=20danych=20do?= =?utf8?q?=20bazy.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- db.py | 78 +++++++++++++++++++++++++++++++++++++++++++----------- pa_com.py | 59 +++++++++++++++++++++++++---------------- test_db.py | 12 +++++++++ window.py | 7 +++++ 4 files changed, 117 insertions(+), 39 deletions(-) create mode 100755 test_db.py diff --git a/db.py b/db.py index 73ac50b..3b3ad98 100755 --- a/db.py +++ b/db.py @@ -1,20 +1,66 @@ #!/usr/bin/env python3 -from tkinter import * -from tkinter import ttk +import sqlite3, re + +def isDatabaseExist(): + try: + f = open('ml-logs.db') + except FileNotFoundError: + return False + f.close() + return True def dbNotFound(): - - dbnf = Tk() - dbnf.title('Mike Lima') - icon = PhotoImage(file="ml-windowicon.png") - dbnf.call('wm', 'iconphoto', dbnf._w, icon) - dbnf.geometry('200x150') - msg = ttk.Label(dbnf, text="Nie znaleziono pliku bazy danych. Zostanie on utworzony.") - msg.pack() - dbnf.mainloop() - -try: - open('ml-logs.db') -except FileNotFoundError: - dbNotFound() + con = sqlite3.connect("ml-logs.db") + cur = con.cursor() + #lat = latitude, log = longitute + cur.execute("CREATE TABLE logger(sign,name,lat,lon)") + cur.execute("CREATE TABLE pacom(sign,name,lat,lon)") + #rst = raport, dt=czas/data, eq=PMR/CB, ch=2/12(PMR),11/13(CB) + cur.execute("CREATE TABLE logs(sign,name,rst,dt,eq,ch)") + con.close() + +def loadDataFromPAcom(pacomList): + con = sqlite3.connect("ml-logs.db") + cur = con.cursor() + cur.executemany("INSERT INTO pacom VALUES(?, ?, ?)", pacomList) + con.commit() + con.close() + +def checkLoggerData(loggerData, ldType): + con = sqlite3.connect("ml-logs.db") + cur = con.cursor() + if ldType: + res = cur.execute(f"SELECT * FROM logger WHERE sign = {loggerData}") + else: + res = cur.execute(f"SELECT * FROM logger WHERE name = '{loggerData}'") + result = res.fetchone() + print(result) + con.close() + +def isSignOrName(phrase): + prog = re.compile('^\d*$') + if not prog.match(phrase) == None: + return True + else: + return False + +def saveLoggerData(phrase): + con = sqlite3.connect('ml-logs.db') + cur = con.cursor() + if isSignOrName(phrase): + cur.execute(f"INSERT INTO logger VALUES ({phrase},'None',0.0,0.0)") + else: + cur.execute(f"INSERT INTO logger VALUES (0,'{phrase}',0.0,0.0)") + con.commit() + con.close() + +def updateLoggerData(phrase,sign,name,lat,lon): + con = sqlite3.connect('ml-logs.db') + cur = con.cursor() + if isSignOrName(phrase): + cur.execute(f"UPDATE logger SET sign = {sign}, name = '{name}', lat = {lat}, lon = {lon} WHERE sign = {phrase}") + else: + cur.execute(f"UPDATE logger SET sign = {sign}, name = '{name}', lat = {lat}, lon = {lon} WHERE name = '{phrase}'") + con.commit() + con.close() diff --git a/pa_com.py b/pa_com.py index bc4ef92..4192724 100755 --- a/pa_com.py +++ b/pa_com.py @@ -3,27 +3,40 @@ from bs4 import BeautifulSoup, Tag import requests -url="http://planawaryjny.com/znaki-wywolawcze" -response = requests.get(url) -soup = BeautifulSoup(response.content, "html.parser") -pa_comCSList=soup.find_all("tr"); +def getDataFromPAcom(paComList): + #paComList=[] + url="http://planawaryjny.com/znaki-wywolawcze" + response = requests.get(url) + soup = BeautifulSoup(response.content, "html.parser") + pa_comCSList=soup.find_all("tr"); -for line in soup.find_all("tr")[1:]: - #print(vars(line.next_element)) - lp=line.next_element.contents[0] - csElement=line.next_element.next_sibling - cs=csElement.contents[0] - nameElement=csElement.next_sibling - if nameElement.contents: - name=nameElement.contents[0] - else: - name="N_A" - mapLinkElement=nameElement.next_sibling - mapLink=mapLinkElement.contents[0] - if isinstance(mapLink, Tag): - mapLinkHref=mapLink.attrs['href'] - mapLinkHrefList=mapLinkHref.split('?') - gpsCords=mapLinkHrefList[1] - else: - gpsCords="N_A" - print(f"Znak: {cs}\t Nazwa: {name}\t GPS: {gpsCords}") + for line in soup.find_all("tr")[1:]: + #print(vars(line.next_element)) + lp=line.next_element.contents[0] + csElement=line.next_element.next_sibling + cs=csElement.contents[0][5:] + nameElement=csElement.next_sibling + if nameElement.contents: + name=nameElement.contents[0] + else: + name="N_A" + mapLinkElement=nameElement.next_sibling + mapLink=mapLinkElement.contents[0] + if isinstance(mapLink, Tag): + mapLinkHref=mapLink.attrs['href'] + mapLinkHrefList=mapLinkHref.split('?') + gpsCords=mapLinkHrefList[1] + gpsCordsList=gpsCords.split('=') + gpsLat=gpsCordsList[1].rstrip('&lon') + gpsLon=gpsCordsList[2] + else: + gpsCords="N_A" + gpsLat="N_A" + gpsLon="N_A" + paComList.append((cs, name, gpsLat, gpsLon)) + #print(f"Znak: {cs}\t Nazwa: {name}\t GPS: {gpsCords}") + #return paComList + +pCL=[] +getDataFromPAcom(pCL) +#print(pCL) diff --git a/test_db.py b/test_db.py new file mode 100755 index 0000000..34dbb59 --- /dev/null +++ b/test_db.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 + +import db + +p = '2137' + +if db.isDatabaseExist(): + db.checkLoggerData(p, db.isSignOrName(p)) + #db.updateLoggerData(p, 2137, 'JuanPabloSec', 50.24, 21.49) +else: + db.dbNotFound() + diff --git a/window.py b/window.py index 89179b2..f0bac56 100755 --- a/window.py +++ b/window.py @@ -4,6 +4,8 @@ from tkinter import * from tkinter import ttk +import re + """ def csCHandler(arg1): csCValue=csType.get() @@ -22,6 +24,11 @@ def csCHandler(arg1): def findInfoAbout(): phrase=csValue.get() PA_comFlag=checkPA_com.get() + prog = re.compile('^\d*$'); + if not prog.match(phrase) == None: + print("Sign"); + else: + print("Name"); print(phrase) print(PA_comFlag) -- 2.39.5