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