def alarmEuroYukselme(): esik = Doviz.txt_euro_yukselme.get() komut = f"UPDATE tb_alarm SET esik={esik} WHERE doviztipi='euro' AND alarmtipi='yukselme';" VeriTabani.Kaydet(komut) VeriTabani.Kaydet( "UPDATE tb_alarm SET eposta='HAYIR' WHERE doviztipi = 'euro' AND alarmtipi = 'yukselme';" )
def tekrar(cls): komut = "SELECT zaman,kur FROM tb_altin ORDER BY (zaman) DESC LIMIT 14;" # Son 7 kaydı getir. altinKur = VeriTabani.KurGetir(komut) x = [row[0] for row in altinKur] xf = cls.zamanFormat(x) y = [row[1] for row in altinKur] Grafik.Ciz(cls.tab_altin, xf, y, "Altın Kuru") komut = "SELECT zaman,kur FROM tb_dolar ORDER BY (zaman) DESC LIMIT 14;" # Son 7 kaydı getir. dolarKur = VeriTabani.KurGetir(komut) x = [row[0] for row in dolarKur] xf = cls.zamanFormat(x) y = [row[1] for row in dolarKur] Grafik.Ciz(cls.tab_dolar, xf, y, "Dolar Kuru") komut = "SELECT zaman,kur FROM tb_euro ORDER BY (zaman) DESC LIMIT 14;" # Son 7 kaydı getir. euroKur = VeriTabani.KurGetir(komut) x = [row[0] for row in euroKur] xf = cls.zamanFormat(x) y = [row[1] for row in euroKur] Grafik.Ciz(cls.tab_euro, xf, y, "Euro Kuru") altin = threading.Thread(target=Kur.Getir, args=["altin"]) dolar = threading.Thread(target=Kur.Getir, args=["dolar"]) euro = threading.Thread(target=Kur.Getir, args=["euro"]) altin.start() dolar.start() euro.start() cls.pencere.after( 30000, cls.tekrar ) #pencere açıldıktan sonra 30 saniyede bir tekrar fonskiyonunu çalıştır.
def alarmDolarDusme(): esik = Doviz.txt_dolar_dusus.get() komut = f"UPDATE tb_alarm SET esik={esik} WHERE doviztipi='dolar' AND alarmtipi='dusme';" VeriTabani.Kaydet(komut) VeriTabani.Kaydet( "UPDATE tb_alarm SET eposta='HAYIR' WHERE doviztipi = 'dolar' AND alarmtipi = 'dusme';" )
def AlarmKontrol(doviztipi,komut): esikler = VeriTabani.AlarmGetir() altinAlt = esikler[0][0] altinUst = esikler[1][0] dolarAlt = esikler[2][0] dolarUst = esikler[3][0] euroAlt = esikler[4][0] euroUst = esikler[5][0] altinAltEposta = esikler[0][1] altinUstEposta = esikler[1][1] dolarAltEposta = esikler[2][1] dolarUstEposta = esikler[3][1] euroAltEposta = esikler[4][1] euroUstEposta = esikler[5][1] deger = VeriTabani.EsikGetir(komut) adsoyad,eposta = VeriTabani.KullaniciGetir("SELECT adsoyad,eposta FROM tb_kullanici;") if(doviztipi=="altin"): if((deger<=altinAlt) and (altinAlt != 0.0) and altinAltEposta=='HAYIR'): Eposta.Gonder(eposta,"altin","dusme",altinAlt,deger) VeriTabani.Kaydet("UPDATE tb_alarm SET eposta='EVET' WHERE doviztipi = 'altin' AND alarmtipi = 'dusme';") print("Altın alt değerde") if((deger>=altinUst) and (altinUst != 0.0)and altinUstEposta=='HAYIR'): Eposta.Gonder(eposta, "altin", "yukselme", altinUst, deger) VeriTabani.Kaydet("UPDATE tb_alarm SET eposta='EVET' WHERE doviztipi = 'altin' AND alarmtipi = 'yukselme';") print("Altın üst değerde") elif(doviztipi.lower()=="dolar"): if(deger<=dolarAlt and dolarAlt != 0.0 and dolarAltEposta=='HAYIR'): Eposta.Gonder(eposta, "dolar", "dusme", dolarAlt, deger) VeriTabani.Kaydet("UPDATE tb_alarm SET eposta='EVET' WHERE doviztipi = 'dolar' AND alarmtipi = 'dusme';") print("Dolar alt değerde") if(deger>=dolarUst and dolarUst != 0.0 and dolarUstEposta=='HAYIR'): Eposta.Gonder(eposta, "dolar", "yukselme", dolarUst, deger) VeriTabani.Kaydet("UPDATE tb_alarm SET eposta='EVET' WHERE doviztipi = 'dolar' AND alarmtipi = 'yukselme';") print("Dolar üst değerde") elif(doviztipi.lower()=="euro"): if(deger<=euroAlt and euroAlt != 0.0 and euroAltEposta=='HAYIR'): Eposta.Gonder(eposta, "euro", "dusme", euroAlt, deger) VeriTabani.Kaydet("UPDATE tb_alarm SET eposta='EVET' WHERE doviztipi = 'euro' AND alarmtipi = 'dusme';") print("Euro alt değerde") if(deger>=euroUst and euroUst !=0.0 and euroUstEposta=='HAYIR'): Eposta.Gonder(eposta, "euro", "yukselme", euroUst, deger) VeriTabani.Kaydet("UPDATE tb_alarm SET eposta='EVET' WHERE doviztipi = 'euro' AND alarmtipi = 'yukselme';") print("Euro üst değerde")
def tekrar(cls): altin = threading.Thread(target=Kur.Getir, args=["altin"]) dolar = threading.Thread(target=Kur.Getir, args=["dolar"]) euro = threading.Thread(target=Kur.Getir, args=["euro"]) altin.start() dolar.start() euro.start() altin.join() dolar.join() euro.join() Kur.AlarmKontrol( "altin", "SELECT kur FROM tb_altin ORDER BY (zaman) DESC LIMIT 1;") Kur.AlarmKontrol( "dolar", "SELECT kur FROM tb_dolar ORDER BY (zaman) DESC LIMIT 1;") Kur.AlarmKontrol( "euro", "SELECT kur FROM tb_euro ORDER BY (zaman) DESC LIMIT 1;") komut = "SELECT zaman,kur FROM tb_altin ORDER BY (zaman) DESC LIMIT 120;" # Son 60 kaydı getir. #komut = "SELECT zaman,kur FROM tb_altin ORDER BY (zaman) DESC;" altinKur = VeriTabani.KurGetir(komut) x = [row[0] for row in altinKur] xf = cls.zamanFormat(x) y = [row[1] for row in altinKur] cls.lbl_altin_kur["text"] = str( VeriTabani.EsikGetir( "SELECT kur FROM tb_altin ORDER BY (zaman) DESC LIMIT 1;")) Grafik.Ciz(cls.tab_altin, xf, y, "Altın Kuru") komut = "SELECT zaman,kur FROM tb_dolar ORDER BY (zaman) DESC LIMIT 14;" # Son 14 kaydı getir. dolarKur = VeriTabani.KurGetir(komut) x = [row[0] for row in dolarKur] xf = cls.zamanFormat(x) y = [row[1] for row in dolarKur] cls.lbl_dolar_kur["text"] = str( VeriTabani.EsikGetir( "SELECT kur FROM tb_dolar ORDER BY (zaman) DESC LIMIT 1;")) Grafik.Ciz(cls.tab_dolar, xf, y, "Dolar Kuru") komut = "SELECT zaman,kur FROM tb_euro ORDER BY (zaman) DESC LIMIT 14;" # Son 14 kaydı getir. euroKur = VeriTabani.KurGetir(komut) x = [row[0] for row in euroKur] xf = cls.zamanFormat(x) y = [row[1] for row in euroKur] cls.lbl_euro_kur["text"] = str( VeriTabani.EsikGetir( "SELECT kur FROM tb_euro ORDER BY (zaman) DESC LIMIT 1;")) Grafik.Ciz(cls.tab_euro, xf, y, "Euro Kuru") cls.pencere.after( 180000, cls.tekrar ) #pencere açıldıktan sonra 180saniyede bir tekrar fonskiyonunu çalıştır.
def Getir(doviztipi): driver_path = "C:\\Proje\\chromedriver.exe" opsiyonlar = Options() opsiyonlar.add_argument("--headless") #Veri çekme arka planda gerçekleşir. browser = webdriver.Chrome(executable_path=driver_path,options=opsiyonlar) browser.get("https://www.haberturk.com/") if(doviztipi.lower()=="altin"): icerik = browser.find_element_by_css_selector("a#altin-tl-gr span:nth-child(2)").text if (doviztipi.lower() == "dolar"): icerik = browser.find_element_by_css_selector("a#dolar span:nth-child(2)").text if (doviztipi.lower() == "euro"): icerik = browser.find_element_by_css_selector("a#euro span:nth-child(2)").text #açıklama: html kaynak dosyasında; id'si euro olan a elementinin altındaki 2. span'ın verisini al. deger = float(icerik.replace(",",".")) # float'a dönüştürebilmek için. , ile . yı değiştirdik. tablo = "tb_" + str(doviztipi) zaman = datetime.now().strftime("%d.%m.%Y %H:%M:%S") print(zaman) komut = f"INSERT INTO {tablo} (zaman,kur) VALUES('{zaman}',{deger});" VeriTabani.Kaydet(komut)
import threading from tkinter import * from tkinter.ttk import * from Grafik import Grafik # Grafik.py'den Grafik sınıfını içeri aktardık.import from Kur import Kur from VeriTabani import VeriTabani from Kullanici import Kullanici from datetime import datetime komut = "SELECT zaman,kur FROM tb_altin ORDER BY (zaman) DESC LIMIT 1;" # Son 7 kaydı getir. altinKur = VeriTabani.KurGetir(komut) x = [row[0] for row in altinKur] y = [row[1] for row in altinKur] print(x) xd = [] for z in xd: print(z) print(type(z))
komut = "SELECT zaman,kur FROM tb_euro ORDER BY (zaman) DESC LIMIT 14;" # Son 14 kaydı getir. euroKur = VeriTabani.KurGetir(komut) x = [row[0] for row in euroKur] xf = cls.zamanFormat(x) y = [row[1] for row in euroKur] cls.lbl_euro_kur["text"] = str( VeriTabani.EsikGetir( "SELECT kur FROM tb_euro ORDER BY (zaman) DESC LIMIT 1;")) Grafik.Ciz(cls.tab_euro, xf, y, "Euro Kuru") cls.pencere.after( 180000, cls.tekrar ) #pencere açıldıktan sonra 180saniyede bir tekrar fonskiyonunu çalıştır. altinalt = VeriTabani.EsikGetir( "SELECT esik FROM tb_alarm WHERE doviztipi='altin' AND alarmtipi='dusme';") Doviz.txt_altin_dusus.insert(0, altinalt) altinust = VeriTabani.EsikGetir( "SELECT esik FROM tb_alarm WHERE doviztipi='altin' AND alarmtipi='yukselme';" ) Doviz.txt_altin_yukselme.insert(0, altinust) dolaralt = VeriTabani.EsikGetir( "SELECT esik FROM tb_alarm WHERE doviztipi='dolar' AND alarmtipi='dusme';") Doviz.txt_dolar_dusus.insert(0, dolaralt) dolarust = VeriTabani.EsikGetir( "SELECT esik FROM tb_alarm WHERE doviztipi='dolar' AND alarmtipi='yukselme';" ) Doviz.txt_dolar_yukselme.insert(0, dolarust) euroalt = VeriTabani.EsikGetir(
def Kaydet(self): komut = f"UPDATE tb_kullanici SET adsoyad='{self.adsoyad}', eposta='{self.eposta}';" VeriTabani.Kaydet(komut)