]> gitweb.morketsmerke.org Git - ML.git/commitdiff
Rozpisanie i przetestowanie funkcji bazy danych. Do przetestowania zostało załadowani...
authorxf0r3m <jakubstasinski@protonmail.com>
Thu, 23 May 2024 12:37:29 +0000 (14:37 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Thu, 23 May 2024 12:37:29 +0000 (14:37 +0200)
db.py
pa_com.py
test_db.py [new file with mode: 0755]
window.py

diff --git a/db.py b/db.py
index 73ac50b5df1b6e702c008c629ebef3d8a8c52a08..3b3ad987dfa01dd56764de19678d6e2a55dcd5ab 100755 (executable)
--- 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()
index bc4ef9267b37590f27824bb58a2341c31c08fe01..41927245ee84643ccfdfcf071f841f7b6657686e 100755 (executable)
--- 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 (executable)
index 0000000..34dbb59
--- /dev/null
@@ -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()
+
index 89179b2620005dad10ce5b4bda2d980928eb6bfe..f0bac56e2ee950186b0f1395db8feff14fe0ed07 100755 (executable)
--- 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)