HmyingJ 发表于 2020-4-29 15:13:09

自己做的基于you-get的小脚本(新人,程序有点乱)

本帖最后由 HmyingJ 于 2020-4-29 15:21 编辑

you-get是很好用的下载脚本,但是每次输入有点烦,就捣鼓着想要写个脚本,给you-get加一个窗口,在窗口里设置you-get各项参数并在cmd中打开

代码如下
import os
from tkinter import *
import tkinter.filedialog as filedialog

def load_txt(filename):                        #加载文件。将上一次的输入的内容打包进comment的列表
       
        file = open(filename)
        comment = file.readlines()

        for i in range(len(comment)):
                comment = comment[:-1]

        file.close()
        return comment

def cmd_download(filename,cookie,url,downlist):                #网址 cookie 文件名
       
    info = os.system(r'you-get -f -o{} -c {} {} {}'.format(filename, cookie,url,downlist))                        #打开cmd并下载
    print(info)
   
    return 1

def load_in():                                #设置窗口

        root = Tk()
        root.title('下载')

        def download():
                if v4.get() == 1:
                        v4.set('-l')
                line = []
                line.append(v1.get())
                line.append(v2.get())
                line.append(v3.get())
                line.append(v4.get())
                with open('setting.txt','w') as f:
                        for i in range(len(line)):
                                f.writelines(line)
                                f.write('\n')
                if v4.get() == '是':
                        v4.set('-l')
                else:
                        v4.set('')
                root.destroy()                #在这里我一直想知道退出主事件循环并继续执行下一行代码:cmd_download().但不知道怎么做,自己试着这样写结果可以,有大佬解惑么?
                cmd_download(v3.get(),v2.get(),v1.get(),v4.get())

        def open_dir():
               
                dir_open = filedialog.askdirectory(title='选择输出文件夹',initialdir='I:\\')
                v3.set(dir_open)


        def open_file():
                fileName = filedialog.askopenfilename(title= "open the cookie's file",filetypes=[('TEXT','.txt')],\
                                                                                                initialdir = 'H:\\cookie')
                v2.set(fileName)


        frame = LabelFrame(root,text='请填写以下信息',labelanchor=N)
        frame.pack(padx=10,pady=10)   


        #msg = "默认下载路径为D:\\download\\you-get下载\\"
        #title = "下载"
        # ['网址','cookie路径(0/1)','是否修改输出路径(0/1)','是否全部下载(0/1)']
        try:
                line_ = load_txt('setting.txt')
        except FileNotFoundError:
                f = open("setting.txt",'w')       
                f.close()
                line_ = load_txt('setting.txt')


        v1 = StringVar()
        v2 = StringVar()
        v3 = StringVar()
        v4 = StringVar()
       
        if len(line_) != 0:
                v1.set(line_)
                v2.set(line_)
                v3.set(line_)
                v4.set(line_)

        Label(frame,text='网址:').grid(row=0,column=0,sticky = E)                                                #设置标签
        Label(frame,text='cookie地址:').grid(row=1,column=0,sticky = E)
        Label(frame,text='输出地址:').grid(row=2,column=0,sticky = E)
        Label(frame,text='是否下载全部内容:').grid(row=3,column=0,sticky = E)
        Label(frame,text='(例如:在"是"的选项下载动漫***,将下载该季全集)').grid(row=3,column=1,sticky=E,padx=10)                #给Label ‘是否下载全部’ 添加注释

        load_1 = Entry(frame,textvariable=v1,width=50)
        load_1.grid(row=0,column=1,padx=10,pady=10)

        load_2 = Entry(frame,textvariable=v2,width=50)
        load_2.grid(row=1,column=1,padx=10,pady=10)
       
        load_3 = Entry(frame,textvariable=v3,width=50)
        load_3.grid(row=2,column=1,padx=10,pady=10)
       
        load_4 = OptionMenu(frame,v4,'是','否')
        load_4.grid(row=3,column=1,sticky=W,padx=5)
       
        Button(frame,text='Browse',width=10,command=open_file).grid(row=1,column=2,sticky = W)
        Button(frame,text='Browse',width=10,command=open_dir).grid(row=2,column=2,sticky = W)

        Button(frame,text='开始下载',width=25,command=download)\
                                .grid(row=4,column=1,sticky = W,pady = 15)

        Button(frame,text='退出',width=25,command=root.quit)\
                                .grid(row=4,column=1,sticky = E)
       
        #filename,cookie,url,downlist
        mainloop()

load_in()



HmyingJ 发表于 2020-4-29 15:16:18

桌面

ybs3870129 发表于 2020-5-2 13:11:05

NICE
页: [1]
查看完整版本: 自己做的基于you-get的小脚本(新人,程序有点乱)