Fehler werden abgefangen, falls url nicht erreichbar

This commit is contained in:
hubobel 2017-06-29 10:50:33 +02:00
parent 063ad4f533
commit f64f5fd82f
2 changed files with 43 additions and 52 deletions

View file

@ -38,25 +38,42 @@ def kodiserie():
koditems["season"] = "" koditems["season"] = ""
koditems["episode"] = "" koditems["episode"] = ""
return return
def kodiurl(url):
try:
antwort = urllib.request.urlopen(url)
b = (antwort.read())
a = b.decode("utf-8")
return a
except:
return None
def ccuurl(url):
try:
urllib.request.urlopen(url)
except:
return
lauf = 1 lauf = 1
urlREF = "" urlREF = ""
while lauf < 2: while lauf < 2:
koditems = {"episode": "", "fanart": "", "file": "", "label": "", "season": "", "showtitle": "", "type": "", koditems = {"episode": "", "fanart": "", "file": "", "label": "", "season": "", "showtitle": "", "type": "",
"title": "", "id": "", "width": ""} "title": "", "id": "", "width": ""}
url = "http://10.0.1.102/jsonrpc?request=%7B%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Player.GetItem%22,%20%22params%22:%20%7B%20%22properties%22:%20%5B%22title%22,%20%22album%22,%20%22artist%22,%20%22season%22,%20%22episode%22,%20%22duration%22,%20%22showtitle%22,%20%22tvshowid%22,%20%22thumbnail%22,%20%22file%22,%20%22fanart%22,%20%22streamdetails%22%5D,%20%22playerid%22:%201%20%7D,%20%22id%22:%20%22VideoGetItem%22%7D" url = "http://10.0.1.102/jsonrpc?request=%7B%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Player.GetItem%22,%20%22params%22:%20%7B%20%22properties%22:%20%5B%22title%22,%20%22album%22,%20%22artist%22,%20%22season%22,%20%22episode%22,%20%22duration%22,%20%22showtitle%22,%20%22tvshowid%22,%20%22thumbnail%22,%20%22file%22,%20%22fanart%22,%20%22streamdetails%22%5D,%20%22playerid%22:%201%20%7D,%20%22id%22:%20%22VideoGetItem%22%7D"
antwort = urllib.request.urlopen(url) a=kodiurl(url) #Aufruf der url über eine Funktion um evtl Fehler abzufangen (Fehler = NONE)
b = (antwort.read()) if a != None:
a = b.decode("utf-8") for i in koditems:
for i in koditems: wert = kodi(i, a)
wert = kodi(i, a) koditems[i] = wert
koditems[i] = wert kodiserie()
kodiserie() string = koditems["showtitle"] + " " + koditems["label"] + " " + koditems["season"] + koditems["episode"]
string = koditems["showtitle"] + " " + koditems["label"] + " " + koditems["season"] + koditems["episode"] string = string.replace("ä", "ae").replace("Ä", "Ae").replace("ö", "oe").replace("Ö", "oe").replace("ü", "ue").replace("Ü", "Ue").replace(" ", "_")
string = string.replace("ä", "ae").replace("Ä", "Ae").replace("ö", "oe").replace("Ö", "oe").replace("ü", "ue").replace("Ü", "Ue").replace(" ", "_") if string == "__":
if string == "__": string = ""
string = "" url = 'http://' + ip + ':8181/loksoft.exe?ret=dom.GetObject("' + SV + '").State("' + string + '")'
url = 'http://' + ip + ':8181/loksoft.exe?ret=dom.GetObject("' + SV + '").State("' + string + '")' print(url)
if url != urlREF: if url != urlREF:
urllib.request.urlopen(url) ccuurl(url) #Aufruf der url über eine Funktion um evtl Fehler abzufangen (Fehler = NONE)
urlREF = url urlREF = url
else:
print("Fehler")
time.sleep(10) time.sleep(10)

46
Test.py
View file

@ -1,36 +1,29 @@
class VerwalteterGeldbetrag: class VerwalteterGeldbetrag:
def __int__(self, kontostand): def __init__(self, anfangsbetrag):
self.Betrag = kontostand self.Betrag = anfangsbetrag
def einzahlenMoeglich(self, betrag): def einzahlenMoeglich(self, betrag):
return True return True
def auszahlenMoeglich(self, betrag): def auszahlenMoeglich(self, betrag):
return True return True
def einzahlen(self, betrag): def einzahlen(self, betrag):
if betrag < 0 or not self.einzahlenMoeglich(betrag): if betrag < 0 or not self.einzahlenMoeglich(betrag):
return False return False
else: else:
self.Betrag += betrag self.Betrag += betrag
return True return True
def auszahlen(self, betrag): def auszahlen(self, betrag):
if betrag < 0 or not self.auszahlenMoeglich(betrag): if betrag < 0 or not self.auszahlenMoeglich(betrag):
return False return False
else: else:
self.Betrag -= betrag self.Betrag -= betrag
return True return True
def zeige(self): def zeige(self):
print("Betrag: {}".format(self.Betrag)) #print("Betrag: {:.2f}".format(self.Betrag))
class AllgemeinesKonto(VerwalteterGeldbetrag): class AllgemeinesKonto(VerwalteterGeldbetrag):
def __init__(self, kundendaten, kontostand): def __init__(self,kundendaten, kontostand):
super().__init__(kontostand) super().__init__(kontostand)
self.Kundendaten = kundendaten self.Kundendaten = kundendaten
def geldtransfer(self, ziel, betrag): def geldtransfer(self, ziel, betrag):
if self.auszahlenMoeglich(betrag) and ziel.einzahlenMoeglich(betrag): if self.auszahlenMoeglich(betrag) and ziel.einzahlenMoeglich(betrag):
self.auszahlen(betrag) self.auszahlen(betrag)
@ -38,70 +31,51 @@ class AllgemeinesKonto(VerwalteterGeldbetrag):
return True return True
else: else:
return False return False
def zeige(self): def zeige(self):
self.Kundendaten.zeige() self.Kundendaten.zeige()
VerwalteterGeldbetrag.zeige(self) VerwalteterGeldbetrag.zeige(self)
class AllgemeinesKontoMitTagesumsatz(AllgemeinesKonto): class AllgemeinesKontoMitTagesumsatz(AllgemeinesKonto):
def __init__(self, kundendaten, kontostand, max_tagesumsatz=1500): def __init__(self, kundendaten, kontostand, max_tagesumsatz=1500):
super().__init__(kundendaten, kontostand) super().__init__(kundendaten, kontostand)
self.MaxTagesumsatz = max_tagesumsatz self.MaxTagesumsatz = max_tagesumsatz
self.UmsatzHeute = 0.0 self.UmsatzHeute = 0.0
def transferMoeglich(self, betrag): def transferMoeglich(self, betrag):
return (self.UmsatzHeute + betrag <= self.MaxTagesumsatz) return (self.UmsatzHeute + betrag <= self.MaxTagesumsatz)
def auszahlenMoeglich(self, betrag): def auszahlenMoeglich(self, betrag):
return self.transferMoeglich(betrag) return self.transferMoeglich(betrag)
def einzahlenMoeglich(self, betrag): def einzahlenMoeglich(self, betrag):
return self.transferMoeglich(betrag) return self.transferMoeglich(betrag)
def einzahlen(self, betrag): def einzahlen(self, betrag):
if AllgemeinesKonto.einzahlen(self, betrag): if AllgemeinesKonto.einzahlen(self, betrag):
self.UmsatzHeute += betrag self.UmsatzHeute += betrag
return True return True
else: else:
return False return False
def auszahlen(self, betrag): def auszahlen(self, betrag):
if AllgemeinesKonto.auszahlen(self, betrag): if AllgemeinesKonto.auszahlen(self, betrag):
self.UmsatzHeute += betrag self.UmsatzHeute += betrag
return True return True
else: else:
return False return False
def zeige(self): def zeige(self):
AllgemeinesKonto.zeige(self) AllgemeinesKonto.zeige(self)
print("Heute schon {} von {} Euro umgesetzt".format(self.UmsatzHeute, self.MaxTagesumsatz)) #print("Heute schon {:.2f} von {:.2f} Euro umgesetzt".format(self.UmsatzHeute, self.MaxTagesumsatz))
class GirokontoKundendaten: class GirokontoKundendaten:
def __init__(self, inhaber, kontonummer): def __init__(self, inhaber, kontonummer):
self.Inhaber = inhaber self.Inhaber = inhaber
self.Kontonummer = kontonummer self.Kontonummer = kontonummer
def zeige(self): def zeige(self):
print("Inhaber:", self.Inhaber) print("Inhaber:", self.Inhaber)
print("Kontonummer:", self.Kontonummer) print("Kontonummer:", self.Kontonummer)
class GirokontoMitTagesumsatz(AllgemeinesKontoMitTagesumsatz): class GirokontoMitTagesumsatz(AllgemeinesKontoMitTagesumsatz):
def __init__(self, inhaber, kontonummer, kontostand, max_tagesumsatz=1500): def __index__(self, inhaber, kontonummer, kontostand, max_tagesumsatz=1500):
kundendaten = GirokontoKundendaten(inhaber, kontonummer) kundendaten = GirokontoKundendaten(inhaber, kontonummer)
super().__init__(kundendaten, kontostand, max_tagesumsatz) super().__init__(kundendaten, kontostand, max_tagesumsatz)
k1=GirokontoMitTagesumsatz("Carsten", 5678, 1234.78)
k1 = AllgemeinesKontoMitTagesumsatz("Heinz", 12345, 1001.99) k2=GirokontoMitTagesumsatz("Johanna", 1234, 1000.78)
k2 = GirokontoMitTagesumsatz("Lisa", 67891, 2001.99) k1.geldtransfer(k2, 1000)
k2.zeige()
# k1.einzahlen(200)
# k1.zeige()
# k2.geldtransfer(k1,200)
# k1.zeige()
# k2.zeige()