#-*- coding: cp949 -*-
from tkinter import *
from urllib import request
import json
from threading import Timer
selection=1
def evClear():
T.delete(1.0,END)
def evInser3():
t.cancel()
def evInser2():
evClear()
evInser()
global t
t = Timer(5.0, hello)
t.start()
def hello():
n.set(str(int(n.get())+1))
evInser2()
def evInser():
if selection == 1:
urls="https://gdata.youtube.com/feeds/api/videos?q="+str(e.get())+"&v=2&start-index="+str(n.get())+"&alt=json"
else:
urls="http://gdata.youtube.com/feeds/api/users/"+str(e.get())+"/uploads?v=2&start-index="+str(n.get())+"&alt=json";
ru = request.urlopen(urls)
res=ru.read().decode("utf-8")
Jres= json.loads(res)
rest ="totalResults : "+str(Jres['feed']['openSearch$totalResults']['$t'])+" startIndex : "+str(Jres['feed']['openSearch$startIndex']['$t'])+" itemsPerPage : "+str(Jres['feed']['openSearch$itemsPerPage']['$t'])+" item : "+str(Jres['feed']['openSearch$startIndex']['$t']*Jres['feed']['openSearch$itemsPerPage']['$t'])
label.config(text = str(rest))
for Jres['feed']['entry'] in Jres['feed']['entry']:
T.insert(END,Jres['feed']['entry']['published']['$t'])
T.insert(END,"\t")
T.insert(END,Jres['feed']['entry']['id']['$t'].split(":")[3])
T.insert(END,"\t")
T.insert(END,Jres['feed']['entry']['title']['$t'])
T.insert(END,"\n")
evWrite()
def evWrite():
fname=e.get()
f = open(fname, 'a')
f.write(T.get(1.0,END))
f.close()
def sel():
selection =v.get()
label.config(text = str(selection))
top = Tk()
F=Frame(top)
F.pack(fill=BOTH, expand=YES)
F.master.title("YouTube KeyWord Search")
F2=Frame(F)
F2.pack(fill=X)
v = IntVar()
v.set("1")
Radiobutton(F2, text="keyword", variable=v, value=1,command=sel).pack(side=LEFT)
Radiobutton(F2, text="users", variable=v, value=2,command=sel).pack(side=LEFT)
e = StringVar()
Entry(F2,textvariable=e).pack(side=LEFT,fill=X, expand=YES)
e.set("starcraft")
n = StringVar()
Entry(F2,textvariable=n).pack(side=LEFT)
n.set("1")
#E = Entry(F2)
#E.pack(side=LEFT,fill=X, expand=YES)
A = Button(F2, text="YouTube Search", command=evInser)
A.pack(side=LEFT)
A2 = Button(F2, text="Auto Search", command=evInser2)
A2.pack(side=LEFT)
A3 = Button(F2, text="Stop", command=evInser3)
A3.pack(side=LEFT)
F3=Frame(F)
F3.pack(fill=BOTH, expand=YES)
T = Text(F3)
T.config(background='gray')
T.config(wrap='none')
T.pack(side=LEFT,fill=BOTH, expand=YES)
S = Scrollbar(F3)
S.config(command=T.yview)
S.pack(side=RIGHT, fill=Y)
label = Label(F)
label.pack(side=LEFT, fill=Y)
C = Button(F, text="Text Delete", command=evClear)
C.pack(side=RIGHT)
C = Button(F, text="Text Save", command=evWrite)
C.pack(side=RIGHT)
top.mainloop()