def Musique(conf, TextPAPIRUS): #Fonction Musique (Last.fm) SV.SVMusique(conf) TextPAPIRUS.AddText("Last.fm:", 10, 10, size=20, fontPath="Ubuntu.ttf") try: if SV.DataLast["recenttracks"]["track"][0]["@attr"][ "nowplaying"] == "true": TextPAPIRUS.AddText("Actuellement:", 10, 40, size=25, fontPath="Ubuntu.ttf") TextPAPIRUS.AddText( SV.DataLast["recenttracks"]["track"][0]["artist"]["#text"] + " - " + SV.DataLast["recenttracks"]["track"][0]["name"], 10, 65, size=15, fontPath="Ubuntu.ttf") TextPAPIRUS.AddText( SV.DataLast["recenttracks"]["track"][0]["album"]["#text"], 10, 95, size=10, fontPath="Ubuntu.ttf") TextPAPIRUS.AddText("Précédent:", 10, 115, size=25, fontPath="Ubuntu.ttf") TextPAPIRUS.AddText( SV.DataLast["recenttracks"]["track"][1]["artist"]["#text"] + " - " + SV.DataLast["recenttracks"]["track"][1]["name"], 10, 140, size=15, fontPath="Ubuntu.ttf") except: TextPAPIRUS.AddText("Précédent:", 10, 40, size=25, fontPath="Ubuntu.ttf") TextPAPIRUS.AddText( SV.DataLast["recenttracks"]["track"][0]["artist"]["#text"] + " - " + SV.DataLast["recenttracks"]["track"][0]["name"], 10, 65, size=15, fontPath="Ubuntu.ttf") TextPAPIRUS.AddText( SV.DataLast["recenttracks"]["track"][0]["album"]["#text"], 10, 95, size=10, fontPath="Ubuntu.ttf") finally: TextPAPIRUS.AddText(time.strftime("%H:%M", time.localtime()), 200, 10, size=20, fontPath="Ubuntu.ttf") TextPAPIRUS.WriteAll(True) time.sleep(10) TextPAPIRUS.Clear()
def APICheck(): #Fonction de test de chaque paramètre (sauf Twitch) Check = 0 #Test des APIs try: if conf["WEATHER"]["MeteoAPI"] != "": SV.SVMeteo(conf) if 400 <= int(SV.DataMeteo["cod"]) <= 599: ERROR = "Erreur dans la config Météo, veuillez vérifier votre saisie!" ErrorConfig(ERROR) return else: Check += 1 else: Check += 1 if conf["CRYPTO"]["CryptoAPI"] != "": SV.SVCrypto(conf) try: if SV.DataCrypto["Response"] == "Error": ERROR = "Erreur dans la config Crypto, veuillez vérifier votre saisie!" ErrorConfig(ERROR) return except KeyError: Check += 1 else: Check += 1 if conf["LASTFM"]["LastFmAPI"] != "": SV.SVMusique(conf) try: if 2 <= int(SV.DataLast["error"]) <= 29: ERROR = "Erreur dans la config LastFM, veuillez vérifier votre saisie!" ErrorConfig(ERROR) return except KeyError: Check += 1 else: Check += 1 if conf["TWITTER"]["TwitterAPI"] != "" and conf["TWITTER"]["twitterapisecret"] != "": try: BearerRAW = os.popen("curl -u '"+ conf["TWITTER"]["TwitterAPI"] + ":" + conf["TWITTER"]["TwitterAPISecret"] + "' --data 'grant_type=client_credentials' 'https://api.twitter.com/oauth2/token'").read() BearerJSON = json.loads(BearerRAW) BearerAUTH = BearerJSON["access_token"] except KeyError: ERROR = "Erreur dans la config Twitter, il faut 2 clés API! Veuillez vérifier votre saisie!" ErrorConfig(ERROR) return finally: try: SV.SVTwitter(conf, BearerAUTH) if 49 <= int(SV.DataTwitter["errors"][0]["code"]) <= 599: ERROR = "Erreur dans la config Twitter, veuillez vérifier votre saisie!" ErrorConfig(ERROR) return except KeyError: Check += 1 else: Check += 1 if conf["RATP"]["typetransA"] != "" and conf["RATP"]["lineA"] != "" and conf["RATP"]["stationA"] != "": try: SV.SVRATP(conf) if SV.OutputA["result"]["code"] == 404: ERROR = "Erreur dans la config RATP A, veuillez vérifier votre saisie!" ErrorConfig(ERROR) return except: if conf["RATP"]["typetransB"] != "" and conf["RATP"]["lineB"] != "" and conf["RATP"]["stationB"] != "": try: if SV.OutputB["result"]["code"] == 404: ERROR = "Erreur dans la config RATP B, veuillez vérifier votre saisie!" ErrorConfig(ERROR) return except: Check += 1 else: Check += 1 else: Check += 1 except (ValueError, socket.error, socket.gaierror, socket.herror, socket.timeout): #Situation d'erreur de connexion TextPAPIRUS.Clear() TextPAPIRUS.AddText("Erreur de connexion, nouvelle tentative de connexion dans: T", 10, 48, size = 20, fontPath="Ubuntu.ttf", Id="TimerErr") for I in range(15): TextPAPIRUS.UpdateText("TimerErr", "Erreur de connexion, \nnouvelle tentative de connexion dans: " + str(15 - I), fontPath="Ubuntu.ttf") TextPAPIRUS.WriteAll(True) time.sleep(1) TextPAPIRUS.Clear() APICheck() finally: #Fin de la vérification des API if Check == 5: HashSave()