鱼C论坛

 找回密码
 立即注册
查看: 2248|回复: 2

[技术交流] 自己做的基于you-get的小脚本(新人,程序有点乱)

[复制链接]
发表于 2020-4-29 15:13:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

代码如下

  1. import os
  2. from tkinter import *
  3. import tkinter.filedialog as filedialog

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

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

  10.         file.close()
  11.         return comment

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

  18. def load_in():                                #设置窗口

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

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

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


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


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


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


  58.         v1 = StringVar()
  59.         v2 = StringVar()
  60.         v3 = StringVar()
  61.         v4 = StringVar()
  62.        
  63.         if len(line_) != 0:
  64.                 v1.set(line_[0])
  65.                 v2.set(line_[1])
  66.                 v3.set(line_[2])
  67.                 v4.set(line_[3])

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

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

  75.         load_2 = Entry(frame,textvariable=v2,width=50)
  76.         load_2.grid(row=1,column=1,padx=10,pady=10)
  77.        
  78.         load_3 = Entry(frame,textvariable=v3,width=50)
  79.         load_3.grid(row=2,column=1,padx=10,pady=10)
  80.        
  81.         load_4 = OptionMenu(frame,v4,'是','否')
  82.         load_4.grid(row=3,column=1,sticky=W,padx=5)
  83.        
  84.         Button(frame,text='Browse',width=10,command=open_file).grid(row=1,column=2,sticky = W)
  85.         Button(frame,text='Browse',width=10,command=open_dir).grid(row=2,column=2,sticky = W)

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

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

  93. load_in()

复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-29 15:16:18 | 显示全部楼层

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 13:11:05 | 显示全部楼层
NICE
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-21 12:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表