第一步优化勾选功能

This commit is contained in:
27942
2026-02-01 01:21:41 +08:00
parent dbf6151d6d
commit 88890073b2
418 changed files with 16975 additions and 10366 deletions

3539
1.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,4 +1,4 @@
('C:\\Users\\27942\\Desktop\\haha\\build\\GUI应用\\PYZ-00.pyz',
('C:\\Users\\27942\\Desktop\\codes\\haha\\build\\GUI应用\\PYZ-00.pyz',
[('DataRecorder',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\DataRecorder\\__init__.py',
'PYMODULE'),
@@ -828,10 +828,14 @@
'PYMODULE'),
('glob', 'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\glob.py', 'PYMODULE'),
('gui_constants',
'C:\\Users\\27942\\Desktop\\haha\\gui_constants.py',
'C:\\Users\\27942\\Desktop\\codes\\haha\\gui_constants.py',
'PYMODULE'),
('gui_models',
'C:\\Users\\27942\\Desktop\\codes\\haha\\gui_models.py',
'PYMODULE'),
('gui_worker',
'C:\\Users\\27942\\Desktop\\codes\\haha\\gui_worker.py',
'PYMODULE'),
('gui_models', 'C:\\Users\\27942\\Desktop\\haha\\gui_models.py', 'PYMODULE'),
('gui_worker', 'C:\\Users\\27942\\Desktop\\haha\\gui_worker.py', 'PYMODULE'),
('gzip', 'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\gzip.py', 'PYMODULE'),
('hashlib',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\hashlib.py',
@@ -1096,7 +1100,7 @@
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\lxml\\usedoctest.py',
'PYMODULE'),
('lzma', 'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\lzma.py', 'PYMODULE'),
('main', 'C:\\Users\\27942\\Desktop\\haha\\main.py', 'PYMODULE'),
('main', 'C:\\Users\\27942\\Desktop\\codes\\haha\\main.py', 'PYMODULE'),
('mimetypes',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\mimetypes.py',
'PYMODULE'),
@@ -2226,6 +2230,9 @@
('pandas.api',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\api\\__init__.py',
'PYMODULE'),
('pandas.api.executors',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\api\\executors\\__init__.py',
'PYMODULE'),
('pandas.api.extensions',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\api\\extensions\\__init__.py',
'PYMODULE'),
@@ -2253,9 +2260,6 @@
('pandas.compat._optional',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\compat\\_optional.py',
'PYMODULE'),
('pandas.compat.compressors',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\compat\\compressors.py',
'PYMODULE'),
('pandas.compat.numpy',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\compat\\numpy\\__init__.py',
'PYMODULE'),
@@ -2430,6 +2434,9 @@
('pandas.core.base',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\base.py',
'PYMODULE'),
('pandas.core.col',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\col.py',
'PYMODULE'),
('pandas.core.common',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\common.py',
'PYMODULE'),
@@ -2628,12 +2635,6 @@
('pandas.core.internals.api',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\internals\\api.py',
'PYMODULE'),
('pandas.core.internals.array_manager',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\internals\\array_manager.py',
'PYMODULE'),
('pandas.core.internals.base',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\internals\\base.py',
'PYMODULE'),
('pandas.core.internals.blocks',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\internals\\blocks.py',
'PYMODULE'),
@@ -2721,9 +2722,6 @@
('pandas.core.reshape.tile',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\reshape\\tile.py',
'PYMODULE'),
('pandas.core.reshape.util',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\reshape\\util.py',
'PYMODULE'),
('pandas.core.roperator',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\roperator.py',
'PYMODULE'),
@@ -2745,9 +2743,6 @@
('pandas.core.strings.accessor',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\strings\\accessor.py',
'PYMODULE'),
('pandas.core.strings.base',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\strings\\base.py',
'PYMODULE'),
('pandas.core.strings.object_array',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\strings\\object_array.py',
'PYMODULE'),
@@ -2781,9 +2776,6 @@
('pandas.core.window.common',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\window\\common.py',
'PYMODULE'),
('pandas.core.window.doc',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\window\\doc.py',
'PYMODULE'),
('pandas.core.window.ewm',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\core\\window\\ewm.py',
'PYMODULE'),
@@ -2802,6 +2794,9 @@
('pandas.errors',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\errors\\__init__.py',
'PYMODULE'),
('pandas.errors.cow',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\errors\\cow.py',
'PYMODULE'),
('pandas.io',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\io\\__init__.py',
'PYMODULE'),
@@ -2895,12 +2890,12 @@
('pandas.io.formats.xml',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\io\\formats\\xml.py',
'PYMODULE'),
('pandas.io.gbq',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\io\\gbq.py',
'PYMODULE'),
('pandas.io.html',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\io\\html.py',
'PYMODULE'),
('pandas.io.iceberg',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\io\\iceberg.py',
'PYMODULE'),
('pandas.io.json',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pandas\\io\\json\\__init__.py',
'PYMODULE'),
@@ -3068,21 +3063,6 @@
('pythoncom',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pythoncom.py',
'PYMODULE'),
('pytz',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pytz\\__init__.py',
'PYMODULE'),
('pytz.exceptions',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pytz\\exceptions.py',
'PYMODULE'),
('pytz.lazy',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pytz\\lazy.py',
'PYMODULE'),
('pytz.tzfile',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pytz\\tzfile.py',
'PYMODULE'),
('pytz.tzinfo',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\pytz\\tzinfo.py',
'PYMODULE'),
('pywin',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\Pythonwin\\pywin\\__init__.py',
'PYMODULE'),
@@ -3707,6 +3687,9 @@
('setuptools._vendor.importlib_metadata._text',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_text.py',
'PYMODULE'),
('setuptools._vendor.importlib_metadata._typing',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\_typing.py',
'PYMODULE'),
('setuptools._vendor.importlib_metadata.compat',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\importlib_metadata\\compat\\__init__.py',
'PYMODULE'),
@@ -3718,7 +3701,7 @@
'PYMODULE'),
('setuptools._vendor.jaraco', '-', 'PYMODULE'),
('setuptools._vendor.jaraco.context',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\context.py',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\context\\__init__.py',
'PYMODULE'),
('setuptools._vendor.jaraco.functools',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\jaraco\\functools\\__init__.py',
@@ -3789,12 +3772,21 @@
('setuptools._vendor.zipp',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\__init__.py',
'PYMODULE'),
('setuptools._vendor.zipp._functools',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\_functools.py',
'PYMODULE'),
('setuptools._vendor.zipp.compat',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\__init__.py',
'PYMODULE'),
('setuptools._vendor.zipp.compat.overlay',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\overlay.py',
'PYMODULE'),
('setuptools._vendor.zipp.compat.py310',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\py310.py',
'PYMODULE'),
('setuptools._vendor.zipp.compat.py313',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\compat\\py313.py',
'PYMODULE'),
('setuptools._vendor.zipp.glob',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\setuptools\\_vendor\\zipp\\glob.py',
'PYMODULE'),
@@ -4037,6 +4029,72 @@
('typing_extensions',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\typing_extensions.py',
'PYMODULE'),
('tzdata',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Africa',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Africa\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.America',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\America\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.America.Argentina',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\America\\Argentina\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.America.Indiana',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\America\\Indiana\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.America.Kentucky',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\America\\Kentucky\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.America.North_Dakota',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\America\\North_Dakota\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Antarctica',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Antarctica\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Arctic',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Arctic\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Asia',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Asia\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Atlantic',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Atlantic\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Australia',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Australia\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Brazil',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Brazil\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Canada',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Canada\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Chile',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Chile\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Etc',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Etc\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Europe',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Europe\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Indian',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Indian\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Mexico',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Mexico\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.Pacific',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\Pacific\\__init__.py',
'PYMODULE'),
('tzdata.zoneinfo.US',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\tzdata\\zoneinfo\\US\\__init__.py',
'PYMODULE'),
('unittest',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\unittest\\__init__.py',
'PYMODULE'),
@@ -4245,72 +4303,9 @@
('wheel',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\__init__.py',
'PYMODULE'),
('wheel.cli',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\cli\\__init__.py',
'PYMODULE'),
('wheel.cli.convert',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\cli\\convert.py',
'PYMODULE'),
('wheel.cli.pack',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\cli\\pack.py',
'PYMODULE'),
('wheel.cli.tags',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\cli\\tags.py',
'PYMODULE'),
('wheel.cli.unpack',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\cli\\unpack.py',
'PYMODULE'),
('wheel.macosx_libfile',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\macosx_libfile.py',
'PYMODULE'),
('wheel.metadata',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\metadata.py',
'PYMODULE'),
('wheel.util',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\util.py',
'PYMODULE'),
('wheel.vendored',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\__init__.py',
'PYMODULE'),
('wheel.vendored.packaging',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\__init__.py',
'PYMODULE'),
('wheel.vendored.packaging._elffile',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\_elffile.py',
'PYMODULE'),
('wheel.vendored.packaging._manylinux',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\_manylinux.py',
'PYMODULE'),
('wheel.vendored.packaging._musllinux',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\_musllinux.py',
'PYMODULE'),
('wheel.vendored.packaging._parser',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\_parser.py',
'PYMODULE'),
('wheel.vendored.packaging._structures',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\_structures.py',
'PYMODULE'),
('wheel.vendored.packaging._tokenizer',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\_tokenizer.py',
'PYMODULE'),
('wheel.vendored.packaging.markers',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\markers.py',
'PYMODULE'),
('wheel.vendored.packaging.requirements',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\requirements.py',
'PYMODULE'),
('wheel.vendored.packaging.specifiers',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\specifiers.py',
'PYMODULE'),
('wheel.vendored.packaging.tags',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\tags.py',
'PYMODULE'),
('wheel.vendored.packaging.utils',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\utils.py',
'PYMODULE'),
('wheel.vendored.packaging.version',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\vendored\\packaging\\version.py',
'PYMODULE'),
('wheel.wheelfile',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\site-packages\\wheel\\wheelfile.py',
'PYMODULE'),
@@ -4470,4 +4465,16 @@
'PYMODULE'),
('zipimport',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\zipimport.py',
'PYMODULE'),
('zoneinfo',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\zoneinfo\\__init__.py',
'PYMODULE'),
('zoneinfo._common',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\zoneinfo\\_common.py',
'PYMODULE'),
('zoneinfo._tzpath',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\zoneinfo\\_tzpath.py',
'PYMODULE'),
('zoneinfo._zoneinfo',
'C:\\Users\\27942\\.conda\\envs\\haha\\Lib\\zoneinfo\\_zoneinfo.py',
'PYMODULE')])

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -3555,7 +3555,8 @@ class MainWindow(QMainWindow):
elif task_type == 'image_folder':
self.log_text.append(f" ✓ 图片文件夹上传完成")
else:
self.log_text.append(f" ✗ 任务失败: {message}")
reason_text = f"失败原因: {message}" if message else "失败原因: 未知"
self.log_text.append(f" ✗ 任务失败: {reason_text}")
# 对于 batch_video 类型,状态和计数已经在 _on_worker_item_result 中实时更新了
# 所以这里不再重复更新,只需要处理 single_video 和 image_folder 类型
@@ -3700,13 +3701,16 @@ class MainWindow(QMainWindow):
self._update_table_status(found_config_idx, "已完成" if ok else "失败", is_config_index=True)
updated_count = 1
label = name if name else payload.get("path", "") or ""
self.log_text.append(f"[结果] {user_id}-{idx}: {'' if ok else ''} {label} {reason}")
reason_text = f"失败原因: {reason}" if (not ok and reason) else reason
self.log_text.append(f"[结果] {user_id}-{idx}: {'' if ok else ''} {label} {reason_text}")
elif found_config_idx == -2:
# 多个配置已处理,只记录日志
label = name if name else payload.get("path", "") or ""
self.log_text.append(f"[结果] {user_id}-{idx}: {'' if ok else ''} {label} {reason}")
reason_text = f"失败原因: {reason}" if (not ok and reason) else reason
self.log_text.append(f"[结果] {user_id}-{idx}: {'' if ok else ''} {label} {reason_text}")
else:
self.log_text.append(f"[结果] {user_id}-{idx}: ok={ok} {reason} (未在列表中找到匹配项)")
reason_text = f"失败原因: {reason}" if (not ok and reason) else reason
self.log_text.append(f"[结果] {user_id}-{idx}: ok={ok} {reason_text} (未在列表中找到匹配项)")
# 只有 batch_video 类型任务才在这里更新计数(实时反馈)
# single_video 和 image_folder 在 _on_batch_task_finished 中更新,避免重复计数

View File

@@ -87,7 +87,7 @@ class WorkerThread(QThread):
result = pdd.action(folder_path=folder_path, collect_all_videos=False)
ok = bool(result.get("ok")) if isinstance(result, dict) else True
if not ok:
self.log_message.emit(f"发布校验失败: {result.get('reason') if isinstance(result, dict) else ''}")
self.log_message.emit(f"失败原因: {result.get('reason') if isinstance(result, dict) else ''}")
if isinstance(result, dict):
self.item_result.emit({
"user_id": config.get("多多id", ""),
@@ -127,7 +127,7 @@ class WorkerThread(QThread):
result = pdd.action(folder_path=folder_path, collect_all_videos=is_batch_mode)
ok = bool(result.get("ok")) if isinstance(result, dict) else True
if not ok:
self.log_message.emit(f"发布校验失败: {result.get('reason') if isinstance(result, dict) else ''}")
self.log_message.emit(f"失败原因: {result.get('reason') if isinstance(result, dict) else ''}")
if isinstance(result, dict):
self.item_result.emit({
"user_id": config.get("多多id", ""),

177
main.py
View File

@@ -366,6 +366,12 @@ class Pdd:
self.page.ele("x://*[text()='签约主播/作者']").click()
logger.info(" ✓ 已点击'签约主播/作者'")
ele = self.page.ele("x://*[text()='我知道了']", timeout=3)
if ele:
ele.click()
logger.info(" ✓ 已关闭提示框")
time.sleep(1)
ele = self.page.ele("x://*[text()='我知道了']", timeout=3)
if ele:
ele.click()
@@ -598,7 +604,7 @@ class Pdd:
# if path_datas:
# creator_tab.ele('x://*[text()="添加图片"]').click.to_upload(path_datas)
time.sleep(3)
time.sleep(1)
# 点击立即发布选项
logger.info("=" * 50)
@@ -624,6 +630,8 @@ class Pdd:
time.sleep(1)
else:
logger.warning(" ✗ 未找到'定时发布'选项")
creator_tab.close()
return {"ok": False, "reason": "定时设置失败:未找到定时发布选项"}
# 获取日期选择器元素
date_picker_ele = creator_tab.ele('x://*[@placeholder="选择日期"]', timeout=3)
@@ -799,32 +807,34 @@ class Pdd:
except Exception as e:
logger.warning(f"点击确认按钮失败: {e}")
# 验证设置是否成功
# 验证设置是否成功(同时校验日期+时间)
time.sleep(0.5)
check_js = """
(function() {
const dateInput = document.querySelector('[data-testid="beast-core-datePicker-htmlInput"]');
return dateInput ? dateInput.value : null;
})();
"""
final_value = creator_tab.run_js(check_js)
if final_value and final_value.strip():
logger.info(f"日期选择器当前值: {final_value}")
# 检查是否匹配(允许时间有小的差异,因为可能只精确到秒)
if final_value.strip().startswith(date_str):
logger.info(f"成功设置定时时间: {final_value}")
else:
logger.warning(f"设置的时间可能不准确,当前值: {final_value}, 期望日期: {date_str}")
ok, reason, actual_date, actual_time = self._verify_schedule_value(
creator_tab, dt, video_container=None
)
if ok:
logger.info(f"成功设置定时时间: {date_str} {time_str}")
else:
logger.error(f"无法获取日期选择器的值,可能设置失败")
logger.warning(
f"设置的时间可能不准确,日期={actual_date} 时间={actual_time}, 期望={date_str} {time_str}"
)
creator_tab.close()
return {"ok": False, "reason": reason}
except ValueError as e:
logger.error(f"时间格式错误: {self.time_start}, 正确格式应为: YYYY-MM-DD HH:MM:SS, 错误: {e}")
creator_tab.close()
return {"ok": False, "reason": "定时设置失败:时间格式错误"}
except Exception as e:
logger.error(f"设置定时时间失败: {e}")
import traceback
traceback.print_exc()
creator_tab.close()
return {"ok": False, "reason": f"定时设置失败:{e}"}
else:
logger.error("未找到日期选择器,可能设置失败")
creator_tab.close()
return {"ok": False, "reason": "定时设置失败:未找到日期选择器"}
# 绑定任务
ele = creator_tab.ele('x://*[text()="点击绑定任务"]', timeout=3)
@@ -1101,15 +1111,62 @@ class Pdd:
try:
# 定位并确认勾选“定时发布”
if not self._ensure_schedule_selected(video_container):
logger.warning("未能切换到定时发布,跳过定时设置")
reason = "定时设置失败:未能切换到定时发布"
logger.warning(f"{reason}")
result_item = {
"index": str(video_info.get("index", "")),
"path": str(video_path),
"name": video_name,
"ok": False,
"reason": reason,
}
results.append(result_item)
if on_item_done and callable(on_item_done):
try:
on_item_done(result_item)
except Exception:
pass
continue
# 设置定时时间
self._set_schedule_time(creator_tab, video_time_start, video_container, idx)
schedule_ok, schedule_reason = self._set_schedule_time(
creator_tab, video_time_start, video_container, idx
)
if not schedule_ok:
reason = schedule_reason or "定时设置失败:未知原因"
logger.warning(f"{reason}")
result_item = {
"index": str(video_info.get("index", "")),
"path": str(video_path),
"name": video_name,
"ok": False,
"reason": reason,
}
results.append(result_item)
if on_item_done and callable(on_item_done):
try:
on_item_done(result_item)
except Exception:
pass
continue
except Exception as e:
logger.warning(f" ✗ 设置定时任务失败: {e}")
import traceback
traceback.print_exc()
result_item = {
"index": str(video_info.get("index", "")),
"path": str(video_path),
"name": video_name,
"ok": False,
"reason": f"定时设置异常: {e}",
}
results.append(result_item)
if on_item_done and callable(on_item_done):
try:
on_item_done(result_item)
except Exception:
pass
continue
else:
logger.info(f" 步骤2: 跳过定时任务(未设置定时时间)")
@@ -1363,7 +1420,7 @@ class Pdd:
if not date_picker_ele:
logger.warning("未找到日期选择器")
return
return False, "定时设置失败:未找到日期选择器"
# 点击日期选择器打开面板
date_picker_ele.click()
@@ -1411,6 +1468,7 @@ class Pdd:
time.sleep(0.5)
else:
logger.warning(f"未找到日期单元格: {day}")
return False, "定时设置失败:未找到日期单元格"
# 点击时间输入框打开时间选择器(优先容器内)
time_input = None
@@ -1439,6 +1497,8 @@ class Pdd:
time.sleep(0.8)
except Exception as e:
logger.warning(f"通过XPath也未能找到时间输入框: {e}")
if not time_input:
return False, "定时设置失败:未找到时间输入框"
# 选择时间
hour_str = f"{hour:02d}"
@@ -1510,6 +1570,7 @@ class Pdd:
# 验证设置是否成功(优先从当前容器读取输入框值)
time.sleep(0.5)
expected_str = dt.strftime("%Y-%m-%d %H:%M:%S")
final_value = None
try:
value_ele = None
@@ -1530,20 +1591,88 @@ class Pdd:
if final_value and str(final_value).strip():
final_value_str = str(final_value).strip()
logger.info(f"日期选择器当前值: {final_value_str}")
if final_value_str.startswith(date_str):
logger.info(f"日期选择器当前值: {final_value_str}, 期望值: {expected_str}")
# 完整比较日期时间字符串
if final_value_str == expected_str:
logger.info(f"成功设置定时时间: {final_value_str}")
return True, ""
else:
logger.warning(f"设置的时间可能不准确,当前值: {final_value_str}, 期望日期: {date_str}")
logger.warning(f"设置的时间可能不准确,当前值: {final_value_str}, 期望: {expected_str}")
return False, f"定时设置失败:期望 {expected_str},实际 {final_value_str}"
else:
logger.error("无法获取日期选择器的值,可能设置失败")
return False, "定时设置失败:无法读取日期选择器值"
except ValueError as e:
logger.error(f"时间格式错误: {time_start}, 正确格式应为: YYYY-MM-DD HH:MM:SS, 错误: {e}")
return False, "定时设置失败:时间格式错误"
except Exception as e:
logger.error(f"设置定时时间失败: {e}")
import traceback
traceback.print_exc()
return False, f"定时设置失败:{e}"
return False, "定时设置失败:未知原因"
def _verify_schedule_value(self, creator_tab, expected_dt, video_container=None):
"""
验证定时时间是否设置正确
Args:
creator_tab: 浏览器标签页对象
expected_dt: 期望的 datetime 对象
video_container: 视频容器元素(可选)
Returns:
(ok, reason, actual_date, actual_time): 验证结果
"""
try:
expected_str = expected_dt.strftime("%Y-%m-%d %H:%M:%S")
expected_date = expected_dt.strftime("%Y-%m-%d")
expected_time = expected_dt.strftime("%H:%M:%S")
# 读取日期时间输入框的值
final_value = None
try:
value_ele = None
if video_container and video_container != creator_tab:
value_ele = video_container.ele(
'x://input[@data-testid="beast-core-datePicker-htmlInput"]',
timeout=1
)
if not value_ele:
value_ele = creator_tab.ele(
'x://input[@data-testid="beast-core-datePicker-htmlInput"]',
timeout=1
)
if value_ele:
final_value = value_ele.attr("value")
except Exception as e:
logger.warning(f"读取日期选择器值失败: {e}")
if not final_value or not str(final_value).strip():
return False, "定时设置失败:无法读取日期选择器值", "", ""
final_value_str = str(final_value).strip()
logger.info(f"日期选择器当前值: {final_value_str}, 期望值: {expected_str}")
# 比较完整的日期时间字符串
if final_value_str == expected_str:
return True, "", final_value_str[:10], final_value_str[11:] if len(final_value_str) > 10 else ""
# 如果完整比较不匹配,尝试分别比较日期和时间
actual_date = final_value_str[:10] if len(final_value_str) >= 10 else final_value_str
actual_time = final_value_str[11:] if len(final_value_str) > 11 else ""
if actual_date == expected_date and actual_time == expected_time:
return True, "", actual_date, actual_time
# 不匹配
reason = f"定时设置失败:期望 {expected_str},实际 {final_value_str}"
return False, reason, actual_date, actual_time
except Exception as e:
logger.error(f"验证定时时间失败: {e}")
return False, f"定时设置失败:验证异常 {e}", "", ""
def _ensure_schedule_selected(self, video_container):
"""确保切换到定时发布选项。"""

View File

@@ -1 +0,0 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJMSUNFTlNFIiwicm9vdF9oYXNoIjoiUGIwc2tBVUxaUzFqWldTQnctV0hIRkltRlhVcExiZDlUcVkwR2ZHSHBWcyJ9LHsicGF0aCI6ImNybC1zZXQiLCJyb290X2hhc2giOiJxc2VZaFhsTXZhQnhNM1Zid3BBSWJqS2poTkpFT01Ea3ZZOWlqQ0lhcDkwIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6IjhJQUFvM29KdGRoOHRGc2pKOTlESkU1eV9SbHhLSWZDVW9oRUdRbkJpeUkifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJoZm5rcGltbGhoZ2llYWRkZ2ZlbWpob2ZtZmJsbW5pYiIsIml0ZW1fdmVyc2lvbiI6IjEwMzA3IiwicHJvdG9jb2xfdmVyc2lvbiI6MX0","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"L9wa9CxYCiLN3LGfDCio34UqBituUk-4k_q3H_PNf_fAhQAbVru03IuMWOOWu4l1Q1aW23z-YMLV4ODnFoTAgGlXO7rjuyAt_5mBt8jluTAe93PHS1P9rKWTqs6Z3qENYaW79ProSkUzUlVrrxL22KmlOxQNTB-xRKyY74MVLQgRdjiaao74MR28V687FfBXhq30HuJSUpe67Kc9s_cv5ljML9CC-zKS7XukzzggnKT015KjBoOasBC4AGKGteBAbg1ZhlYqGBMlCcNIl32a1t1aCtokWRXFpBE3u2QQ7pyC8_v9SjMWw8tS5oqSO39TeN2JQh4cPQLMx4DtJPrbOw"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"exsPHW9GxYkge29gKXpxCyw-Fc5nv9q6wf5yA6pb2nws8hnKA5iyDy4jTFZGZMI8ecuMvbTtNf634nqeuAMVjfY31MpkM6JLOCBolKKt-0UkgDQUcMemUQ2Asz-PrYhyZbkCcHdp3T_0vxH73Yr57hHDWdwy2BL6Grdbc8OW8roMrKCbMoPJql8MKZ44Hz6dha2EeZedhSayroCYO3sVTAxx_yGIhIj461kH1bq7ptp09-Xj17KjSVISAAR9MKGhe6p_hlOraOsVGDBkN0K9ZucjDDjqkruW9mQFJRxStTqYYOziMJ102LrbL_qXjPIttE8MrsLlW73IJg2YXcq82g"}]}}]

View File

@@ -1,5 +0,0 @@
{
"manifest_version": 2,
"name": "crl-set-7963983377537360531.data",
"version": "10307"
}

View File

@@ -0,0 +1 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJMSUNFTlNFIiwicm9vdF9oYXNoIjoiUGIwc2tBVUxaUzFqWldTQnctV0hIRkltRlhVcExiZDlUcVkwR2ZHSHBWcyJ9LHsicGF0aCI6ImNybC1zZXQiLCJyb290X2hhc2giOiI0ZWNUMzVwUGh4UlRKcU9rUUQweVNoMHhzXzcxTTdKNmRnNjZueG5aempVIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6IlJIMVlRXzBIU3dGNURwSk5iekNoMm56Vm9BZXUwb1Q0b04zVHo0S1F3RVUifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJoZm5rcGltbGhoZ2llYWRkZ2ZlbWpob2ZtZmJsbW5pYiIsIml0ZW1fdmVyc2lvbiI6IjEwMzE3IiwicHJvdG9jb2xfdmVyc2lvbiI6MX0","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"ohF-K2Yie2hQxg3R1RvhYHWppQ4MmGr2LVTXFPo52S-GqM0mLP6MWC0TGyxgsCpXfXWHhUZK72mF9qSrMA0mXOVeR5KHnr4In3k1vaaGEUMUBeqHrZ3Qn-jEVwFWk_avIRNbWImcTSysubdPICM5rgpEvIEAnv0qIqQzffAqzZoV10rLyledlch1frqakFK480wXnoRDQpUWmpZjSU8bFJvQ1YlZ4sj8y9qAYlVqSmqedAObjvJyaJvMFGeeF6Sb1-joO2K3fHM4NwsPEFNBvwnqMe1A1ysnScniuX3SSkh-1ilzmTvcbeW275s0lvxhvg_3y12hsLd0CQn3pkbHOQ"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"XWFPSkDyg4OXaK7-QfDKKdG2p5DAm7dZ6EbOR9qluSd1vgsjOcTbCLjSg4S4Supel7MaKWOa9diInmrk84L3vxyVunfg6TbADiM9Zt1BNBItomPqVGdk3KunYJkW599cbCYDBEEXArH5K6zroJ0_fW-tn-YUpNhqrJTMG9rqxi2cYOuLdut344MtHs6gTnlxfT3QJdjw2r-rExaWof_Tp-e3cn3vJOkOd0HZ-g_FYBg-x72EnCdGiXtth2ti2_-YGKg7KmhbB9B46AVD5Dl5oTUIHGf1BY6PSU1V8BJep1XrhEcTqBU9yfpCOM_AREkD5bv_7rDrN5fsTuapVhCIiA"}]}}]

View File

@@ -0,0 +1,5 @@
{
"manifest_version": 2,
"name": "crl-set-14006623799089998022.data",
"version": "10317"
}

View File

@@ -1 +0,0 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJQcmVsb2FkIERhdGEiLCJyb290X2hhc2giOiJXSHROdUEtc2hHdzU2TmpMZk41eDJoZWstSVpScXJSRXhFNndjVkwxRWlNIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6IlZrbnBWZTBSM2p2WE1FQi13YnR5WW16OWlPb1UyaXBDTkN3ajZRUDdlMmcifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJnZ2trZWhnYm5manBlZ2dmcGxlZWFrcGlkYmtpYmJtbiIsIml0ZW1fdmVyc2lvbiI6IjIwMjYuMS4yNi4xMjEiLCJwcm90b2NvbF92ZXJzaW9uIjoxfQ","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"ISqYbRGYOe-GeJoebfdwWGH2Qrl87yXLH_s5_lqr7fC7OFibhbdOW5tCL1dsFiUmvC9rp-b0C7ROrekMLGQDbuHD6F8w_EEEcisWMKSh07GgEQGICV5bYyuQN2vCze_-sJ1-dnSnpyYWSakyM77aerygSNmPswq8gONKOOFrJP1PeC5tMX4cUKMlrPaInePDGdzRnpL6a1li3_ODA8epf-Z9VMa3VyOdqx13t-Tv7grDk3pgp2-kL1WvbJIMRHQRD_MkSfr3WYWz2tMmi1HGpw9OAMJJiGxXzWIJ84192vD-ku2RbNCRZLpD1dfKp81XsJbO0CAOqMwYhfUNsa9y4yIzEl83wDK1kLk9eafT9gBZob4N3x2pELQeYICzvAhMeFGNFSFwrk6vgDVIX85gXwkRQxl9jD1Ei9IKByrFj1iilhsMhrg28DLDPRiB-2erKA4Sx9p9_ijtJ4HeahE_gP49jaOoYb0TfbQPoByMyAyIXIMHl5OwSVVN_66Vue6oo4TJHcQ0tevUUCRcDMTcYiXyB3_DH3MX39o4lhMIZR_Tick2aHJjaS6h6RT578CuZIcOFoTgwMuPagRKZgvaH7_DIqUYYM3on8VYCMoohm7fv5kE4wMSkLsmjcjJzHrIUhrQyK0YeW2goKZKeGGszcwkw8Q71kiooQJRT6rd69Q"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"TEnGDakF38FsBeuLGaS5Hho_1JPJvIV0tSnu_m3OeMkQa6Y1A6Lzc8TPhfMbAXJ3Kp3frE3OzphZwdxyMoEdwQ28yrXDUNI1V6tHJx0USWfvfTCcyunn25SXmDJ4u4Tcrfv2e6ilxmLXkrSIhsNSioW4wDDMWemW-r1q-6V37VXhWVfiAcgA6dIUuEvKuE9iF5NAQN2zbnu6EmfjCvyhMVniQUSfkLMPqdLLlI2jqaORAY3Fq53mRhQ1RFzRiiBmS4zH6mL8oPnIdt4Y8ffU4CafclIbCb8BFb8y98klqihmQGrkp-EIt-YjTGQPzwSe951S-UEerjk5PHSL-3xmkw"}]}}]

View File

@@ -0,0 +1 @@
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJQcmVsb2FkIERhdGEiLCJyb290X2hhc2giOiJUeGdpU0ZBYWpKODA2LUVEdWloeDRJRlVRcTlSVGpPN01hbGlqclFCZWlnIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6IkZjUGhLMkpBS3ktR0ZZNnZMUnlZUlVEeFA2NlREUkl1TmVrYUxhMjJvSW8ifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJnZ2trZWhnYm5manBlZ2dmcGxlZWFrcGlkYmtpYmJtbiIsIml0ZW1fdmVyc2lvbiI6IjIwMjYuMS4yOS4xMjEiLCJwcm90b2NvbF92ZXJzaW9uIjoxfQ","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"SFHAd5HNyGF6WzKgoHt1eoS0rvvBG2vumA6d65sQLv-W5ATuACfZ8tLIuvZsAJTHScHsgFlN5uJalBY_eCM2eanEz0wGERmmwhPHeLDxDSUSLbpxAvAtaYWsncYN5zfbPNlhDGgvBX2S2r0a4qDGwCJeczD_N9Z3DsLwM7q57wyx1SUSqvKp4eb8dtF674SA6F8WNCgeeGWaFaSh_DWE9HxQ03TDu10P382wcrazb7Q2kzOlNdTwesOC1wrHum1O7iRvyic_traTIzyRqkEUVgHVvLjbW3jHzJ2TRAXeSGS0QRF8yBqcziae0hSg7NxGq2N3SbYtJHCJRuOZAg2t4O9suBSetyKrAp7Z14qxOqdS8LcguVD4saOJLma6zK3NrGcgoqdTD-rFHpmVpxakPe9XqljJTprmlXWY95opJ-A966NFFbHOPMpEd8enLZlylwcqOpRGbVYY9SoE0BADiGaP9mlc1SJz4G52TXjn7M4XV-K_wC9UXxrxNlqsulu6awmAKNTYzEe9HfmV-yW99anvv2gZwiLac2_yDFID-ShW0SEDIwF_ry067tLgfHcGHYXrmFm6zuAxx-XpRQx9ugcPy5Uj7WVriCqdQwh0YIkXKRNHGHe-HptZZHW3fjQnVAzVqmoZgnai3_cx_gVAS19yjKWqVsxm-8aP5GojXnk"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"PZCAwXm-Vmnm7yWCX4Nm3HvC6URnq66WpSQCwHhr3Q3d3wWCS7QmYoOGoSZHAT2TmXN3lsxLWmuy-EhkR0p-muwS8wwLgrsEEY3bIQDGYAifwzwl1iAcySVaM-rYQKz5VblYu_DH0nH2IjaT1kiElo0OwosjoFPdPe4Q_0sgDBijkqCgDd77ajyHyixi1mZ9r-TQczeC_CgSV2bBx1Q8GuiwV28jlZRx0s6parboDAaFA1dcwmDq4rixxJB_2zK4IwNDsYIjLBGYwfdEE_x_eLcGFQyC-09dLdK40iEPqN1eIFZd1jLFtgLiNMWy-jmhIILjsHRk_-Bxd7X3TdCiyA"}]}}]

View File

@@ -2,5 +2,5 @@
"manifest_version": 2,
"name": "Crowd Deny",
"preload_data_format": 1,
"version": "2026.1.26.121"
"version": "2026.1.29.121"
}

View File

@@ -22,5 +22,5 @@
"top_topics_and_observing_domains": [ ]
} ],
"hex_encoded_hmac_key": "434BF7DBD7DA573B45E0A11AD9045A61B6221D14AE2F9A341E2FEF659AF071F6",
"next_scheduled_calculation_time": "13414862793246352"
"next_scheduled_calculation_time": "13414862793246458"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 603 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Some files were not shown because too many files have changed in this diff Show More