Ich bin relativ neu in der Python-Welt.... Ich habe ein kleines Skript mit der Twitch-API gebastelt, das mir anzeigt, wer gerade live ist.
Die Konsolenausgabe gefällt mir schon ganz gut, aber ich würde das Ganze jetzt gerne in einem Tkinter-Fenster haben, um es optisch etwas schöner darzustellen.
Wie bekomme ich die Ausgabe in so ein Tkinter-Fenster? Das Skript ist etwa 65 Zeilen lang, deswegen würde ich es nur ungern ganz verwerfen wollen.
Die Konsolenausgabe sieht in etwa so aus;
Code: Alles auswählen
KANAL SPIEL ZUSCHAUER
------------------------------------------------------------------------------- -
cmdkrieger Among Us 220
------------------------------------------------------------------------------- -
Hier für mögliche Änderungsvorschläge fürs Tkinter-Fenster der gesamte Quelltext (ohne API-Key):
Code: Alles auswählen
import json
import requests
import sys
from tkinter import *
try:
reload(sys)
sys.setdefaultencoding('utf8')
except Exception:
pass
# oauth.txt
try:
with open('oauth.txt', 'r') as f:
oauth = f.read()
# speicher OAuth in oauth.txt
except FileNotFoundError:
print("Füge den OAuth ein (z.B.: 'yaxb50....')")
with open('oauth.txt', 'w') as f:
f.write(input())
with open('oauth.txt', 'r') as f:
oauth = f.read()
headers = {
'Accept': 'application/vnd.twitchtv.v5+json',
'Client-ID': 'abcdefghijklmnopqrstuvwxyz',
'Authorization': 'OAuth ' + oauth,
}
try:
response = requests.get('https://api.twitch.tv/kraken/streams/followed', headers=headers)
data = response.json()
numStreams = len(data['streams'])
except (KeyError, ValueError):
print("Error - stelle sicher dass der Key in oauth.txt korrekt ist!")
sys.exit(1)
print("\nKANAL " + ' ' * 15 + "SPIEL" + ' ' * 35 + "ZUSCHAUER" + ' ' * 8 + "\n" + '-' * 80)
for i in range(0, numStreams):
channelName = data["streams"][i]["channel"]["name"]
channelGame = data["streams"][i]["channel"]["game"]
channelViewers = str(data["streams"][i]["viewers"])
streamType = data["streams"][i]["stream_type"]
# Check ob stream live/vodcast
if streamType == "live":
streamType = ""
else:
streamType = "(vodcast)"
# Kanal Name/Spiele
if len(channelName) > 18:
channelName = channelName[:18] + ".."
if len(channelGame) > 38:
channelGame = channelGame[:38] + ".."
# Formatieren
print("{} {} {} {}".format(
channelName.ljust(20),
channelGame.ljust(40),
channelViewers.ljust(8),
streamType
))
if i == numStreams - 1:
print('-' * 80)
# Fenster für Konsolenausgabe ist aktuell in Arbeit !
# fenster = Tk()
# fenster.title('Stream0rz')
# fenster.geometry('600x450')
# fenster.mainloop()
Beste Grüße, Felbeeey