lzy_web.py 3.0 KB

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