lzy_web.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import requests
  2. import os
  3. import datetime
  4. import sys
  5. # Cookie 中 phpdisk_info 的值
  6. cookie_phpdisk_info = os.environ.get('phpdisk_info')
  7. # Cookie 中 ylogin 的值
  8. cookie_ylogin = os.environ.get('ylogin')
  9. # 请求头
  10. headers = {
  11. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36 Edg/89.0.774.45',
  12. 'Accept-Language': 'zh-CN,zh;q=0.9',
  13. 'Referer': 'https://pc.woozooo.com/account.php?action=login'
  14. }
  15. # 小饼干
  16. cookie = {
  17. 'ylogin': cookie_ylogin,
  18. 'phpdisk_info': cookie_phpdisk_info
  19. }
  20. # 日志打印
  21. def log(msg):
  22. utc_time = datetime.datetime.utcnow()
  23. china_time = utc_time + datetime.timedelta(hours=8)
  24. print(f"[{china_time.strftime('%Y.%m.%d %H:%M:%S')}] {msg}")
  25. # 检查是否已登录
  26. def login_by_cookie():
  27. url_account = "https://pc.woozooo.com/account.php"
  28. if cookie['phpdisk_info'] is None:
  29. log('ERROR: 请指定 Cookie 中 phpdisk_info 的值!')
  30. return False
  31. if cookie['ylogin'] is None:
  32. log('ERROR: 请指定 Cookie 中 ylogin 的值!')
  33. return False
  34. res = requests.get(url_account, headers=headers, cookies=cookie, verify=True)
  35. if '网盘用户登录' in res.text:
  36. log('ERROR: 登录失败,请更新Cookie')
  37. return False
  38. else:
  39. log('登录成功')
  40. return True
  41. # 上传文件
  42. def upload_file(file_dir, folder_id):
  43. file_name = os.path.basename(file_dir)
  44. url_upload = "https://up.woozooo.com/fileup.php"
  45. headers['Referer'] = f'https://up.woozooo.com/mydisk.php?item=files&action=index&u={cookie_ylogin}'
  46. post_data = {
  47. "task": "1",
  48. "folder_id": folder_id,
  49. "id": "WU_FILE_0",
  50. "name": file_name,
  51. }
  52. files = {'upload_file': (file_name, open(file_dir, "rb"), 'application/octet-stream')}
  53. res = requests.post(url_upload, data=post_data, files=files, headers=headers, cookies=cookie, timeout=120).json()
  54. log(f"{file_dir} -> {res['info']}")
  55. return res['zt'] == 1
  56. # 上传文件夹内的文件
  57. def upload_folder(folder_dir, folder_id):
  58. file_list = sorted(os.listdir(folder_dir), reverse=True)
  59. for file in file_list:
  60. path = os.path.join(folder_dir, file)
  61. if os.path.isfile(path):
  62. upload_file(path, folder_id)
  63. else:
  64. upload_folder(path, folder_id)
  65. # 上传
  66. def upload(dir, folder_id):
  67. if dir is None:
  68. log('ERROR: 请指定上传的文件路径')
  69. return
  70. if folder_id is None:
  71. log('ERROR: 请指定蓝奏云的文件夹id')
  72. return
  73. if os.path.isfile(dir):
  74. upload_file(dir, str(folder_id))
  75. else:
  76. upload_folder(dir, str(folder_id))
  77. if __name__ == '__main__':
  78. argv = sys.argv[1:]
  79. if len(argv) != 2:
  80. log('ERROR: 参数错误,请以这种格式重新尝试\npython lzy_web.py 需上传的路径 蓝奏云文件夹id')
  81. # 需上传的路径
  82. upload_path = argv[0]
  83. # 蓝奏云文件夹id
  84. lzy_folder_id = argv[1]
  85. if login_by_cookie():
  86. upload(upload_path, lzy_folder_id)