ytD/gui.py

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()