ksaa 2025.9b1__py3-none-any.whl → 2025.9b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kotonebot/kaa → kaa}/application/core/idle_mode.py +1 -1
- {kotonebot/kaa → kaa}/application/core/misc_core.py +1 -1
- {kotonebot/kaa → kaa}/common.py +2 -2
- {kotonebot/kaa → kaa}/config/const.py +1 -1
- {kotonebot/kaa → kaa}/config/produce.py +1 -1
- {kotonebot/kaa → kaa}/config/schema.py +10 -1
- {kotonebot/kaa → kaa}/db/sqlite.py +1 -1
- {kotonebot/kaa → kaa}/errors.py +7 -0
- {kotonebot/kaa → kaa}/game_ui/dialog.py +1 -1
- {kotonebot/kaa → kaa}/game_ui/idols_overview.py +4 -4
- {kotonebot/kaa → kaa}/game_ui/schedule.py +2 -2
- {kotonebot/kaa → kaa}/game_ui/scrollable.py +4 -3
- {kotonebot/kaa → kaa}/image_db/db.py +1 -1
- {kotonebot/kaa → kaa}/main/gr.py +36 -14
- {kotonebot/kaa → kaa}/main/kaa.py +2 -2
- {kotonebot/kaa → kaa}/metadata.py +21 -0
- kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- {kotonebot/kaa → kaa}/resources/game.db +0 -0
- kaa/resources/game_ver.txt +0 -0
- kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
- kaa/sprites/207594fa-6a0b-45ec-aeff-b3e45348c508.png +0 -0
- {kotonebot/kaa → kaa}/tasks/R.py +129 -127
- {kotonebot/kaa → kaa}/tasks/actions/commu.py +3 -3
- {kotonebot/kaa → kaa}/tasks/actions/loading.py +1 -1
- {kotonebot/kaa → kaa}/tasks/actions/scenes.py +3 -3
- {kotonebot/kaa → kaa}/tasks/actions/stats.py +1 -1
- {kotonebot/kaa → kaa}/tasks/daily/acquire_activity_funds.py +2 -2
- {kotonebot/kaa → kaa}/tasks/daily/acquire_presents.py +2 -2
- {kotonebot/kaa → kaa}/tasks/daily/assignment.py +2 -2
- {kotonebot/kaa → kaa}/tasks/daily/capsule_toys.py +4 -3
- {kotonebot/kaa → kaa}/tasks/daily/club_reward.py +3 -3
- {kotonebot/kaa → kaa}/tasks/daily/contest.py +4 -4
- {kotonebot/kaa → kaa}/tasks/daily/mission_reward.py +2 -2
- {kotonebot/kaa → kaa}/tasks/daily/purchase.py +2 -2
- {kotonebot/kaa → kaa}/tasks/daily/upgrade_support_card.py +3 -3
- {kotonebot/kaa → kaa}/tasks/end_game.py +1 -1
- {kotonebot/kaa → kaa}/tasks/produce/cards.py +15 -8
- {kotonebot/kaa → kaa}/tasks/produce/common.py +7 -7
- {kotonebot/kaa → kaa}/tasks/produce/in_purodyuusu.py +94 -71
- {kotonebot/kaa → kaa}/tasks/produce/non_lesson_actions.py +5 -5
- {kotonebot/kaa → kaa}/tasks/produce/p_drink.py +1 -1
- {kotonebot/kaa → kaa}/tasks/produce/produce.py +10 -10
- {kotonebot/kaa → kaa}/tasks/start_game.py +9 -7
- {kotonebot/kaa → kaa}/util/paths.py +1 -1
- {ksaa-2025.9b1.dist-info → ksaa-2025.9b2.dist-info}/METADATA +2 -1
- ksaa-2025.9b2.dist-info/RECORD +519 -0
- ksaa-2025.9b2.dist-info/entry_points.txt +2 -0
- ksaa-2025.9b2.dist-info/top_level.txt +1 -0
- kotonebot/__init__.py +0 -40
- kotonebot/backend/bot.py +0 -302
- kotonebot/backend/color.py +0 -525
- kotonebot/backend/context/__init__.py +0 -3
- kotonebot/backend/context/context.py +0 -1001
- kotonebot/backend/context/task_action.py +0 -176
- kotonebot/backend/core.py +0 -126
- kotonebot/backend/debug/__init__.py +0 -1
- kotonebot/backend/debug/entry.py +0 -89
- kotonebot/backend/debug/mock.py +0 -79
- kotonebot/backend/debug/server.py +0 -223
- kotonebot/backend/debug/vars.py +0 -346
- kotonebot/backend/dispatch.py +0 -228
- kotonebot/backend/flow_controller.py +0 -197
- kotonebot/backend/image.py +0 -748
- kotonebot/backend/loop.py +0 -277
- kotonebot/backend/ocr.py +0 -511
- kotonebot/backend/preprocessor.py +0 -103
- kotonebot/client/__init__.py +0 -10
- kotonebot/client/device.py +0 -500
- kotonebot/client/fast_screenshot.py +0 -378
- kotonebot/client/host/__init__.py +0 -12
- kotonebot/client/host/adb_common.py +0 -94
- kotonebot/client/host/custom.py +0 -114
- kotonebot/client/host/leidian_host.py +0 -202
- kotonebot/client/host/mumu12_host.py +0 -245
- kotonebot/client/host/protocol.py +0 -213
- kotonebot/client/host/windows_common.py +0 -55
- kotonebot/client/implements/__init__.py +0 -7
- kotonebot/client/implements/adb.py +0 -85
- kotonebot/client/implements/adb_raw.py +0 -159
- kotonebot/client/implements/nemu_ipc/__init__.py +0 -8
- kotonebot/client/implements/nemu_ipc/external_renderer_ipc.py +0 -280
- kotonebot/client/implements/nemu_ipc/nemu_ipc.py +0 -327
- kotonebot/client/implements/remote_windows.py +0 -193
- kotonebot/client/implements/uiautomator2.py +0 -82
- kotonebot/client/implements/windows.py +0 -168
- kotonebot/client/protocol.py +0 -69
- kotonebot/client/registration.py +0 -24
- kotonebot/config/__init__.py +0 -1
- kotonebot/config/base_config.py +0 -96
- kotonebot/config/manager.py +0 -36
- kotonebot/debug_entry.py +0 -42
- kotonebot/errors.py +0 -72
- kotonebot/interop/win/message_box.py +0 -314
- kotonebot/interop/win/reg.py +0 -37
- kotonebot/interop/win/shortcut.py +0 -43
- kotonebot/interop/win/task_dialog.py +0 -469
- kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- kotonebot/kaa/resources/game_ver.txt +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-011_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-011_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-014_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-014_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-014_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-014_1.png +0 -0
- kotonebot/kaa/tasks/actions/__init__.py +0 -0
- kotonebot/kaa/tasks/daily/__init__.py +0 -0
- kotonebot/kaa/tasks/produce/__init__.py +0 -0
- kotonebot/logging/__init__.py +0 -2
- kotonebot/logging/log.py +0 -18
- kotonebot/primitives/__init__.py +0 -17
- kotonebot/primitives/geometry.py +0 -290
- kotonebot/primitives/visual.py +0 -63
- kotonebot/tools/__init__.py +0 -0
- kotonebot/tools/mirror.py +0 -354
- kotonebot/ui/__init__.py +0 -0
- kotonebot/ui/file_host/sensio.py +0 -36
- kotonebot/ui/file_host/tmp_send.py +0 -54
- kotonebot/ui/pushkit/__init__.py +0 -3
- kotonebot/ui/pushkit/image_host.py +0 -87
- kotonebot/ui/pushkit/protocol.py +0 -13
- kotonebot/ui/pushkit/wxpusher.py +0 -53
- kotonebot/ui/user.py +0 -144
- kotonebot/util.py +0 -409
- ksaa-2025.9b1.dist-info/RECORD +0 -757
- ksaa-2025.9b1.dist-info/entry_points.txt +0 -2
- ksaa-2025.9b1.dist-info/top_level.txt +0 -1
- {kotonebot/kaa → kaa}/application/adapter/misc_adapter.py +0 -0
- {kotonebot/kaa → kaa}/config/__init__.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/__init__.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/_idol.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/_v1_to_v2.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/_v2_to_v3.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/_v3_to_v4.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/_v4_to_v5.py +0 -0
- {kotonebot/kaa → kaa}/config/migrations/_v5_to_v6.py +0 -0
- {kotonebot/kaa → kaa}/config/upgrade.py +0 -0
- {kotonebot/kaa → kaa}/db/__init__.py +0 -0
- {kotonebot/kaa → kaa}/db/constants.py +0 -0
- {kotonebot/kaa → kaa}/db/idol_card.py +0 -0
- {kotonebot/kaa → kaa}/game_ui/__init__.py +0 -0
- {kotonebot/kaa → kaa}/game_ui/badge.py +0 -0
- {kotonebot/kaa → kaa}/game_ui/common.py +0 -0
- {kotonebot/kaa → kaa}/game_ui/commu_event_buttons.py +0 -0
- {kotonebot/kaa → kaa}/game_ui/primary_button.py +0 -0
- {kotonebot/kaa → kaa}/game_ui/toolbar.py +0 -0
- {kotonebot/kaa → kaa}/image_db/__init__.py +0 -0
- {kotonebot/kaa → kaa}/image_db/descriptors/__init__.py +0 -0
- {kotonebot/kaa → kaa}/image_db/descriptors/hist.py +0 -0
- {kotonebot/kaa → kaa}/kaa_context.py +0 -0
- {kotonebot/kaa → kaa}/main/__init__.py +0 -0
- {kotonebot/kaa → kaa}/main/cli.py +0 -0
- {kotonebot/kaa → kaa}/main/dmm_host.py +0 -0
- {kotonebot/backend → kaa/resources}/__init__.py +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-003_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-003_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-006_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-006_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-007_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-007_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-008_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-008_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-009_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-009_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-010_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-010_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-011_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-011_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-012_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-012_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-013_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-amao-3-013_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-003_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-003_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-006_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-006_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-007_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-007_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-008_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-008_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-009_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-009_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-010_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-010_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-011_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-011_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-012_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-012_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-013_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-013_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-014_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-015_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-fktn-3-015_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-010_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-010_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-012_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hmsz-3-012_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-003_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-003_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-004_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-004_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-006_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-006_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-007_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-007_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-008_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-008_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-009_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-009_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-010_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-010_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-011_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-011_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-012_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-012_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-014_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hrnm-3-014_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-003_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-003_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-006_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-006_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-007_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-007_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-008_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-008_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-009_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-009_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-010_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-010_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-011_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-011_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-012_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-012_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-013_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-013_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-014_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hski-3-014_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-004_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-004_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-006_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-006_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-011_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-011_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-012_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-012_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-013_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-013_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-014_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-hume-3-014_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-1-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-1-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-1-001_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-1-001_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-2-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-2-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-000_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-000_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-002_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-002_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-003_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-003_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-004_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-004_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-005_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-005_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-006_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-006_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-007_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-007_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-008_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-008_1.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-010_0.png +0 -0
- {kotonebot/kaa → kaa}/resources/idol_cards/i_card-skin-jsna-3-010_1.png +0 -0
- {kotonebot/kaa → kaa}/sprites/00551158-fee9-483f-b034-549139a96f58.png +0 -0
- /kotonebot/kaa/sprites/d5c4ef47-257f-49a2-81e3-ba7ab6fa0f62.png → /kaa/sprites/0078d85c-3f22-4d65-834d-bef862386c28.png +0 -0
- /kotonebot/kaa/sprites/003c315c-418c-410e-ba45-290150097a25.png → /kaa/sprites/01621013-b0e9-49bb-b7c1-296d1c8e7c4d.png +0 -0
- /kotonebot/kaa/sprites/a4b50bf5-7dfe-4bbb-8bd7-528c9147b71e.png → /kaa/sprites/03ea1e8a-93e4-41c2-940c-6738de3519ad.png +0 -0
- /kotonebot/kaa/sprites/11c5034e-d258-422d-850c-a4495b346778.png → /kaa/sprites/03f1e81a-e762-45bd-b8fc-a5ccd99413f2.png +0 -0
- {kotonebot/kaa → kaa}/sprites/05890a1b-8764-4e9f-9d21-65d292c22e13.png +0 -0
- {kotonebot/kaa → kaa}/sprites/0949c622-9067-4f0d-bac2-3f938a1d2ed2.png +0 -0
- {kotonebot/kaa → kaa}/sprites/0bf5e34e-afc6-4447-bbac-67026ce2ad26.png +0 -0
- {kotonebot/kaa → kaa}/sprites/0c0627be-4a09-4450-a078-1858d3ace532.png +0 -0
- /kotonebot/kaa/sprites/22bda7ef-ad0d-4020-a667-6ae77b4805ca.png → /kaa/sprites/0c5871f8-7b83-458e-93ea-87dd96b4e714.png +0 -0
- {kotonebot/kaa → kaa}/sprites/0d9ac648-eefa-4869-ac99-1b0c83649681.png +0 -0
- /kotonebot/kaa/sprites/23b37aad-1de3-43e2-84e6-78f6f0f28fba.png → /kaa/sprites/0e311fd9-5027-4fe9-9701-f6ace207a47f.png +0 -0
- {kotonebot/kaa → kaa}/sprites/0f7d581d-cea3-4039-9205-732e4cd29293.png +0 -0
- /kotonebot/kaa/sprites/5d51ee71-a2fb-414a-ab48-c5d3c1a3b945.png → /kaa/sprites/1201b142-fccd-497d-b082-95c8f3dfd46b.png +0 -0
- /kotonebot/kaa/sprites/aee9d67f-d6be-4cf5-9c30-331f6d5f0f84.png → /kaa/sprites/13b4ec6d-855e-457a-bc46-ec07bbae2555.png +0 -0
- /kotonebot/kaa/sprites/835e3ad1-8f73-4e2e-bdd5-9a5fb866858f.png → /kaa/sprites/141ebd00-0572-4186-9e46-caaf2d1f1920.png +0 -0
- {kotonebot/kaa → kaa}/sprites/1652f06a-5417-49ef-8949-4854772d9ab7.png +0 -0
- {kotonebot/kaa → kaa}/sprites/16fbc93d-b294-4001-b4e9-ee2af181415f.png +0 -0
- {kotonebot/kaa → kaa}/sprites/185f7838-92a7-460b-9340-f60858948ce9.png +0 -0
- {kotonebot/kaa → kaa}/sprites/1926f2f9-4bd7-48eb-9eba-28ec4efb0606.png +0 -0
- /kotonebot/kaa/sprites/6774c674-5100-4422-a82b-deb9bd5d49ee.png → /kaa/sprites/19e5119b-2fcf-4e07-b67f-e78bba0adcf1.png +0 -0
- /kotonebot/kaa/sprites/23f8844e-9272-4a5c-badf-a30676fd22da.png → /kaa/sprites/1a0708a6-9b04-4bf5-9e50-7c548a8e37f8.png +0 -0
- /kotonebot/kaa/sprites/4b595d09-a5ed-47d6-9c7b-e471792db801.png → /kaa/sprites/1b8104bd-f872-4618-b7ca-fe334fd14dc8.png +0 -0
- /kotonebot/kaa/sprites/c41567a3-84bf-4e71-9eb1-f577c0348215.png → /kaa/sprites/1c0a4be2-be62-4c06-964f-b2de5d7860c3.png +0 -0
- /kotonebot/kaa/sprites/62390db3-c5bc-4868-bfb3-958acceff9cd.png → /kaa/sprites/1de78cb8-fa69-4226-952a-50bbb20fc7dd.png +0 -0
- /kotonebot/kaa/sprites/112f47b8-e71f-426f-9081-0c8efb6ced72.png → /kaa/sprites/1e7f4639-0d64-46dc-977f-79dc7ccb7043.png +0 -0
- /kotonebot/kaa/sprites/9cdd7af5-0e25-4226-8c7b-93c8c633c27b.png → /kaa/sprites/1fa1f7da-0f8d-40f0-ac59-84007fe005cb.png +0 -0
- {kotonebot/kaa → kaa}/sprites/213016c2-c3a2-43d8-86a3-ab4d27666ced.png +0 -0
- /kotonebot/kaa/sprites/bd101208-a87c-405c-987a-d46e1b6f0358.png → /kaa/sprites/22263c0e-6c8a-45ac-8b26-6fe3af677496.png +0 -0
- /kotonebot/kaa/sprites/6588da9e-a9b5-4313-9f67-e03f213f3fa4.png → /kaa/sprites/23937cf2-9324-4d7d-b87f-17e571e8bb11.png +0 -0
- {kotonebot/kaa → kaa}/sprites/23d88465-65d9-4718-8725-8dbf0a98a5a4.png +0 -0
- /kotonebot/kaa/sprites/2ad65f0c-3b9c-46ad-808e-11c6d6db7417.png → /kaa/sprites/246b641d-5cfc-4f06-8f89-1f041a69ea1d.png +0 -0
- {kotonebot/kaa → kaa}/sprites/24dc7158-036c-4a66-9280-e934f470be53.png +0 -0
- {kotonebot/kaa → kaa}/sprites/24e99232-9434-457f-a9a0-69dd7ecf675f.png +0 -0
- {kotonebot/kaa → kaa}/sprites/25f00ee3-8dfe-42d1-a67e-191fa5c3df4b.png +0 -0
- /kotonebot/kaa/sprites/fbba87fb-50e5-4c2f-9218-82f1ffb7a5ba.png → /kaa/sprites/2751a3b3-0184-45fd-bfd5-c1fc75436c05.png +0 -0
- /kotonebot/kaa/sprites/d5ad9b97-3175-4c49-a1f7-5da663125af3.png → /kaa/sprites/293fdb6c-9ea9-4471-be88-bdb69ef7e55a.png +0 -0
- {kotonebot/kaa → kaa}/sprites/2bd6fe88-99fa-443d-8e42-bb3de5881213.png +0 -0
- /kotonebot/kaa/sprites/8e6b9237-f94a-4e21-9b2c-45e3d4833b6d.png → /kaa/sprites/2c722ef4-b6c0-4e48-b6e3-78c187e0cf1a.png +0 -0
- /kotonebot/kaa/sprites/8df4515c-ff60-432c-a624-ae3658bf7e0c.png → /kaa/sprites/2c7da64b-4a9a-46ee-a8c2-7fe6d5ca61e2.png +0 -0
- /kotonebot/kaa/sprites/1b39e16c-d8e2-4f4c-bc6d-a4511184f8af.png → /kaa/sprites/2ed36417-e2aa-45c6-8fc0-aca1a47f3106.png +0 -0
- {kotonebot/kaa → kaa}/sprites/2ededcf5-1d80-4e2a-9c83-2a31998331ce.png +0 -0
- /kotonebot/kaa/sprites/53d082f9-9cac-4ca0-b166-3a3599c4f757.png → /kaa/sprites/2f5377ec-e08d-47f4-bf60-928961957b8d.png +0 -0
- {kotonebot/kaa → kaa}/sprites/303cccc1-c674-4d3a-8c89-19ea729fdbef.png +0 -0
- {kotonebot/kaa → kaa}/sprites/30a6f399-6999-4f04-bb77-651e0214112f.png +0 -0
- /kotonebot/kaa/sprites/1b82310e-8422-4be6-b31b-bc7693def4e4.png → /kaa/sprites/316fe4ed-272a-4c6a-8822-1a8edf296293.png +0 -0
- /kotonebot/kaa/sprites/4af83157-f237-4072-a732-1e59814485e7.png → /kaa/sprites/360e32a4-0f22-42da-9da0-fca8d2da6020.png +0 -0
- /kotonebot/kaa/sprites/e0effef4-869d-4a0c-8db3-1c41cd255555.png → /kaa/sprites/37e7c488-7ad6-447e-a37f-75c2553a4a89.png +0 -0
- {kotonebot/kaa → kaa}/sprites/3942ae40-7f22-412c-aebe-4b064f68db9b.png +0 -0
- {kotonebot/kaa → kaa}/sprites/3b473fe6-e147-477f-b088-9b8fb042a4f6.png +0 -0
- {kotonebot/kaa → kaa}/sprites/3c8b477a-8eda-407e-9e9f-7540c8808f89.png +0 -0
- /kotonebot/kaa/sprites/16d914f3-c3be-479e-932a-4c336c08b94e.png → /kaa/sprites/3c8e18ba-a948-4885-8d07-285faf7a9f32.png +0 -0
- /kotonebot/kaa/sprites/b53035c7-43a6-4d83-a51c-dd6b7cd14a1e.png → /kaa/sprites/3da3fd94-081d-4e90-8c11-0ff5f9e216eb.png +0 -0
- /kotonebot/kaa/sprites/76a65fb7-4429-4288-a164-bd121974ee6b.png → /kaa/sprites/3ef0ee98-7572-40df-b608-8cf6e76a2bc7.png +0 -0
- {kotonebot/kaa → kaa}/sprites/3f637e86-6b74-4693-9131-1fe411fc21e5.png +0 -0
- /kotonebot/kaa/sprites/d7e25596-8452-4eb3-aaa8-5997be3dd851.png → /kaa/sprites/3f91c443-cd32-4048-8dbe-ffa1459171b1.png +0 -0
- {kotonebot/kaa → kaa}/sprites/4096cffa-a889-4622-852e-760fc7022d93.png +0 -0
- /kotonebot/kaa/sprites/783cbcad-eefc-4a04-910e-9ff4288d3c18.png → /kaa/sprites/41ff7111-553e-48f7-9fb7-7eb071264c20.png +0 -0
- /kotonebot/kaa/sprites/78a12e3b-ac32-4e96-8998-30f92318a36b.png → /kaa/sprites/4231568f-b383-4944-99de-0589bb24aa2e.png +0 -0
- /kotonebot/kaa/sprites/0519d61c-0451-42a2-96ed-baa5ef026655.png → /kaa/sprites/42b85806-07f6-4dad-8f03-664c93546d1d.png +0 -0
- {kotonebot/kaa → kaa}/sprites/447d0e44-5d87-4b7c-8e60-edb111fe1639.png +0 -0
- {kotonebot/kaa → kaa}/sprites/44ba8515-4a60-42c9-8878-b42e4e34ee15.png +0 -0
- {kotonebot/kaa → kaa}/sprites/4503db6b-7224-4b81-9971-e7cfa56e10f2.png +0 -0
- {kotonebot/kaa → kaa}/sprites/4695f96b-c4f5-4bb6-a021-a13b6ceb2883.png +0 -0
- {kotonebot/kaa → kaa}/sprites/4883c564-f950-4a29-9f5f-6f924123cd22.png +0 -0
- /kotonebot/kaa/sprites/c6649b6a-7d03-454c-902b-7462092878df.png → /kaa/sprites/499d34e9-3f0f-4ff6-b0d6-44ee4919c9c0.png +0 -0
- {kotonebot/kaa → kaa}/sprites/4d78add6-1027-4939-bb51-f99fca7db2ce.png +0 -0
- /kotonebot/kaa/sprites/3de9bd37-90ef-45ec-88c0-03c4fd50fb51.png → /kaa/sprites/4f7fa41d-a32b-4090-badb-05336cf67620.png +0 -0
- {kotonebot/kaa → kaa}/sprites/5031808b-5525-4118-92b4-317ec8bda985.png +0 -0
- {kotonebot/kaa → kaa}/sprites/50e23c8a-7ba2-4c9c-9cfb-196c260fa1d5.png +0 -0
- /kotonebot/kaa/sprites/848c8b04-c953-473d-94b1-2a2d5cdbd9c4.png → /kaa/sprites/550d0d4e-9c71-465a-a9ab-a64a25a1c958.png +0 -0
- /kotonebot/kaa/sprites/75f0339c-9acf-4971-a3c2-e302f56b1f93.png → /kaa/sprites/55efbfcf-96c1-45f1-a7bc-3a922c9cf22f.png +0 -0
- {kotonebot/kaa → kaa}/sprites/55f7db71-0a18-4b3d-b847-57959b8d2e32.png +0 -0
- /kotonebot/kaa/sprites/8e7b53fd-d962-43b7-a203-3d480c649c83.png → /kaa/sprites/5615c359-ccc0-469a-82d0-6002c117f4a0.png +0 -0
- {kotonebot/kaa → kaa}/sprites/582d36c0-0916-4706-9833-4fbc026701f5.png +0 -0
- /kotonebot/kaa/sprites/4e284d43-9d58-4afa-be66-b61825ef2be3.png → /kaa/sprites/59123d3e-4b29-4f25-b561-ac9bcd70640e.png +0 -0
- /kotonebot/kaa/sprites/0c2a1e9f-85be-4fec-a8ae-4e417c58d5a5.png → /kaa/sprites/5ca94c3e-908d-49c9-803e-0d75dd56ee9d.png +0 -0
- {kotonebot/kaa → kaa}/sprites/5d36b880-7b3f-49b1-a018-7de59867d376.png +0 -0
- {kotonebot/kaa → kaa}/sprites/5ebcde3b-f0fd-4e5d-b3de-ada8f0b5e03b.png +0 -0
- /kotonebot/kaa/sprites/704bf40a-4125-4260-9dd7-fa8ac13f00df.png → /kaa/sprites/64396919-34c4-44ff-b39a-c126a7d6b73f.png +0 -0
- /kotonebot/kaa/sprites/5c926d27-63c7-466f-9e34-65144153e0d2.png → /kaa/sprites/64d5db07-ac11-4c55-979e-87f7205287a8.png +0 -0
- /kotonebot/kaa/sprites/105df024-ece9-4c9c-9479-9f7423f4abec.png → /kaa/sprites/65769b32-57b7-4e63-bda9-11cd96525831.png +0 -0
- /kotonebot/kaa/sprites/37d24544-1791-474d-8f74-b1dbe0dd3c6b.png → /kaa/sprites/6670deb8-5f26-4efe-bc8b-65283073851a.png +0 -0
- /kotonebot/kaa/sprites/c5127f24-fa81-4d61-876f-ac0a377bf00e.png → /kaa/sprites/670f3fea-6ac8-4ac5-bb5c-058a52239412.png +0 -0
- /kotonebot/kaa/sprites/2704de68-4349-4695-8102-4dcd93fe82c7.png → /kaa/sprites/674ab5dd-4c63-484d-9f68-7c601d5cf0c7.png +0 -0
- /kotonebot/kaa/sprites/0d1ecf0b-b090-42b2-b895-cb1f5b415af8.png → /kaa/sprites/6996ae36-4f49-4e60-baef-f481142d8afa.png +0 -0
- {kotonebot/kaa → kaa}/sprites/6b58d90d-2e5e-4b7f-bc01-941f2633de89.png +0 -0
- {kotonebot/kaa → kaa}/sprites/6cd80be8-c9b3-4ba5-bf17-3ffc9b000743.png +0 -0
- /kotonebot/kaa/sprites/ea7dd69b-b02f-499d-acee-6bd35a033a73.png → /kaa/sprites/6e158fab-4d9b-4557-8ea7-eabc94bb83c5.png +0 -0
- /kotonebot/kaa/sprites/0d39671a-cfa3-4832-93e8-6ab61cece799.png → /kaa/sprites/6f6f8f1d-cfa6-4d53-abf9-910c4a12739f.png +0 -0
- {kotonebot/kaa → kaa}/sprites/70898bf8-56c5-4f84-becb-629c9ab6a7da.png +0 -0
- /kotonebot/kaa/sprites/ac02de52-42fa-4767-81f8-97fbac3bd8a0.png → /kaa/sprites/716fbc7f-beda-4482-8c59-699b87778309.png +0 -0
- /kotonebot/kaa/sprites/84795df2-e6d9-40fb-aef5-98fbf9c17399.png → /kaa/sprites/71b3edaf-e384-452e-96b0-096d92c4c298.png +0 -0
- /kotonebot/kaa/sprites/3868b12d-8d93-4754-91bd-797680d24e22.png → /kaa/sprites/7300a151-0fc1-4261-b98e-ff3e8077eaee.png +0 -0
- /kotonebot/kaa/sprites/8498ac20-4ec2-474b-961f-cbf488da9a23.png → /kaa/sprites/73b16c0e-2bc6-4e8e-b678-00af0c9c3e0d.png +0 -0
- /kotonebot/kaa/sprites/a8aacbc9-1238-414c-b1e6-5ea1a01407c2.png → /kaa/sprites/73fba395-96ee-45ab-bca8-9426a0504fed.png +0 -0
- {kotonebot/kaa → kaa}/sprites/74ec3510-583d-4a76-ac69-38480fbf1387.png +0 -0
- /kotonebot/kaa/sprites/a0ddc404-a653-4d76-842f-faf7f93851ed.png → /kaa/sprites/773c7946-041e-40b3-b951-229aed614dbe.png +0 -0
- /kotonebot/kaa/sprites/12d59cc0-cef6-472d-b424-edaae52463ca.png → /kaa/sprites/78bea52e-d7d0-4b99-8f89-e89324527611.png +0 -0
- {kotonebot/kaa → kaa}/sprites/79abd239-5eed-4195-9fa8-d729daa874ca.png +0 -0
- /kotonebot/kaa/sprites/1d25aa70-8137-4c63-8dcf-a5b5a8f950e6.png → /kaa/sprites/7a5eff9d-4e2d-4f8f-bdf2-d81a15d9cc6d.png +0 -0
- /kotonebot/kaa/sprites/13338d14-2b0d-4630-a5d2-dc273f62524e.png → /kaa/sprites/7bc266f0-0166-4bd4-a8c2-0d5555e6d74d.png +0 -0
- /kotonebot/kaa/sprites/b94087df-db46-4ae3-bf93-8548a25a1a23.png → /kaa/sprites/7bcaf86b-8594-40fb-9f06-a7ffeb0bd10e.png +0 -0
- /kotonebot/kaa/sprites/1e324ce8-b56f-45d5-9476-713dabfdecf9.png → /kaa/sprites/7e7f553f-8f93-400a-b70c-644df794ddfa.png +0 -0
- /kotonebot/kaa/sprites/a3f07286-a699-4f5c-9912-835b3781b4f7.png → /kaa/sprites/7ee5bce2-9c00-4a1b-91f3-3de0dd1821ac.png +0 -0
- /kotonebot/kaa/sprites/d37153d2-f699-4608-abbf-43d6bd8b1469.png → /kaa/sprites/802cd7cb-066a-49b5-a0c3-3da0eab9d674.png +0 -0
- /kotonebot/kaa/sprites/564e9739-a90d-4c17-9d29-b3edb6aef1e9.png → /kaa/sprites/808e16c7-e112-4928-a03f-23a5fcbe0b24.png +0 -0
- {kotonebot/kaa → kaa}/sprites/81c97cd3-df53-44d3-bf3d-1eb4dc67b62a.png +0 -0
- {kotonebot/kaa → kaa}/sprites/835489e2-b29b-426c-b4c9-3bb9f8eb6195.png +0 -0
- {kotonebot/kaa → kaa}/sprites/83d0a033-466c-463a-bb8c-be0f2953e9b2.png +0 -0
- {kotonebot/kaa → kaa}/sprites/8424ecdd-8857-4764-9fd0-d4bfa440c128.png +0 -0
- /kotonebot/kaa/sprites/8cb9d744-6b49-452b-b0b6-e441446050ef.png → /kaa/sprites/85a9ee57-a69d-452c-9533-3913dd4af5e8.png +0 -0
- /kotonebot/kaa/sprites/e8407109-ffa8-496b-a499-e78db90db540.png → /kaa/sprites/85dad1b9-edfb-44f9-b59d-c92a90ed0d13.png +0 -0
- /kotonebot/kaa/sprites/b45b4340-65ce-49df-a265-9f3cd876fced.png → /kaa/sprites/8660b8a5-dce0-4e34-a0b4-5cbee251cc9d.png +0 -0
- /kotonebot/kaa/sprites/a4c42000-2421-4b02-b83e-60e1397304b0.png → /kaa/sprites/8795c644-edd9-4930-b307-e02b8df8f63c.png +0 -0
- {kotonebot/kaa → kaa}/sprites/8c179a21-be6f-4db8-a9b0-9afeb5c36b1c.png +0 -0
- /kotonebot/kaa/sprites/92c1a9ba-994b-4635-b1b6-1fa157f227f6.png → /kaa/sprites/8c32afab-a759-4d17-bb09-5ee4f78bc094.png +0 -0
- /kotonebot/kaa/sprites/002e7b92-11f4-487a-af55-334663e2b8cd.png → /kaa/sprites/8c3412f5-77a4-4d95-96fc-af9c562e73b9.png +0 -0
- {kotonebot/kaa → kaa}/sprites/8ded6c98-85ea-4858-a66d-4fc8caecb7c5.png +0 -0
- {kotonebot/kaa → kaa}/sprites/8f8b7b46-53bb-42ab-907a-4ea87eb09ab4.png +0 -0
- /kotonebot/kaa/sprites/d3bfc1c2-a202-42c2-9e19-61b949a340c7.png → /kaa/sprites/8fbb1d42-c540-4e2a-91b1-871ca77ecdb1.png +0 -0
- /kotonebot/kaa/sprites/85f1cf4f-7d07-403a-917b-02b273680c21.png → /kaa/sprites/919e00d2-7319-4541-bdc5-8d398d4759ce.png +0 -0
- {kotonebot/kaa → kaa}/sprites/921eefeb-730e-46fc-9924-d338fb286592.png +0 -0
- {kotonebot/kaa → kaa}/sprites/9340b854-025c-40da-9387-385d38433bef.png +0 -0
- {kotonebot/kaa → kaa}/sprites/9483fae5-3a72-4684-9403-d25d2c602d3d.png +0 -0
- /kotonebot/kaa/sprites/a1087827-1065-4f35-b04f-854ddf2d7e70.png → /kaa/sprites/998391fa-c5a6-40cb-80d6-3b1c75a3fa91.png +0 -0
- /kotonebot/kaa/sprites/46198a1d-888e-4a12-827e-51cdd4fc30a2.png → /kaa/sprites/99d679f6-8371-46e7-a742-6180cc7e68f6.png +0 -0
- /kotonebot/kaa/sprites/a99307de-c12f-4cf5-921b-b80bf03bbac3.png → /kaa/sprites/9afa238e-be07-4d01-9e5c-350bf83d9884.png +0 -0
- /kotonebot/kaa/sprites/246f9799-5367-4fb4-877d-821fb4acad71.png → /kaa/sprites/9f7eba7c-2e9d-4d2a-9c8b-b9eadf9addd4.png +0 -0
- {kotonebot/kaa → kaa}/sprites/9fd0753f-c607-4d49-82d1-40bda27e014f.png +0 -0
- {kotonebot/interop/win → kaa/sprites}/__init__.py +0 -0
- /kotonebot/kaa/sprites/156cb3bd-0523-4a76-8747-8d4ce23fed7b.png → /kaa/sprites/a07ba9ce-3a90-42ae-b8c4-cba80a8fd676.png +0 -0
- {kotonebot/kaa → kaa}/sprites/a0bd6a5f-784d-4f0a-9d66-10f4b80c8d3e.png +0 -0
- /kotonebot/kaa/sprites/f7084b2c-5411-4180-9404-377240af1857.png → /kaa/sprites/a1c84ff9-9350-4927-bb0c-708e215ef721.png +0 -0
- {kotonebot/kaa → kaa}/sprites/a1df3af1-a3e7-4521-a085-e4dc3cd1cc57.png +0 -0
- {kotonebot/kaa → kaa}/sprites/a48324ae-7c1a-489e-b3c4-93d12267f88d.png +0 -0
- /kotonebot/kaa/sprites/7516da41-7cbf-4c18-8630-3baecc225764.png → /kaa/sprites/a8dc76c8-a90d-48c9-a20e-32d185b329c9.png +0 -0
- {kotonebot/kaa → kaa}/sprites/a9fcaf04-0c1f-4b0f-bb5b-ede9da96180f.png +0 -0
- /kotonebot/kaa/sprites/0ffd0b92-78f6-4661-a2c3-3c337b75d3bb.png → /kaa/sprites/abd8b312-348c-40b3-b034-921cefaf0bfe.png +0 -0
- /kotonebot/kaa/sprites/24458a04-ca4d-4330-9dd6-f074feac9a17.png → /kaa/sprites/acb20bc4-1109-40b8-9c14-526878a699f2.png +0 -0
- {kotonebot/kaa → kaa}/sprites/adc533a7-970b-4c5b-a037-2181531a35d6.png +0 -0
- /kotonebot/kaa/sprites/7cddb93a-175c-4875-a2fb-136cdfc365a7.png → /kaa/sprites/ae36e6ef-e2bf-4dd5-825a-c047432e3e52.png +0 -0
- /kotonebot/kaa/sprites/5aac4900-ccd2-4a72-9135-0804fe14e6e2.png → /kaa/sprites/ae5af81c-c75f-448b-88aa-c148cb728dfe.png +0 -0
- {kotonebot/kaa → kaa}/sprites/ae9fe233-9acc-4e96-ba8e-1fb1d9bc2ea5.png +0 -0
- /kotonebot/kaa/sprites/be2c3ab5-9d63-47bc-93f1-110b9668d5e2.png → /kaa/sprites/aeba7356-fc43-4450-8088-9f46a395bb00.png +0 -0
- {kotonebot/kaa → kaa}/sprites/b0283997-7931-476d-a92f-d7569f6ea34c.png +0 -0
- {kotonebot/kaa → kaa}/sprites/b2af59e9-60e3-4d97-8c72-c7ba092113a3.png +0 -0
- {kotonebot/kaa → kaa}/sprites/b2e1bf3c-2c36-4fb5-9db7-c10a29563a37.png +0 -0
- /kotonebot/kaa/sprites/fe0a26ac-906c-4809-9de5-43cb4a467a9d.png → /kaa/sprites/b4613fe1-10d8-47bc-88e8-7b729268e0e5.png +0 -0
- /kotonebot/kaa/sprites/50f138f4-7500-42c1-8121-2f03703d8f8f.png → /kaa/sprites/b4f86f2c-668d-48ed-bc1e-57886c57a731.png +0 -0
- {kotonebot/kaa → kaa}/sprites/b62bf889-da3c-495a-8707-f3bde73efe92.png +0 -0
- {kotonebot/kaa → kaa}/sprites/b6b94f21-ef4b-4425-9c7e-ca2b574b0add.png +0 -0
- /kotonebot/kaa/sprites/c542ba3e-e0c0-41a1-8cc7-dd7454b12400.png → /kaa/sprites/b83ae84f-79c0-4bd1-b8b8-86096cc3d5c1.png +0 -0
- /kotonebot/kaa/sprites/49587e50-e978-461f-b49c-7f92347923f5.png → /kaa/sprites/b949cf3e-4614-4fcd-8328-35b34234a9b2.png +0 -0
- {kotonebot/kaa → kaa}/sprites/bab6c393-692c-4681-ac0d-76c0d9dabea6.png +0 -0
- /kotonebot/kaa/sprites/e872aa76-2947-4209-abd7-5ecb56fdc9d6.png → /kaa/sprites/bb51dcf2-9041-4214-91a3-de2d55c1d864.png +0 -0
- /kotonebot/kaa/sprites/d7ceaf00-e488-4273-968c-315962bf4837.png → /kaa/sprites/bbc9449f-b923-4e56-844e-8e4cdbe803e3.png +0 -0
- {kotonebot/kaa → kaa}/sprites/bc7155ac-18c9-4335-9ec2-c8762d37a057.png +0 -0
- /kotonebot/kaa/sprites/2b3a82fd-79b3-400c-988a-248a7b277542.png → /kaa/sprites/bdb71eb9-15d7-4ce8-8622-b11d4eb20e90.png +0 -0
- /kotonebot/kaa/sprites/6e9ef52c-937f-47f1-9687-899a528d7599.png → /kaa/sprites/bddbdc46-2127-4688-ba26-15f2f87b9af4.png +0 -0
- /kotonebot/kaa/sprites/9a275932-f760-4373-ab27-86c5caf19136.png → /kaa/sprites/c08761c4-33ff-4f6c-85d4-102a1789b3a9.png +0 -0
- {kotonebot/kaa → kaa}/sprites/c3f536d6-a04a-4651-b3f9-dd2c22593f7f.png +0 -0
- /kotonebot/kaa/sprites/634b1421-7f65-452c-a4e2-e40a5028938a.png → /kaa/sprites/c52b6db3-c440-4db2-ae25-a27668c9b114.png +0 -0
- {kotonebot/kaa → kaa}/sprites/c5b7d67e-7260-4f08-a0e9-4d31ce9bbecf.png +0 -0
- {kotonebot/kaa → kaa}/sprites/c78c38cc-7b61-4dc4-820d-0a5b684ef52e.png +0 -0
- /kotonebot/kaa/sprites/ff232b25-39b4-4dcb-9e21-1d82b9e0bb7d.png → /kaa/sprites/c907c525-3d6a-4b82-8d10-91831cb37b1b.png +0 -0
- {kotonebot/kaa → kaa}/sprites/c948f136-416f-447e-8152-54a1cd1d1329.png +0 -0
- {kotonebot/kaa → kaa}/sprites/c954e153-d3e9-4488-869f-d00cfdfac5ee.png +0 -0
- /kotonebot/kaa/sprites/67176e48-eaa5-46dd-bbaf-85b1b324ba48.png → /kaa/sprites/ca8427c9-7af9-44dd-9960-7938222b84ea.png +0 -0
- {kotonebot/kaa → kaa}/sprites/cb3d0ca7-8d14-408a-a2f5-2e25f7b86d6c.png +0 -0
- /kotonebot/kaa/sprites/01106370-2321-4696-a60e-dc76b565a097.png → /kaa/sprites/cbde3ad5-276c-4826-a616-ab8692ab5a50.png +0 -0
- {kotonebot/kaa → kaa}/sprites/cbf4ce9c-f8d8-4fb7-a197-15bb9847df04.png +0 -0
- {kotonebot/kaa → kaa}/sprites/cc60b509-2ed5-493d-bb9f-333c6d2a6006.png +0 -0
- {kotonebot/kaa → kaa}/sprites/cc8a495d-330d-447d-8a80-a8a6ecc409c5.png +0 -0
- {kotonebot/kaa → kaa}/sprites/ccbcb114-7f73-43d1-904a-3a7ae660c531.png +0 -0
- {kotonebot/kaa → kaa}/sprites/ce1d1d6f-38f2-48bf-98bd-6e091c7ca5b8.png +0 -0
- {kotonebot/kaa → kaa}/sprites/ce20a856-5629-4f8e-a8e1-d1bd14e18e4f.png +0 -0
- {kotonebot/kaa → kaa}/sprites/cfc9c8e8-cbe1-49f0-9afa-ead7f9455a2e.png +0 -0
- /kotonebot/kaa/sprites/f7c7f2cf-337b-4dd6-a90b-7f5c452a1640.png → /kaa/sprites/d17f66dc-b4c5-4227-9e29-ec202cc2b1fe.png +0 -0
- /kotonebot/kaa/sprites/a4aabbbe-6400-4bcb-a95f-32a7d611bf5b.png → /kaa/sprites/d24d63c1-10ea-479f-868c-8e2d6936900a.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d271a24f-efe8-424d-8fd5-f6b3756ba4ca.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d3424d31-0502-4623-996e-f0194e5085ce.png +0 -0
- /kotonebot/kaa/sprites/b54343ba-8b17-4d72-b379-805ae3062d86.png → /kaa/sprites/d3c2a7a6-802d-407c-bc5b-aca5bb1741fa.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d3cc3323-51af-4882-ae12-49e7384b746d.png +0 -0
- /kotonebot/kaa/sprites/71bbe862-b9f7-47ab-b4f1-f0b87732bd39.png → /kaa/sprites/d4941156-d2c4-4bad-9e42-80e2c409640b.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d6b64759-26b7-45b1-bf8e-5c0d98611e0d.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d7667903-7149-4f2f-9c15-d8a4b5f4d347.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d83f338d-dde3-494b-9bea-cae511e3517c.png +0 -0
- /kotonebot/kaa/sprites/824c9efd-21ea-4e26-a1fa-9e909d8b98d6.png → /kaa/sprites/d8a19204-b2bd-430b-83d5-005e8cd08d20.png +0 -0
- /kotonebot/kaa/sprites/98a8e860-39cf-416c-b435-64a33579c6e8.png → /kaa/sprites/d9620175-115f-4a7e-9a8b-0728bd464929.png +0 -0
- {kotonebot/kaa → kaa}/sprites/d982d2b5-4bc0-4ae9-a516-f29c2848d64b.png +0 -0
- /kotonebot/kaa/sprites/8034f626-ae01-42c0-8f73-a3d1c9aaff5c.png → /kaa/sprites/da0f5694-01e2-4015-b7c5-e6827fe1bb51.png +0 -0
- {kotonebot/kaa → kaa}/sprites/da439e8c-3b74-4371-9657-0736d826c7d1.png +0 -0
- {kotonebot/kaa → kaa}/sprites/daf3d823-b7f1-4584-acf3-90b9d880332c.png +0 -0
- {kotonebot/kaa → kaa}/sprites/db7d3f03-1f7f-43bf-8125-f7c2d345fca2.png +0 -0
- /kotonebot/kaa/sprites/23a39277-a6ac-4a49-9c6a-1fca1a3a4d9b.png → /kaa/sprites/dbfd0dd6-abeb-4fd0-a072-e6319a9e0981.png +0 -0
- {kotonebot/kaa → kaa}/sprites/de325534-3fd3-480a-9eb8-eb47960a753a.png +0 -0
- /kotonebot/kaa/sprites/86db7d47-f634-4be4-b9e2-371e7868aded.png → /kaa/sprites/deae7249-6fea-4059-b8fd-6fdd8836b17c.png +0 -0
- {kotonebot/kaa → kaa}/sprites/df991b42-ed8e-4f2c-bf0c-aa7522f147b6.png +0 -0
- /kotonebot/kaa/sprites/7d817b98-53ff-491c-b608-b07a0c143009.png → /kaa/sprites/e153cfbb-1a2e-4f66-a884-e110c0a83d53.png +0 -0
- /kotonebot/kaa/sprites/981e63c5-d615-44dd-9ad6-60f6b415cdaf.png → /kaa/sprites/e2e253b8-0536-41ef-9982-292dc4a2fbc3.png +0 -0
- {kotonebot/kaa → kaa}/sprites/e4683def-8d1d-472b-a5ab-bb3885c0c98e.png +0 -0
- /kotonebot/kaa/sprites/f1fcc488-584d-4c61-8489-8b1b539151a9.png → /kaa/sprites/e5cec3e1-aa3c-4c73-880c-2341d22c68ce.png +0 -0
- /kotonebot/kaa/sprites/26262f2d-e12b-4992-8c14-15679cae4298.png → /kaa/sprites/e5da45b7-2315-49c0-ba97-58d82e139ff5.png +0 -0
- {kotonebot/kaa → kaa}/sprites/e5e84f9e-28da-4cf4-bcba-c9145fe39b07.png +0 -0
- {kotonebot/kaa → kaa}/sprites/e6b45405-cd9f-4c6e-a9f1-6ec953747c65.png +0 -0
- {kotonebot/kaa → kaa}/sprites/e88c9ad1-ec37-4fcd-b086-862e1e7ce8fd.png +0 -0
- {kotonebot/kaa → kaa}/sprites/e9ee330d-dfca-440e-8b8c-0a3b4e8c8730.png +0 -0
- {kotonebot/kaa → kaa}/sprites/ea1ba124-9cb3-4427-969a-bacd47e7d920.png +0 -0
- /kotonebot/kaa/sprites/9a7f06a5-448b-4410-84fa-0a4c938620f7.png → /kaa/sprites/ea3e0843-df72-4dda-a933-7647c2ca356b.png +0 -0
- /kotonebot/kaa/sprites/f62bfba7-3d6b-4bdd-9821-ca8370ee2ff4.png → /kaa/sprites/ea4f97d8-cc07-425b-a594-1ee698d257ec.png +0 -0
- {kotonebot/kaa → kaa}/sprites/eaad330d-4e50-4b55-be2c-8da0f72764d9.png +0 -0
- {kotonebot/kaa → kaa}/sprites/eaba6ebe-f0df-4918-aee5-ef4e3ffedcf0.png +0 -0
- /kotonebot/kaa/sprites/24d55c2b-dfe8-4a80-9f39-94045478f5a5.png → /kaa/sprites/eb9a68bf-624e-4faa-ae44-c5aafa1156e9.png +0 -0
- /kotonebot/kaa/sprites/9932dfd8-7c97-47dd-b6bb-e8c8d593f762.png → /kaa/sprites/eda4839f-5487-4444-ac64-216d94b33d0e.png +0 -0
- {kotonebot/kaa → kaa}/sprites/ee4e512b-4982-49b6-9c71-31984b58e1d0.png +0 -0
- {kotonebot/kaa → kaa}/sprites/eef25cf9-afd0-43b1-b9c5-fbd997bd5fe0.png +0 -0
- /kotonebot/kaa/sprites/cf5dcb2b-c5bd-4e38-a2bb-2673db821f79.png → /kaa/sprites/f03a8a47-9ae8-48b3-ae2c-8df04d9a9ea9.png +0 -0
- /kotonebot/kaa/sprites/13a5d0e7-776e-40c2-8a52-dd3e016913b4.png → /kaa/sprites/f0cbde7d-157d-4964-811f-bd8491946ad4.png +0 -0
- /kotonebot/kaa/sprites/fc7e4b97-0d87-4de9-b7ac-87ca670b6ff2.png → /kaa/sprites/f0dcbc16-20ed-4852-bfe2-5ad0b1df5380.png +0 -0
- {kotonebot/kaa → kaa}/sprites/f1f21925-3e22-4dd1-b53b-bb52bcf26c2b.png +0 -0
- /kotonebot/kaa/sprites/88d89e04-2242-4ed7-be23-edd6535121ac.png → /kaa/sprites/f34d2983-c306-4b26-be19-c8aceb41879c.png +0 -0
- {kotonebot/kaa → kaa}/sprites/f43c313b-8a7b-467b-8442-fc5bcb8b4388.png +0 -0
- /kotonebot/kaa/sprites/e857f00d-81bd-4fbc-9043-c9252a075da3.png → /kaa/sprites/f4684588-dae3-4a18-ba44-153f37339652.png +0 -0
- {kotonebot/kaa → kaa}/sprites/f5c16d2f-ebc5-4617-9b96-971696af7c52.png +0 -0
- /kotonebot/kaa/sprites/5479a383-3e75-4082-a118-fdae784228f4.png → /kaa/sprites/f5db23dd-9ba4-4dac-bf7d-fe6f6593d464.png +0 -0
- /kotonebot/kaa/sprites/279ab0e2-1601-4bfb-8d27-4019fc4dcd3d.png → /kaa/sprites/f6a458d4-453d-404a-b37d-3ecd1f4ec9ca.png +0 -0
- {kotonebot/kaa → kaa}/sprites/f6ca6bd3-543f-4779-8367-c5c883f04b95.png +0 -0
- /kotonebot/kaa/sprites/91e2c2d3-b629-4c49-97d5-ed99dada3243.png → /kaa/sprites/fa841e1c-c2b0-47f9-aff2-6a2accfaccb1.png +0 -0
- {kotonebot/kaa → kaa}/sprites/fad5eec2-5fd5-412f-9abb-987a3087dc54.png +0 -0
- /kotonebot/kaa/sprites/66eee7a5-3d0e-430f-850b-7fff14b3671f.png → /kaa/sprites/fd242e23-dc69-45a0-94ee-53172f793687.png +0 -0
- /kotonebot/kaa/sprites/db4ca499-5cd3-4332-b232-28ddbedd4741.png → /kaa/sprites/ff692c66-7c5c-4105-a456-789f8d78cd88.png +0 -0
- /kotonebot/kaa/sprites/8ed3f006-facb-4ba0-9034-24a3a7729012.png → /kaa/sprites/ff86b3e5-e0e8-46c6-a645-e7ff10c32baf.png +0 -0
- {kotonebot/kaa → kaa/tasks}/__init__.py +0 -0
- {kotonebot/kaa/resources → kaa/tasks/actions}/__init__.py +0 -0
- {kotonebot/kaa → kaa}/tasks/clear_logs.py +0 -0
- {kotonebot/kaa/sprites → kaa/tasks/daily}/__init__.py +0 -0
- {kotonebot/kaa/tasks → kaa/tasks/produce}/__init__.py +0 -0
- {kotonebot/kaa → kaa}/util/trace.py +0 -0
- {ksaa-2025.9b1.dist-info → ksaa-2025.9b2.dist-info}/WHEEL +0 -0
- {ksaa-2025.9b1.dist-info → ksaa-2025.9b2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
import ctypes
|
|
2
|
-
from ctypes import wintypes
|
|
3
|
-
import time
|
|
4
|
-
from typing import List, Tuple, Optional
|
|
5
|
-
from typing import Literal
|
|
6
|
-
|
|
7
|
-
__all__ = [
|
|
8
|
-
"TaskDialog",
|
|
9
|
-
"TDCBF_OK_BUTTON", "TDCBF_YES_BUTTON", "TDCBF_NO_BUTTON", "TDCBF_CANCEL_BUTTON",
|
|
10
|
-
"TDCBF_RETRY_BUTTON", "TDCBF_CLOSE_BUTTON",
|
|
11
|
-
"IDOK", "IDCANCEL", "IDABORT", "IDRETRY", "IDIGNORE", "IDYES", "IDNO", "IDCLOSE",
|
|
12
|
-
"TD_WARNING_ICON", "TD_ERROR_ICON", "TD_INFORMATION_ICON", "TD_SHIELD_ICON"
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
# --- Windows API 常量定义 ---
|
|
16
|
-
|
|
17
|
-
# 常用按钮
|
|
18
|
-
TDCBF_OK_BUTTON = 0x0001
|
|
19
|
-
TDCBF_YES_BUTTON = 0x0002
|
|
20
|
-
TDCBF_NO_BUTTON = 0x0004
|
|
21
|
-
TDCBF_CANCEL_BUTTON = 0x0008
|
|
22
|
-
TDCBF_RETRY_BUTTON = 0x0010
|
|
23
|
-
TDCBF_CLOSE_BUTTON = 0x0020
|
|
24
|
-
|
|
25
|
-
# 对话框返回值
|
|
26
|
-
IDOK = 1
|
|
27
|
-
IDCANCEL = 2
|
|
28
|
-
IDABORT = 3
|
|
29
|
-
IDRETRY = 4
|
|
30
|
-
IDIGNORE = 5
|
|
31
|
-
IDYES = 6
|
|
32
|
-
IDNO = 7
|
|
33
|
-
IDCLOSE = 8
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# 标准图标 (使用 MAKEINTRESOURCE 宏)
|
|
37
|
-
def MAKEINTRESOURCE(i: int) -> wintypes.LPWSTR:
|
|
38
|
-
return wintypes.LPWSTR(i)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
TD_WARNING_ICON = MAKEINTRESOURCE(65535)
|
|
42
|
-
TD_ERROR_ICON = MAKEINTRESOURCE(65534)
|
|
43
|
-
TD_INFORMATION_ICON = MAKEINTRESOURCE(65533)
|
|
44
|
-
TD_SHIELD_ICON = MAKEINTRESOURCE(65532)
|
|
45
|
-
|
|
46
|
-
# Task Dialog 标志
|
|
47
|
-
TDF_ENABLE_HYPERLINKS = 0x0001
|
|
48
|
-
TDF_USE_HICON_MAIN = 0x0002
|
|
49
|
-
TDF_USE_HICON_FOOTER = 0x0004
|
|
50
|
-
TDF_ALLOW_DIALOG_CANCELLATION = 0x0008
|
|
51
|
-
TDF_USE_COMMAND_LINKS = 0x0010
|
|
52
|
-
TDF_USE_COMMAND_LINKS_NO_ICON = 0x0020
|
|
53
|
-
TDF_EXPAND_FOOTER_AREA = 0x0040
|
|
54
|
-
TDF_EXPANDED_BY_DEFAULT = 0x0080
|
|
55
|
-
TDF_VERIFICATION_FLAG_CHECKED = 0x0100
|
|
56
|
-
TDF_SHOW_PROGRESS_BAR = 0x0200
|
|
57
|
-
TDF_SHOW_MARQUEE_PROGRESS_BAR = 0x0400
|
|
58
|
-
TDF_CALLBACK_TIMER = 0x0800
|
|
59
|
-
TDF_POSITION_RELATIVE_TO_WINDOW = 0x1000
|
|
60
|
-
TDF_RTL_LAYOUT = 0x2000
|
|
61
|
-
TDF_NO_DEFAULT_RADIO_BUTTON = 0x4000
|
|
62
|
-
TDF_CAN_BE_MINIMIZED = 0x8000
|
|
63
|
-
|
|
64
|
-
# Task Dialog 通知
|
|
65
|
-
TDN_CREATED = 0
|
|
66
|
-
TDN_NAVIGATED = 1
|
|
67
|
-
TDN_BUTTON_CLICKED = 2
|
|
68
|
-
TDN_HYPERLINK_CLICKED = 3
|
|
69
|
-
TDN_TIMER = 4
|
|
70
|
-
TDN_DESTROYED = 5
|
|
71
|
-
TDN_RADIO_BUTTON_CLICKED = 6
|
|
72
|
-
TDN_DIALOG_CONSTRUCTED = 7
|
|
73
|
-
TDN_VERIFICATION_CLICKED = 8
|
|
74
|
-
TDN_HELP = 9
|
|
75
|
-
TDN_EXPANDO_BUTTON_CLICKED = 10
|
|
76
|
-
|
|
77
|
-
# Windows 消息
|
|
78
|
-
WM_USER = 0x0400
|
|
79
|
-
TDM_SET_PROGRESS_BAR_POS = WM_USER + 114
|
|
80
|
-
|
|
81
|
-
CommonButtonLiteral = Literal["ok", "yes", "no", "cancel", "retry", "close"]
|
|
82
|
-
IconLiteral = Literal["warning", "error", "information", "shield"]
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
# --- C 结构体定义 (使用 ctypes) ---
|
|
86
|
-
|
|
87
|
-
class TASKDIALOG_BUTTON(ctypes.Structure):
|
|
88
|
-
_pack_ = 1
|
|
89
|
-
_fields_ = [("nButtonID", ctypes.c_int),
|
|
90
|
-
("pszButtonText", wintypes.LPCWSTR)]
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
# 定义回调函数指针原型
|
|
94
|
-
PFTASKDIALOGCALLBACK = ctypes.WINFUNCTYPE(
|
|
95
|
-
ctypes.HRESULT, # 返回值
|
|
96
|
-
wintypes.HWND, # hwnd
|
|
97
|
-
ctypes.c_uint, # msg
|
|
98
|
-
ctypes.c_size_t, # wParam
|
|
99
|
-
ctypes.c_size_t, # lParam
|
|
100
|
-
ctypes.c_ssize_t # lpRefData
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
class TASKDIALOGCONFIG(ctypes.Structure):
|
|
105
|
-
_pack_ = 1
|
|
106
|
-
_fields_ = [
|
|
107
|
-
("cbSize", ctypes.c_uint),
|
|
108
|
-
("hwndParent", wintypes.HWND),
|
|
109
|
-
("hInstance", wintypes.HINSTANCE),
|
|
110
|
-
("dwFlags", ctypes.c_uint),
|
|
111
|
-
("dwCommonButtons", ctypes.c_uint),
|
|
112
|
-
("pszWindowTitle", wintypes.LPCWSTR),
|
|
113
|
-
("pszMainIcon", wintypes.LPCWSTR),
|
|
114
|
-
("pszMainInstruction", wintypes.LPCWSTR),
|
|
115
|
-
("pszContent", wintypes.LPCWSTR),
|
|
116
|
-
("cButtons", ctypes.c_uint),
|
|
117
|
-
("pButtons", ctypes.POINTER(TASKDIALOG_BUTTON)),
|
|
118
|
-
("nDefaultButton", ctypes.c_int),
|
|
119
|
-
("cRadioButtons", ctypes.c_uint),
|
|
120
|
-
("pRadioButtons", ctypes.POINTER(TASKDIALOG_BUTTON)),
|
|
121
|
-
("nDefaultRadioButton", ctypes.c_int),
|
|
122
|
-
("pszVerificationText", wintypes.LPCWSTR),
|
|
123
|
-
("pszExpandedInformation", wintypes.LPCWSTR),
|
|
124
|
-
("pszExpandedControlText", wintypes.LPCWSTR),
|
|
125
|
-
("pszCollapsedControlText", wintypes.LPCWSTR),
|
|
126
|
-
("pszFooterIcon", wintypes.LPCWSTR),
|
|
127
|
-
("pszFooter", wintypes.LPCWSTR),
|
|
128
|
-
("pfCallback", PFTASKDIALOGCALLBACK), # 使用定义好的原型
|
|
129
|
-
("lpCallbackData", ctypes.c_ssize_t),
|
|
130
|
-
("cxWidth", ctypes.c_uint)
|
|
131
|
-
]
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
# --- 加载 comctl32.dll 并定义函数原型 ---
|
|
135
|
-
|
|
136
|
-
comctl32 = ctypes.WinDLL('comctl32')
|
|
137
|
-
user32 = ctypes.WinDLL('user32')
|
|
138
|
-
|
|
139
|
-
TaskDialogIndirect = comctl32.TaskDialogIndirect
|
|
140
|
-
TaskDialogIndirect.restype = ctypes.HRESULT
|
|
141
|
-
TaskDialogIndirect.argtypes = [
|
|
142
|
-
ctypes.POINTER(TASKDIALOGCONFIG),
|
|
143
|
-
ctypes.POINTER(ctypes.c_int),
|
|
144
|
-
ctypes.POINTER(ctypes.c_int),
|
|
145
|
-
ctypes.POINTER(wintypes.BOOL)
|
|
146
|
-
]
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
# --- Python 封装类 ---
|
|
150
|
-
|
|
151
|
-
class TaskDialog:
|
|
152
|
-
"""
|
|
153
|
-
一个用于显示 Windows TaskDialog 的 Python 封装类。
|
|
154
|
-
支持自定义按钮、单选按钮、进度条、验证框等。
|
|
155
|
-
"""
|
|
156
|
-
|
|
157
|
-
def __init__(self,
|
|
158
|
-
parent_hwnd: Optional[int] = None,
|
|
159
|
-
title: str = "Task Dialog",
|
|
160
|
-
main_instruction: str = "",
|
|
161
|
-
content: str = "",
|
|
162
|
-
common_buttons: int | List[CommonButtonLiteral] = TDCBF_OK_BUTTON,
|
|
163
|
-
main_icon: Optional[wintypes.LPWSTR | int | IconLiteral] = None,
|
|
164
|
-
footer: str = "",
|
|
165
|
-
custom_buttons: Optional[List[Tuple[int, str]]] = None,
|
|
166
|
-
default_button: int = 0,
|
|
167
|
-
radio_buttons: Optional[List[Tuple[int, str]]] = None,
|
|
168
|
-
default_radio_button: int = 0,
|
|
169
|
-
verification_text: Optional[str] = None,
|
|
170
|
-
verification_checked_by_default: bool = False,
|
|
171
|
-
show_progress_bar: bool = False,
|
|
172
|
-
show_marquee_progress_bar: bool = False
|
|
173
|
-
):
|
|
174
|
-
"""初始化 TaskDialog 实例。
|
|
175
|
-
|
|
176
|
-
:param parent_hwnd: 父窗口的句柄。
|
|
177
|
-
:param title: 对话框窗口的标题。
|
|
178
|
-
:param main_instruction: 对话框的主要指令文本。
|
|
179
|
-
:param content: 对话框的详细内容文本。
|
|
180
|
-
:param common_buttons: 要显示的通用按钮。可以是以下两种形式之一:
|
|
181
|
-
1. TDCBF_* 常量的按位或组合 (例如 TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON)
|
|
182
|
-
2. 字符串列表,支持 "ok", "yes", "no", "cancel", "retry", "close"
|
|
183
|
-
:param main_icon: 主图标。可以是以下几种形式之一:
|
|
184
|
-
1. TD_*_ICON 常量之一
|
|
185
|
-
2. HICON 句柄
|
|
186
|
-
3. 字符串:"warning", "error", "information", "shield"
|
|
187
|
-
:param footer: 页脚区域显示的文本。
|
|
188
|
-
:param custom_buttons: 自定义按钮列表。每个元组包含 (按钮ID, 按钮文本)。
|
|
189
|
-
:param default_button: 默认按钮的ID。可以是通用按钮ID (例如 IDOK) 或自定义按钮ID。
|
|
190
|
-
:param radio_buttons: 单选按钮列表。每个元组包含 (按钮ID, 按钮文本)。
|
|
191
|
-
:param default_radio_button: 默认选中的单选按钮的ID。
|
|
192
|
-
:param verification_text: 验证复选框的文本。如果为 None,则不显示复选框。
|
|
193
|
-
:param verification_checked_by_default: 验证复选框是否默认勾选。
|
|
194
|
-
:param show_progress_bar: 是否显示标准进度条。
|
|
195
|
-
:param show_marquee_progress_bar: 是否显示跑马灯式进度条。
|
|
196
|
-
"""
|
|
197
|
-
self.config = TASKDIALOGCONFIG()
|
|
198
|
-
self.config.cbSize = ctypes.sizeof(TASKDIALOGCONFIG)
|
|
199
|
-
self.config.hwndParent = parent_hwnd
|
|
200
|
-
self.config.dwFlags = TDF_ALLOW_DIALOG_CANCELLATION | TDF_POSITION_RELATIVE_TO_WINDOW
|
|
201
|
-
self.config.dwCommonButtons = self._process_common_buttons(common_buttons)
|
|
202
|
-
self.config.pszWindowTitle = title
|
|
203
|
-
self.config.pszMainInstruction = main_instruction
|
|
204
|
-
self.config.pszContent = content
|
|
205
|
-
self.config.pszFooter = footer
|
|
206
|
-
|
|
207
|
-
self.progress: int = 0
|
|
208
|
-
if show_progress_bar or show_marquee_progress_bar:
|
|
209
|
-
# 进度条暂时还没实现
|
|
210
|
-
raise NotImplementedError("Progress bar is not implemented yet.")
|
|
211
|
-
self.config.dwFlags |= TDF_CALLBACK_TIMER
|
|
212
|
-
if show_progress_bar:
|
|
213
|
-
self.config.dwFlags |= TDF_SHOW_PROGRESS_BAR
|
|
214
|
-
else:
|
|
215
|
-
self.config.dwFlags |= TDF_SHOW_MARQUEE_PROGRESS_BAR
|
|
216
|
-
|
|
217
|
-
# 将实例方法转为 C 回调函数指针。
|
|
218
|
-
# 必须将其保存为实例成员,否则会被垃圾回收!
|
|
219
|
-
self._callback_func_ptr = PFTASKDIALOGCALLBACK(self._callback)
|
|
220
|
-
self.config.pfCallback = self._callback_func_ptr
|
|
221
|
-
# 将本实例的id作为lpCallbackData传递,以便在回调中识别
|
|
222
|
-
self.config.lpCallbackData = id(self)
|
|
223
|
-
|
|
224
|
-
# --- 图标设置 ---
|
|
225
|
-
processed_icon = self._process_main_icon(main_icon)
|
|
226
|
-
if processed_icon is not None:
|
|
227
|
-
if isinstance(processed_icon, wintypes.LPWSTR):
|
|
228
|
-
self.config.pszMainIcon = processed_icon
|
|
229
|
-
else:
|
|
230
|
-
self.config.dwFlags |= TDF_USE_HICON_MAIN
|
|
231
|
-
self.config.hMainIcon = processed_icon
|
|
232
|
-
|
|
233
|
-
# --- 自定义按钮设置 ---
|
|
234
|
-
self.custom_buttons_list = []
|
|
235
|
-
if custom_buttons:
|
|
236
|
-
self.config.cButtons = len(custom_buttons)
|
|
237
|
-
button_array_type = TASKDIALOG_BUTTON * len(custom_buttons)
|
|
238
|
-
self.custom_buttons_list = button_array_type()
|
|
239
|
-
for i, (btn_id, btn_text) in enumerate(custom_buttons):
|
|
240
|
-
self.custom_buttons_list[i].nButtonID = btn_id
|
|
241
|
-
self.custom_buttons_list[i].pszButtonText = btn_text
|
|
242
|
-
self.config.pButtons = self.custom_buttons_list
|
|
243
|
-
|
|
244
|
-
if default_button:
|
|
245
|
-
self.config.nDefaultButton = default_button
|
|
246
|
-
|
|
247
|
-
# --- 单选按钮设置 ---
|
|
248
|
-
self.radio_buttons_list = []
|
|
249
|
-
if radio_buttons:
|
|
250
|
-
self.config.cRadioButtons = len(radio_buttons)
|
|
251
|
-
radio_array_type = TASKDIALOG_BUTTON * len(radio_buttons)
|
|
252
|
-
self.radio_buttons_list = radio_array_type()
|
|
253
|
-
for i, (btn_id, btn_text) in enumerate(radio_buttons):
|
|
254
|
-
self.radio_buttons_list[i].nButtonID = btn_id
|
|
255
|
-
self.radio_buttons_list[i].pszButtonText = btn_text
|
|
256
|
-
self.config.pRadioButtons = self.radio_buttons_list
|
|
257
|
-
|
|
258
|
-
if default_radio_button:
|
|
259
|
-
self.config.nDefaultRadioButton = default_radio_button
|
|
260
|
-
|
|
261
|
-
# --- 验证复选框设置 ---
|
|
262
|
-
if verification_text:
|
|
263
|
-
self.config.pszVerificationText = verification_text
|
|
264
|
-
if verification_checked_by_default:
|
|
265
|
-
self.config.dwFlags |= TDF_VERIFICATION_FLAG_CHECKED
|
|
266
|
-
|
|
267
|
-
def _process_common_buttons(self, common_buttons: int | List[CommonButtonLiteral]) -> int:
|
|
268
|
-
"""处理 common_buttons 参数,支持常量和字符串列表两种形式"""
|
|
269
|
-
if isinstance(common_buttons, int):
|
|
270
|
-
# 直接使用 Win32 常量
|
|
271
|
-
return common_buttons
|
|
272
|
-
elif isinstance(common_buttons, list):
|
|
273
|
-
# 处理字符串列表
|
|
274
|
-
result = 0
|
|
275
|
-
for button in common_buttons:
|
|
276
|
-
# 使用 match 和 assert_never 进行类型检查
|
|
277
|
-
match button:
|
|
278
|
-
case "ok":
|
|
279
|
-
result |= TDCBF_OK_BUTTON
|
|
280
|
-
case "yes":
|
|
281
|
-
result |= TDCBF_YES_BUTTON
|
|
282
|
-
case "no":
|
|
283
|
-
result |= TDCBF_NO_BUTTON
|
|
284
|
-
case "cancel":
|
|
285
|
-
result |= TDCBF_CANCEL_BUTTON
|
|
286
|
-
case "retry":
|
|
287
|
-
result |= TDCBF_RETRY_BUTTON
|
|
288
|
-
case "close":
|
|
289
|
-
result |= TDCBF_CLOSE_BUTTON
|
|
290
|
-
case _:
|
|
291
|
-
# 这在实际中不会发生,因为类型检查会阻止它
|
|
292
|
-
from typing import assert_never
|
|
293
|
-
assert_never(button)
|
|
294
|
-
return result
|
|
295
|
-
else:
|
|
296
|
-
raise TypeError("common_buttons must be either an int or a list of strings")
|
|
297
|
-
|
|
298
|
-
def _process_main_icon(self, main_icon: Optional[wintypes.LPWSTR | int | IconLiteral]) -> Optional[wintypes.LPWSTR | int]:
|
|
299
|
-
"""处理 main_icon 参数,支持常量和字符串两种形式"""
|
|
300
|
-
if main_icon is None:
|
|
301
|
-
return None
|
|
302
|
-
elif isinstance(main_icon, (wintypes.LPWSTR, int)):
|
|
303
|
-
# 直接使用 Win32 常量或 HICON 句柄
|
|
304
|
-
return main_icon
|
|
305
|
-
elif isinstance(main_icon, str):
|
|
306
|
-
# 处理字符串
|
|
307
|
-
match main_icon:
|
|
308
|
-
case "warning":
|
|
309
|
-
return TD_WARNING_ICON
|
|
310
|
-
case "error":
|
|
311
|
-
return TD_ERROR_ICON
|
|
312
|
-
case "information":
|
|
313
|
-
return TD_INFORMATION_ICON
|
|
314
|
-
case "shield":
|
|
315
|
-
return TD_SHIELD_ICON
|
|
316
|
-
case _:
|
|
317
|
-
# 这在实际中不会发生,因为类型检查会阻止它
|
|
318
|
-
from typing import assert_never
|
|
319
|
-
assert_never(main_icon)
|
|
320
|
-
else:
|
|
321
|
-
raise TypeError("main_icon must be None, a Windows constant, or a string")
|
|
322
|
-
|
|
323
|
-
def _callback(self, hwnd: wintypes.HWND, msg: int, wParam: int, lParam: int, lpRefData: int) -> int:
|
|
324
|
-
# 仅当 lpRefData 指向的是当前这个对象实例时才处理
|
|
325
|
-
if lpRefData != id(self):
|
|
326
|
-
return 0 # S_OK
|
|
327
|
-
|
|
328
|
-
if msg == TDN_TIMER:
|
|
329
|
-
# 更新进度条
|
|
330
|
-
if self.progress < 100:
|
|
331
|
-
self.progress += 5
|
|
332
|
-
# 发送消息给对话框来更新进度条位置
|
|
333
|
-
user32.SendMessageW(hwnd, TDM_SET_PROGRESS_BAR_POS, self.progress, 0)
|
|
334
|
-
else:
|
|
335
|
-
# 示例:进度达到100%后,可以模拟点击OK按钮关闭对话框
|
|
336
|
-
# from ctypes import wintypes
|
|
337
|
-
# user32.PostMessageW(hwnd, wintypes.UINT(1125), IDOK, 0) # TDM_CLICK_BUTTON
|
|
338
|
-
pass
|
|
339
|
-
|
|
340
|
-
elif msg == TDN_DESTROYED:
|
|
341
|
-
# 对话框已销毁
|
|
342
|
-
pass
|
|
343
|
-
|
|
344
|
-
return 0 # S_OK
|
|
345
|
-
|
|
346
|
-
def show(self) -> Tuple[int, int, bool]:
|
|
347
|
-
"""
|
|
348
|
-
显示对话框并返回用户交互的结果。
|
|
349
|
-
|
|
350
|
-
:return: 一个元组 (button_id, radio_button_id, verification_checked)
|
|
351
|
-
- button_id: 用户点击的按钮ID (例如 IDOK, IDCANCEL)。
|
|
352
|
-
- radio_button_id: 用户选择的单选按钮的ID。
|
|
353
|
-
- verification_checked: 验证复选框是否被勾选 (True/False)。
|
|
354
|
-
"""
|
|
355
|
-
pnButton = ctypes.c_int(0)
|
|
356
|
-
pnRadioButton = ctypes.c_int(0)
|
|
357
|
-
pfVerificationFlagChecked = wintypes.BOOL(False)
|
|
358
|
-
|
|
359
|
-
hr = TaskDialogIndirect(
|
|
360
|
-
ctypes.byref(self.config),
|
|
361
|
-
ctypes.byref(pnButton),
|
|
362
|
-
ctypes.byref(pnRadioButton),
|
|
363
|
-
ctypes.byref(pfVerificationFlagChecked)
|
|
364
|
-
)
|
|
365
|
-
|
|
366
|
-
if hr == 0: # S_OK
|
|
367
|
-
return pnButton.value, pnRadioButton.value, bool(pfVerificationFlagChecked.value)
|
|
368
|
-
else:
|
|
369
|
-
raise ctypes.WinError(hr)
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
# --- 示例用法 ---
|
|
373
|
-
if __name__ == '__main__':
|
|
374
|
-
|
|
375
|
-
print("--- 示例 1: 简单信息框 ---")
|
|
376
|
-
dlg_simple = TaskDialog(
|
|
377
|
-
title="操作成功",
|
|
378
|
-
main_instruction="您的操作已成功完成。",
|
|
379
|
-
content="文件已保存到您的文档目录。",
|
|
380
|
-
common_buttons=["ok"],
|
|
381
|
-
main_icon="information"
|
|
382
|
-
)
|
|
383
|
-
result_simple, _, _ = dlg_simple.show()
|
|
384
|
-
print(f"用户点击了按钮: {result_simple} (1=OK)\n")
|
|
385
|
-
|
|
386
|
-
print("--- 示例 2: 确认框 ---")
|
|
387
|
-
dlg_confirm = TaskDialog(
|
|
388
|
-
title="确认删除",
|
|
389
|
-
main_instruction="您确定要永久删除这个文件吗?",
|
|
390
|
-
content="这个操作无法撤销。文件将被立即删除。",
|
|
391
|
-
common_buttons=["yes", "no", "cancel"],
|
|
392
|
-
main_icon="warning",
|
|
393
|
-
default_button=IDNO
|
|
394
|
-
)
|
|
395
|
-
result_confirm, _, _ = dlg_confirm.show()
|
|
396
|
-
if result_confirm == IDYES:
|
|
397
|
-
print("用户选择了“是”。")
|
|
398
|
-
elif result_confirm == IDNO:
|
|
399
|
-
print("用户选择了“否”。")
|
|
400
|
-
elif result_confirm == IDCANCEL:
|
|
401
|
-
print("用户选择了“取消”。")
|
|
402
|
-
print(f"返回的按钮ID: {result_confirm}\n")
|
|
403
|
-
|
|
404
|
-
# 示例 3
|
|
405
|
-
print("--- 示例 3: 自定义按钮 ---")
|
|
406
|
-
CUSTOM_BUTTON_SAVE_ID = 101
|
|
407
|
-
CUSTOM_BUTTON_DONT_SAVE_ID = 102
|
|
408
|
-
my_buttons = [
|
|
409
|
-
(CUSTOM_BUTTON_SAVE_ID, "保存并退出"),
|
|
410
|
-
(CUSTOM_BUTTON_DONT_SAVE_ID, "不保存直接退出")
|
|
411
|
-
]
|
|
412
|
-
dlg_custom = TaskDialog(
|
|
413
|
-
title="未保存的更改",
|
|
414
|
-
main_instruction="文档中有未保存的更改,您想如何处理?",
|
|
415
|
-
custom_buttons=my_buttons,
|
|
416
|
-
common_buttons=["cancel"],
|
|
417
|
-
main_icon="warning",
|
|
418
|
-
footer="这是一个重要的提醒!"
|
|
419
|
-
)
|
|
420
|
-
result_custom, _, _ = dlg_custom.show()
|
|
421
|
-
if result_custom == CUSTOM_BUTTON_SAVE_ID:
|
|
422
|
-
print("用户选择了“保存并退出”。")
|
|
423
|
-
elif result_custom == CUSTOM_BUTTON_DONT_SAVE_ID:
|
|
424
|
-
print("用户选择了“不保存直接退出”。")
|
|
425
|
-
elif result_custom == IDCANCEL:
|
|
426
|
-
print("用户选择了“取消”。")
|
|
427
|
-
print(f"返回的按钮ID: {result_custom}\n")
|
|
428
|
-
|
|
429
|
-
# 示例 4: 带单选按钮和验证框的对话框
|
|
430
|
-
print("--- 示例 4: 单选按钮和验证框 ---")
|
|
431
|
-
RADIO_BTN_WORD_ID = 201
|
|
432
|
-
RADIO_BTN_EXCEL_ID = 202
|
|
433
|
-
RADIO_BTN_PDF_ID = 203
|
|
434
|
-
|
|
435
|
-
radio_buttons = [
|
|
436
|
-
(RADIO_BTN_WORD_ID, "保存为 Word 文档 (.docx)"),
|
|
437
|
-
(RADIO_BTN_EXCEL_ID, "保存为 Excel 表格 (.xlsx)"),
|
|
438
|
-
(RADIO_BTN_PDF_ID, "导出为 PDF 文档 (.pdf)")
|
|
439
|
-
]
|
|
440
|
-
|
|
441
|
-
dlg_radio = TaskDialog(
|
|
442
|
-
title="选择导出格式",
|
|
443
|
-
main_instruction="请选择您想要导出的文件格式。",
|
|
444
|
-
content="选择一个格式后,点击“确定”继续。",
|
|
445
|
-
common_buttons=["ok", "cancel"],
|
|
446
|
-
main_icon="information",
|
|
447
|
-
radio_buttons=radio_buttons,
|
|
448
|
-
default_radio_button=RADIO_BTN_PDF_ID, # 默认选中PDF
|
|
449
|
-
verification_text="设为我的默认导出选项",
|
|
450
|
-
verification_checked_by_default=True
|
|
451
|
-
)
|
|
452
|
-
btn_id, radio_id, checked = dlg_radio.show()
|
|
453
|
-
|
|
454
|
-
if btn_id == IDOK:
|
|
455
|
-
print(f"用户点击了“确定”。")
|
|
456
|
-
if radio_id == RADIO_BTN_WORD_ID:
|
|
457
|
-
print("选择了导出为 Word。")
|
|
458
|
-
elif radio_id == RADIO_BTN_EXCEL_ID:
|
|
459
|
-
print("选择了导出为 Excel。")
|
|
460
|
-
elif radio_id == RADIO_BTN_PDF_ID:
|
|
461
|
-
print("选择了导出为 PDF。")
|
|
462
|
-
|
|
463
|
-
if checked:
|
|
464
|
-
print("用户勾选了“设为我的默认导出选项”。")
|
|
465
|
-
else:
|
|
466
|
-
print("用户未勾选“设为我的默认导出选项”。")
|
|
467
|
-
else:
|
|
468
|
-
print("用户点击了“取消”。")
|
|
469
|
-
print(f"返回的按钮ID: {btn_id}, 单选按钮ID: {radio_id}, 验证框状态: {checked}\n")
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|