main.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. """
  4. ---------------------------------------
  5. # @Project : DAGASI
  6. # @File : main.py
  7. # @Author : GrayZhao
  8. # @Date : 2023/2/22 0:37
  9. # @Version :
  10. # @Description :
  11. ---------------------------------------
  12. """
  13. from gevent import monkey;monkey.patch_all()
  14. from threading import Thread
  15. from queue import Queue
  16. from fanbox import FanboxID
  17. from kemono import Kemono
  18. if __name__ == '__main__':
  19. id_queue = Queue()
  20. # 选择菜单
  21. print("1. 下载全部作品\n2. 下载指定作品")
  22. while True:
  23. opt = input("请输入序号 [1]:")
  24. if opt == "1" or not opt:
  25. for _id in FanboxID.iterator():
  26. id_queue.put(_id)
  27. break
  28. elif opt == "2":
  29. while True:
  30. _ids = input("请输入投稿ID [多个ID请使用‘,’分隔]:").split(",")
  31. if _ids:
  32. for _id in _ids:
  33. id_queue.put(_id)
  34. break
  35. print("<Error> ID不能为空!")
  36. break
  37. print("<Error> 请输入正确序号!")
  38. # 下载
  39. print(f"共有{id_queue.qsize()}篇投稿需要下载,请耐心等待...")
  40. Kemono.login(username="zhy201810576", passwd="zhy120001")
  41. produce = Thread(target=Kemono.produce, args=(id_queue,))
  42. consume = Thread(target=Kemono.consume)
  43. consume.setDaemon(True)
  44. produce.start()
  45. consume.start()
  46. produce.join()
  47. # 输出未完成任务
  48. if Kemono.is_error_ids():
  49. for item in Kemono.is_error_ids():
  50. print(item)