111 lines
2.4 KiB
Python
111 lines
2.4 KiB
Python
from tkinter import *
|
|
from tkinter import ttk
|
|
from tkinter import filedialog
|
|
from tkinter import messagebox
|
|
import os.path
|
|
import downloader
|
|
|
|
check = os.path.exists("dir.txt")
|
|
if check == False:
|
|
f = open("dir.txt", "w")
|
|
f.close()
|
|
|
|
qlist = [
|
|
"144p",
|
|
"240p",
|
|
"360p",
|
|
"480p",
|
|
"MaxQ"
|
|
]
|
|
|
|
mp = [
|
|
"Audio (MP3)",
|
|
"Video (MP4)"
|
|
]
|
|
|
|
# Root
|
|
root = Tk()
|
|
root.title("GonTube")
|
|
root.geometry("390x400")
|
|
root.resizable(False, False)
|
|
icon = Image("photo", file="icon.png")
|
|
root.tk.call('wm', 'iconphoto', root._w, icon)
|
|
# Settings
|
|
def openSettings():
|
|
nw = Toplevel(root)
|
|
nw.title("Settings")
|
|
nw.geometry("350x150")
|
|
nw.tk.call('wm', 'iconphoto', nw._w, icon)
|
|
nw.resizable(False, False)
|
|
Label(nw, text="Directory").grid(column=1, row=2, padx=20, pady=50)
|
|
def Save():
|
|
root.filename = filedialog.askdirectory(initialdir = "/",title = "Select directory")
|
|
f = open("dir.txt", "w")
|
|
f.write(root.filename)
|
|
f.close()
|
|
dirb = Button(nw, text="Change Directory", command=Save).grid(column=2, row=2, padx=50, sticky=E)
|
|
|
|
|
|
|
|
# Menu
|
|
menu_bar = Menu(root)
|
|
menu = Menu(menu_bar, tearoff=0)
|
|
menu_bar.add_cascade(label="Options", menu=menu)
|
|
menu.add_command(label="Settings", command=openSettings)
|
|
menu.add_command(label="Info")
|
|
root.config(menu=menu_bar)
|
|
|
|
# Link field
|
|
link = StringVar()
|
|
link_entry = ttk.Entry(root, width=25, textvariable=link)
|
|
link_entry.grid(column=2, row=3, padx=20, pady=80)
|
|
|
|
|
|
# Labels
|
|
Label(root, text="Quality", font=(None, 23)).grid(column=1, row=2, pady=40, sticky = W)
|
|
Label(root, text="Format", font=(None, 23)).grid(column=1, row=1, pady=40, sticky = W)
|
|
Label(root, text="URL", font=(None, 23)).grid(column=1, row=3, pady=40, sticky = W)
|
|
|
|
# Buttons and Stuff
|
|
var1 = StringVar()
|
|
var1.set(qlist[4])
|
|
var2 = StringVar()
|
|
var2.set(mp[0])
|
|
|
|
qdd = OptionMenu(root, var1, *qlist)
|
|
qdd.grid(column=2, row=2, pady=20, padx=5, sticky = E)
|
|
|
|
mdd = OptionMenu(root, var2, *mp)
|
|
mdd.grid(column=2, row=1, pady=20, padx=5, sticky = E)
|
|
|
|
|
|
# Popups :)
|
|
def popup():
|
|
messagebox.showinfo("GonTube", "Done")
|
|
|
|
def Download():
|
|
quality = var1.get()
|
|
mpf = var2.get()
|
|
url = link.get()
|
|
f = open("dir.txt", "r")
|
|
dire = f.readline()
|
|
f.close()
|
|
if(mpf == "Audio (MP3)"):
|
|
downloader.DownloadMP3(url, dire)
|
|
else:
|
|
downloader.DownloadMP4(url, quality, dire)
|
|
link_entry.delete(0, 'end')
|
|
popup()
|
|
|
|
|
|
downb = Button(root, text="Download", command=Download).grid(column=3, row=3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
root.mainloop()
|