MCPcopy Create free account
hub / github.com/smallfawn/QLScriptPublic / clean_duplicate_files_cloud

Method clean_duplicate_files_cloud

daily/chinaUnicom.py:2649–2754  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2647 return deleted
2648
2649 def clean_duplicate_files_cloud(self):
2650 token = getattr(self.cloudDisk, 'userToken', '')
2651 if not token:
2652 return
2653 self.log("云盘任务: 开始清理云盘重复文件")
2654 cloud_headers = {
2655 'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) LianTongYunPan/5.1.0 (iPhone; iOS 16.6)",
2656 'Accept': 'application/json, text/plain, */*',
2657 'Content-Type': 'application/json',
2658 'Accept-Encoding': 'br;q=1.0, gzip;q=0.9, deflate;q=0.8',
2659 'Access-Token': token, 'X-YP-Access-Token': token,
2660 'Client-Id': '1001000035', 'X-YP-Client-Id': '1001000035',
2661 'App-Version': 'yp-app/5.1.0', 'app-type': 'liantongyunpanapp',
2662 'Sys-Version': 'iOS/16.6',
2663 }
2664 uploaded_count = int(getattr(self.cloudDisk, 'uploadedFileCount', 0) or 0)
2665 retry_count = 6 if uploaded_count > 0 else 1
2666 task_id = ""
2667 file_ids = []
2668 for attempt in range(1, retry_count + 1):
2669 try:
2670 res = self.session.post(
2671 self.cloudDiskUrls['getScanState'], json={
2672 "pathLevelList": [{"levelType": "space", "levelName": "个人云", "busId": "0"}]
2673 }, headers=cloud_headers, timeout=10,
2674 ).json()
2675 except Exception as e:
2676 self.log(f"云盘任务: 获取扫描状态失败: {e}")
2677 return
2678 if res.get('meta', {}).get('code') != '200':
2679 self.log("云盘任务: 获取扫描状态失败")
2680 return
2681 task_id = ""
2682 for item in res.get('result', {}).get('subTaskList', []):
2683 if item.get('taskId'):
2684 task_id = item['taskId']
2685 break
2686 if task_id:
2687 file_ids = []
2688 page = max_page = 1
2689 while page <= max_page:
2690 try:
2691 page_res = self.session.post(
2692 self.cloudDiskUrls['getCleanData'], json={
2693 "pageNum": page, "taskId": task_id, "type": 3, "pageSize": 50,
2694 }, headers=cloud_headers, timeout=10,
2695 ).json()
2696 except Exception as e:
2697 self.log(f"云盘任务: 获取第{page}页清理数据失败: {e}")
2698 return
2699 if page_res.get('meta', {}).get('code') != '200':
2700 break
2701 max_page = page_res.get('result', {}).get('maxPageNum', 1)
2702 for group in page_res.get('result', {}).get('fileGroupList', []):
2703 for fi, file_item in enumerate(group.get('fileList', [])):
2704 if fi <= 0 or not file_item.get('fileId'):
2705 continue
2706 file_ids.append({"fileId": file_item['fileId'], "spaceType": file_item.get('spaceType', '0')})

Callers 1

ltyp_taskMethod · 0.95

Calls 7

logMethod · 0.95
sleepMethod · 0.80
postMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected