ich habe ein Programm geschrieben, das mir die aktuellen Charts in einer Liste auflistet. Da es verschiedene Kategorien gibt, habe ich Radiobuttons gemacht, um die Kategorie auszuwählen. Es wird aber immer die Kategorie "German Top 100 Single Charts" verwendet, egal was ich angebe. Der Code des Programms ist:
Code: Alles auswählen
#charts.pyw
from Tkinter import *
from httplib import *
import webbrowser
class Charts:
def __init__(self):
self.tk = Tk()
self.tk.title('Aktuelle Charts')
Button(self.tk,text='Kategorie von charts.to auswählen und Liste laden',command=self.auswahl).grid(row=1,column=1,columnspan=2)
self.suchen = Entry(self.tk)
self.suchen.grid(row=1,column=3)
Button(self.tk,text='bei charts.to suchen',command=self.oeffnen).grid(row=1,column=4)
self.tk.mainloop()
def auswahl(self):
self.root = Tk()
self.root.title('Typauswahl')
self.thema = StringVar()
r = Radiobutton(self.root,text='German Top 100 Single Charts',variable=self.thema,value='german-top-100-single-charts')
r.grid(row=1,column=1)
r.select()
Radiobutton(self.root,text='German Top 100 Album Charts',variable=self.thema,value='german-top-100-album-charts').grid(row=1,column=2)
Radiobutton(self.root,text='German Top 50 Dance Charts',variable=self.thema,value='german-top-100-dance-charts').grid(row=1,column=3)
Radiobutton(self.root,text='German Top 30 Schlager Charts',variable=self.thema,value='german-top-30-schlager').grid(row=1,column=4)
Radiobutton(self.root,text='German Top 40 Black Charts',variable=self.thema,value='german-top-40-black-charts').grid(row=1,column=5)
Radiobutton(self.root,text='US Top 40 Single Charts',variable=self.thema,value='us-top-40-single-charts').grid(row=2,column=1)
Radiobutton(self.root,text='UK Top 40 Single Charts',variable=self.thema,value='uk-top-40-single-charts').grid(row=2,column=2)
Radiobutton(self.root,text='German Top 100 Single Charts 2011',variable=self.thema,value='german-top-100-single-charts-2011').grid(row=2,column=3)
Radiobutton(self.root,text='German Top 100 Single Charts 2012',variable=self.thema,value='german-top-100-single-charts-2012').grid(row=2,column=4)
Button(self.root,text='Charts laden',command=self.charts).grid(row=3,column=1,columnspan=5)
self.root.mainloop()
def charts(self):
thema = self.thema.get()
self.root.destroy()
try:
v = HTTPConnection('charts.to')
v.request('GET','/'+thema)
a = v.getresponse()
html = a.read()
except: pass
interpreten = []
lieder = []
bestandteile = html.split('<span class="f12 blue bold">')
for satz in bestandteile:
name = satz.split('</span>')[0]
interpreten.append(name)
del interpreten[0]
bestandteile = html.split('</span> - <span class="f12 bold">')
del bestandteile[0]
for satz in bestandteile:
name = satz.split('</span><div class="clear half"></div>')[0]
lieder.append(name)
nummer = 0
row = 2
column = 1
platz = 1
farbe = 'blue'
for lied in lieder:
Label(self.tk,text='Platz '+str(platz)+': '+lied+' von '+interpreten[platz-1],bg=farbe,font=('Arial',8)).grid(row=row,column=column)
row += 1
platz += 1
if row == 35:
row = 2
column += 1
if farbe == 'blue':
farbe = 'red'
elif farbe == 'red':
farbe = 'orange'
elif farbe == 'orange':
farbe = 'green'
elif farbe == 'green':
farbe = 'blue'
def oeffnen(self):
lied = self.suchen.get()
url = 'http://chart.to?key='+lied
webbrowser.open(url,2)
Charts()