From f64f5fd82f88921ff55d9e834d3621e532c28ef1 Mon Sep 17 00:00:00 2001 From: hubobel Date: Thu, 29 Jun 2017 10:50:33 +0200 Subject: [PATCH] Fehler werden abgefangen, falls url nicht erreichbar --- Parser.py | 49 +++++++++++++++++++++++++++++++++---------------- Test.py | 46 ++++++++++------------------------------------ 2 files changed, 43 insertions(+), 52 deletions(-) diff --git a/Parser.py b/Parser.py index b4dc26e..20b1766 100644 --- a/Parser.py +++ b/Parser.py @@ -38,25 +38,42 @@ def kodiserie(): koditems["season"] = "" koditems["episode"] = "" 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 urlREF = "" while lauf < 2: koditems = {"episode": "", "fanart": "", "file": "", "label": "", "season": "", "showtitle": "", "type": "", "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" - antwort = urllib.request.urlopen(url) - b = (antwort.read()) - a = b.decode("utf-8") - for i in koditems: - wert = kodi(i, a) - koditems[i] = wert - kodiserie() - string = koditems["showtitle"] + " " + koditems["label"] + " " + koditems["season"] + koditems["episode"] - string = string.replace("ä", "ae").replace("Ä", "Ae").replace("ö", "oe").replace("Ö", "oe").replace("ü", "ue").replace("Ü", "Ue").replace(" ", "_") - if string == "__": - string = "" - url = 'http://' + ip + ':8181/loksoft.exe?ret=dom.GetObject("' + SV + '").State("' + string + '")' - if url != urlREF: - urllib.request.urlopen(url) - urlREF = url - time.sleep(10) + a=kodiurl(url) #Aufruf der url über eine Funktion um evtl Fehler abzufangen (Fehler = NONE) + if a != None: + for i in koditems: + wert = kodi(i, a) + koditems[i] = wert + kodiserie() + string = koditems["showtitle"] + " " + koditems["label"] + " " + koditems["season"] + koditems["episode"] + string = string.replace("ä", "ae").replace("Ä", "Ae").replace("ö", "oe").replace("Ö", "oe").replace("ü", "ue").replace("Ü", "Ue").replace(" ", "_") + if string == "__": + string = "" + url = 'http://' + ip + ':8181/loksoft.exe?ret=dom.GetObject("' + SV + '").State("' + string + '")' + print(url) + if url != urlREF: + ccuurl(url) #Aufruf der url über eine Funktion um evtl Fehler abzufangen (Fehler = NONE) + urlREF = url + + else: + print("Fehler") + time.sleep(10) \ No newline at end of file diff --git a/Test.py b/Test.py index da8ad1a..1e694b4 100644 --- a/Test.py +++ b/Test.py @@ -1,36 +1,29 @@ class VerwalteterGeldbetrag: - def __int__(self, kontostand): - self.Betrag = kontostand - + def __init__(self, anfangsbetrag): + self.Betrag = anfangsbetrag def einzahlenMoeglich(self, betrag): return True - def auszahlenMoeglich(self, betrag): return True - def einzahlen(self, betrag): if betrag < 0 or not self.einzahlenMoeglich(betrag): return False else: self.Betrag += betrag return True - def auszahlen(self, betrag): if betrag < 0 or not self.auszahlenMoeglich(betrag): return False else: self.Betrag -= betrag return True - def zeige(self): - print("Betrag: {}".format(self.Betrag)) - + #print("Betrag: {:.2f}".format(self.Betrag)) class AllgemeinesKonto(VerwalteterGeldbetrag): - def __init__(self, kundendaten, kontostand): + def __init__(self,kundendaten, kontostand): super().__init__(kontostand) self.Kundendaten = kundendaten - def geldtransfer(self, ziel, betrag): if self.auszahlenMoeglich(betrag) and ziel.einzahlenMoeglich(betrag): self.auszahlen(betrag) @@ -38,70 +31,51 @@ class AllgemeinesKonto(VerwalteterGeldbetrag): return True else: return False - def zeige(self): self.Kundendaten.zeige() VerwalteterGeldbetrag.zeige(self) - class AllgemeinesKontoMitTagesumsatz(AllgemeinesKonto): def __init__(self, kundendaten, kontostand, max_tagesumsatz=1500): super().__init__(kundendaten, kontostand) self.MaxTagesumsatz = max_tagesumsatz self.UmsatzHeute = 0.0 - def transferMoeglich(self, betrag): return (self.UmsatzHeute + betrag <= self.MaxTagesumsatz) - def auszahlenMoeglich(self, betrag): return self.transferMoeglich(betrag) - def einzahlenMoeglich(self, betrag): return self.transferMoeglich(betrag) - def einzahlen(self, betrag): if AllgemeinesKonto.einzahlen(self, betrag): self.UmsatzHeute += betrag return True else: return False - def auszahlen(self, betrag): if AllgemeinesKonto.auszahlen(self, betrag): self.UmsatzHeute += betrag return True else: return False - def 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: def __init__(self, inhaber, kontonummer): self.Inhaber = inhaber self.Kontonummer = kontonummer - def zeige(self): print("Inhaber:", self.Inhaber) print("Kontonummer:", self.Kontonummer) - 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) super().__init__(kundendaten, kontostand, max_tagesumsatz) - -k1 = AllgemeinesKontoMitTagesumsatz("Heinz", 12345, 1001.99) -k2 = GirokontoMitTagesumsatz("Lisa", 67891, 2001.99) - -# k1.einzahlen(200) - - -# k1.zeige() - -# k2.geldtransfer(k1,200) -# k1.zeige() -# k2.zeige() +k1=GirokontoMitTagesumsatz("Carsten", 5678, 1234.78) +k2=GirokontoMitTagesumsatz("Johanna", 1234, 1000.78) +k1.geldtransfer(k2, 1000) +k2.zeige() \ No newline at end of file