ksaa 2025.7.27.0__tar.gz → 2025.8.2.0__tar.gz
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.
- {ksaa-2025.7.27.0/ksaa.egg-info → ksaa-2025.8.2.0}/PKG-INFO +1 -1
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/WHATS_NEW.md +18 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/__init__.py +2 -1
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/loop.py +276 -276
- ksaa-2025.8.2.0/kotonebot/interop/win/shortcut.py +43 -0
- ksaa-2025.8.2.0/kotonebot/kaa/application/adapter/misc_adapter.py +5 -0
- ksaa-2025.8.2.0/kotonebot/kaa/application/core/misc_core.py +33 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/errors.py +14 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/main/cli.py +2 -1
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/main/gr.py +92 -53
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/metadata.py +18 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/game.db +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/game_ver.txt +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-010_0.png +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-010_1.png +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-012_0.png +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-012_1.png +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-011_0.png +0 -0
- ksaa-2025.8.2.0/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/R.py +126 -126
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/actions/scenes.py +4 -10
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/capsule_toys.py +3 -4
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/contest.py +3 -7
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/mission_reward.py +13 -10
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/purchase.py +13 -11
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/cards.py +3 -8
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/common.py +3 -9
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/in_purodyuusu.py +93 -83
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/non_lesson_actions.py +35 -27
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/produce.py +18 -18
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/start_game.py +4 -9
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0/ksaa.egg-info}/PKG-INFO +1 -1
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/ksaa.egg-info/SOURCES.txt +135 -126
- ksaa-2025.8.2.0/version +1 -0
- ksaa-2025.7.27.0/kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- ksaa-2025.7.27.0/kotonebot/kaa/resources/game_ver.txt +0 -0
- ksaa-2025.7.27.0/version +0 -1
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/LICENSE +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/MANIFEST.in +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/README.md +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/bot.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/color.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/context/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/context/context.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/context/task_action.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/core.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/debug/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/debug/entry.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/debug/mock.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/debug/server.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/debug/vars.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/dispatch.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/flow_controller.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/image.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/ocr.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/backend/preprocessor.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/device.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/fast_screenshot.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/adb_common.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/custom.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/leidian_host.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/mumu12_host.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/protocol.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/host/windows_common.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/adb.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/adb_raw.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/nemu_ipc/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/nemu_ipc/external_renderer_ipc.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/nemu_ipc/nemu_ipc.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/remote_windows.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/uiautomator2.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/implements/windows.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/protocol.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/client/registration.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/config/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/config/base_config.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/config/manager.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/debug_entry.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/errors.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/interop/win/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/interop/win/message_box.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/interop/win/reg.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/interop/win/task_dialog.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/common.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/const.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/_idol.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/_v1_to_v2.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/_v2_to_v3.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/_v3_to_v4.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/_v4_to_v5.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/migrations/_v5_to_v6.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/produce.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/schema.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/config/upgrade.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/db/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/db/constants.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/db/idol_card.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/db/sqlite.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/badge.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/common.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/commu_event_buttons.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/dialog.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/idols_overview.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/primary_button.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/schedule.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/scrollable.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/game_ui/toolbar.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/image_db/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/image_db/db.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/image_db/descriptors/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/image_db/descriptors/hist.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/kaa_context.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/main/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/main/dmm_host.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/main/kaa.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-005_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-1-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-2-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-000_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-001_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-002_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-003_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-004_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-006_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-007_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-008_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-009_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-010_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-011_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-012_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/00551158-fee9-483f-b034-549139a96f58.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/98df22d6-1ff2-4c9a-87e7-f70e9f91019e.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/01e8e85e-056c-4428-9cb2-4024c4e6d022.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/88207e47-1f50-485f-9984-54cea01d740a.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/0300702d-1023-4af7-9fee-54c058f7f1a8.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6cba0d0c-a67b-470d-9abe-1c55b14310ba.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/0450fdf0-f03d-4efc-b047-27532571c620.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/05890a1b-8764-4e9f-9d21-65d292c22e13.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/a043ed15-0ceb-49b5-b3df-d03274677340.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/065cbac0-e09a-4bec-aa10-5fdb41720d31.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/0949c622-9067-4f0d-bac2-3f938a1d2ed2.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/0bf5e34e-afc6-4447-bbac-67026ce2ad26.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/0c0627be-4a09-4450-a078-1858d3ace532.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/0d9ac648-eefa-4869-ac99-1b0c83649681.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/0f7d581d-cea3-4039-9205-732e4cd29293.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/760655f5-1d32-437c-81fc-306e80fabfd8.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/1193a4e3-4d0d-4433-97ce-b19aeb6846c5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/2ac90dcf-2284-437e-a61e-51934f937f8f.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/133ea490-fefe-4785-b531-3cc7072338da.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/8f941a44-bbe8-4d3d-82b3-7b14c2356998.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/14cd7285-f587-49af-9960-802c41050201.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/f4c3a6f9-1149-4530-af30-c56d7e3d02b9.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/1564ee9a-c2eb-4284-b22a-dd8df7c8a32f.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/1652f06a-5417-49ef-8949-4854772d9ab7.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/16fbc93d-b294-4001-b4e9-ee2af181415f.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/b60b3563-20b4-46ad-b36b-3113d9e07d4c.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/180b211b-3b77-43a9-b550-6624f1b1beb1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/185f7838-92a7-460b-9340-f60858948ce9.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d3565383-91b0-4b33-87a9-3468dfd56e52.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/19060076-f971-411c-9b1b-f22e18871b74.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/3aa13898-1a50-4234-b9ec-f35878f05592.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/190c0a4a-24c2-4717-8a78-ffa7bb0366d2.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/1926f2f9-4bd7-48eb-9eba-28ec4efb0606.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/fab770fd-e250-4dd4-b9d2-80966ad452ac.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/1935d9dc-84ff-47a8-a65b-a458a224b4cc.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/1917a430-d216-4359-8f62-0b62108f58c1.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/1c0c3381-4d9b-4279-ac89-784b9e9d7e63.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/1218bb7e-2cab-477e-aa51-f71aa4f52a7d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/1ec343a7-f6d4-4ab5-967b-66f900438977.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/2822bf2b-b350-437b-b330-0e8c122bfbe7.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/203dfb12-640e-4437-9040-47045c9b8cbd.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/213016c2-c3a2-43d8-86a3-ab4d27666ced.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/650eee06-c926-4e91-bd2c-38f3068938c0.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/22394de7-f95b-4001-a961-d854c34f1d8c.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/23d88465-65d9-4718-8725-8dbf0a98a5a4.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/b9f285e4-eb97-47f0-9ca5-28ca558acf58.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/248f9401-c340-474f-baed-1a523f441f3e.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/24dc7158-036c-4a66-9280-e934f470be53.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/24e99232-9434-457f-a9a0-69dd7ecf675f.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/25f00ee3-8dfe-42d1-a67e-191fa5c3df4b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/0fb240b0-1bb5-4aee-8ad3-a24062ee9a20.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/2a317f0e-613e-48c4-9def-d18a3b834254.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/ef861253-914d-436e-aa01-731a5dd11e38.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/2b225eb3-c1b2-415a-99de-1a41a0ed4470.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/2bd6fe88-99fa-443d-8e42-bb3de5881213.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d552db90-8e22-427c-b004-1799adbcc6ba.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/2d59f524-840a-445f-b432-c97051eb7043.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/2ededcf5-1d80-4e2a-9c83-2a31998331ce.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/303cccc1-c674-4d3a-8c89-19ea729fdbef.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/30a6f399-6999-4f04-bb77-651e0214112f.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/a7ada2b7-1366-40c8-864e-fbb42d248124.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/327733fe-e68a-4f96-9e42-2b16629cbf8a.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/c58be1dd-1981-42ee-8de3-e365102884e5.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/343d630f-375f-496a-98c5-75a1e0aa2c2c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/46a8bf3e-7149-4d9b-8b31-a6b9c3d6b166.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/356f4aa8-ebc5-4edc-9724-badf6d02d61e.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/3942ae40-7f22-412c-aebe-4b064f68db9b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6621d884-5ba5-4356-bd50-94239ec5395a.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/39a5eb7d-0ece-4eca-bf0e-4bf2f8faf1e2.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/7d931bd2-5cfc-4e4c-83c0-498b5e17d15c.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/39ab37d4-2654-4102-ba75-17d6bbd79673.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/432aad91-9cc5-4518-bbfd-6cbed522dac6.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/3ac2cb20-6563-4505-85bc-1fd3b93902a3.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/3b473fe6-e147-477f-b088-9b8fb042a4f6.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/3c8b477a-8eda-407e-9e9f-7540c8808f89.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/3f637e86-6b74-4693-9131-1fe411fc21e5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/039771df-9741-4f4e-9793-9017386ac68e.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/3fa41725-c619-4ed8-811c-c6f0e9366126.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/4096cffa-a889-4622-852e-760fc7022d93.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/b0a88b9e-358f-4f35-b823-d6c025a516cf.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/43c175e2-7e7e-405a-8c92-0cf3d7400d12.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/447d0e44-5d87-4b7c-8e60-edb111fe1639.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/44ba8515-4a60-42c9-8878-b42e4e34ee15.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/fe42018b-4987-4389-8d44-fb0cfd0f4dab.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/44d9cfe6-742c-46de-8f53-4f49babfabcc.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/4503db6b-7224-4b81-9971-e7cfa56e10f2.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/4695f96b-c4f5-4bb6-a021-a13b6ceb2883.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/4883c564-f950-4a29-9f5f-6f924123cd22.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d5943dc2-12df-42bb-84bc-d6958260cb75.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/4a395a76-b1b6-4541-97b0-2e2603d47360.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/4d78add6-1027-4939-bb51-f99fca7db2ce.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/5031808b-5525-4118-92b4-317ec8bda985.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/9dc9f428-6e6d-4362-b4d4-dce50d9e732e.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/50ca8582-8787-45ff-a6b6-e1f0e8b44cb5.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/50e23c8a-7ba2-4c9c-9cfb-196c260fa1d5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/74bb6050-8d6d-48aa-8e71-31e92304b5af.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/52e0b7fe-271f-4713-b1b3-b06a286630d7.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/9df02971-cdd8-4464-abf9-8035bc233d2f.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/55e853dd-07bc-4086-8a2d-60d24ff75839.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/55f7db71-0a18-4b3d-b847-57959b8d2e32.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/af54e00c-b768-4497-829b-6bfac16f4efc.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/57c8fe6f-e970-4364-9359-9c273ca37b85.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/582d36c0-0916-4706-9833-4fbc026701f5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/34eaf943-a8b5-4358-aadc-62ff656ab542.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/58cbe76f-7cab-490d-8668-1076e76d9e9f.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6ed77f5b-e4ce-4722-934e-3c5ec34b6d5a.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/58f1212f-a307-4179-a55c-8449e237cb3d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/89b364ae-9050-4671-b595-632ba0efc78b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/5ac654b1-f891-46b4-a4b2-3b8f9a60a02b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/ee4862f3-f298-446e-a68b-bd97259052e6.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/5b94cf27-4aa0-4de1-a9f2-ba8f5ca790fd.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d0dd43b7-5571-4e47-af51-796b4a6a1cfe.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/5bf54b6d-d2b6-4211-b3f4-0713b84dd315.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/843174a9-6cff-45ba-9573-67904691a30f.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/5c2e3a85-838c-41d5-b55e-b62fc1b95a1e.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/5d36b880-7b3f-49b1-a018-7de59867d376.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6f56551e-bfa3-4efe-b95a-411e54885ceb.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/5da76978-7dc4-4d4e-8e4c-e3189e2c2b07.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/5ebcde3b-f0fd-4e5d-b3de-ada8f0b5e03b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/3ca43ccf-8748-439f-80f7-a95978a6b1f2.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/5f1e618b-a1fc-41c6-9b05-f2a76c38feb5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6f4d32df-2a01-40e8-bfd1-9e83c6864789.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/6006a923-8f9b-4dfc-aa81-1e4672db6908.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6eb8e6a5-b361-4c4f-b161-e2ccd5ef277d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/63a3a9ca-aff2-428a-8df2-9a0ed4e398c6.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/7b74cacf-b8b4-4915-a71a-1dab321dab60.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/644a3f8a-6b32-4c3e-9701-acb426502f81.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/5d1627a0-f803-4736-8c3c-7bf1f0de0aa0.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/66cc412b-a4a1-4b42-89b4-7653eef41204.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/66de3573-9562-4cd8-82df-5d6be6b1f213.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/6770f2b1-1619-4937-bf8d-284b90a5d3c6.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/48293a53-d05b-4198-995f-103531f26923.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/6b2bd35a-d399-4486-b4ef-24abb3e6669f.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/6b58d90d-2e5e-4b7f-bc01-941f2633de89.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/6cd80be8-c9b3-4ba5-bf17-3ffc9b000743.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/452e213a-9762-42ec-8e2b-2cabc3eb254d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/70a0da32-7fe7-41a9-9fc1-265764a0b125.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/27d59ead-0f94-4554-8c9a-cd3aeb606fea.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/727c2d86-0daf-47d3-8eb4-500e648abfd6.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d274bf4d-f4ff-4270-9a5f-87685a0c6817.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/72ea8e77-8773-47bf-9c5f-bf51812065cd.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/e0cea27c-5b4e-4831-8fcf-65bccb9e5950.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/73c270f5-055a-4cc3-9036-c95321faec4a.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/dc3f2602-1f20-460a-b408-693001aa70bc.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/74423820-b24e-4dd1-b6c4-7ef3d6aa3b8c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/dcb63213-c81e-4eb7-82f1-a16a838299fe.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/74d02db5-a02d-43d0-ae7a-5aeba90249be.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/74ec3510-583d-4a76-ac69-38480fbf1387.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/f0b983cd-8bce-4b67-9214-493364244c26.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/76e3c1b4-cd2f-47f1-96bf-9b86a84aa24c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/b503e883-c9d2-46c0-9de2-158770abb32b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/77c9d69b-1078-477f-897f-c50bc5013fd5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d65cf124-6c8e-41e4-80dc-0c63b41d5636.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/785837db-1da3-46d0-866f-017c232547ad.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/79abd239-5eed-4195-9fa8-d729daa874ca.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/b9ded3ea-9701-441d-a593-e73e44d5fa3f.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/7c6dd46a-62ff-4d2c-b04a-df97ba55ed74.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/81c97cd3-df53-44d3-bf3d-1eb4dc67b62a.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/835489e2-b29b-426c-b4c9-3bb9f8eb6195.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/83d0a033-466c-463a-bb8c-be0f2953e9b2.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/8424ecdd-8857-4764-9fd0-d4bfa440c128.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/7dc4ea14-42a9-4b2f-a164-99da3dbb000b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/876ec159-fc25-4c97-9c37-e3ffaba7618b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/9b01dbe2-5043-40af-858c-33bbbf4ccc22.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/88e9493c-0914-489a-9d99-addff4f0efd0.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6c7cb85e-0aac-40d8-9b55-d9b455c89985.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/891d4f63-df7f-462c-8908-ff4380c91b8b.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/8c179a21-be6f-4db8-a9b0-9afeb5c36b1c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/88e01e80-50e2-4b0f-834c-86f6a3508287.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/8cd02d5b-96f7-4b59-8676-ca07a63a7693.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/8ded6c98-85ea-4858-a66d-4fc8caecb7c5.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/8f8b7b46-53bb-42ab-907a-4ea87eb09ab4.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/7dc5f386-2db3-4405-9796-34f1b8a6755f.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/8fb0f6d1-388b-41b3-964b-5965c58605c7.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/fb2f308f-a025-4606-b789-0455c7cf0af8.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/8fc97425-3b86-42cd-820d-2ad6321508f3.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/652c9b9f-316e-46b2-a2d4-8dc8d5e6116f.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9169b74f-7458-4562-bc90-41efe0edfc22.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/921eefeb-730e-46fc-9924-d338fb286592.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/bc68fbda-8e6d-4368-b322-49a6854d81e3.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/929d1dc7-6f9e-444b-9b57-ab8baacfe524.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/c8321b5a-8f65-4465-892a-a3432efba5ac.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/92d4209d-5053-4284-a9f5-63372c8cd05b.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/9340b854-025c-40da-9387-385d38433bef.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/4c0dc941-6ecf-45b4-91f8-3fb10e770512.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9552c822-a654-46a8-acd9-0320a4b6118b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/ca9f52b1-42c0-4091-bc29-efc0da9606e0.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/969ddfa4-c0c8-41c8-b51b-40febf152c7a.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6b71968e-97d3-4fad-89d0-ffb7743446a9.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/96b9b3cb-7131-46ba-a193-f46446f72194.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/9e7bf71b-fe8d-43cf-8bdd-6cfb1fb1b597.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9713c534-6f51-45c7-a03c-1acb642c519c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d5be0aac-6f00-4961-b21c-4075bd6ca528.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9a3c04af-7ba4-4520-a666-3045c1b3385c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/fcc71fcd-b28e-4247-beb6-6f5422218c54.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9acad6e8-8380-47c9-bac8-3144c9b7b765.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/287ec12a-c1fb-4b8f-a77c-acc99821eabd.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9acf0817-ab1f-45e1-a26f-99c3c331a184.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/10636534-51ee-4698-b582-e56751bebb4d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9cc5a374-ca08-4fa9-a2b7-e1f65871962d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/a200b1e4-2ebc-4c15-bdf2-2575408877f8.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9ce465b3-b4a6-4646-a559-3088621a1da1.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/96c79132-d55f-43d2-bdb3-6fe55734b6d5.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9cf406dc-bd69-4919-a396-d7e267b01645.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/f3890caa-fa8b-43bc-ba30-82c5bbe1d12a.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9d61082b-7e07-4da2-9210-5744a2481da4.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/6d59fa9e-b988-47e3-99b5-e06510f98e45.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9dc6ec60-597c-4305-b251-2e3342603446.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/ef585824-7bfa-427a-a185-4317c0bcb4f6.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9f8332c7-95b4-41ec-8e7f-f5ece0a545e1.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/e311e99e-ae64-442a-aed1-6fac29687d18.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/9fa1e59d-36cb-43c9-a788-ed95ae93f3d0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/9fd0753f-c607-4d49-82d1-40bda27e014f.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/a0bd6a5f-784d-4f0a-9d66-10f4b80c8d3e.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/a1df3af1-a3e7-4521-a085-e4dc3cd1cc57.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/a48324ae-7c1a-489e-b3c4-93d12267f88d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/e9afeef0-fcbe-4d97-8b39-c57ab24a3f84.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/a5a16fb6-5513-4e17-b871-968425bfdf81.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/aa42da27-2c6a-4731-9678-edd3aefde4a7.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/a9c016ed-463b-4e06-88ce-020c2b4dd981.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/29fcf4cb-883f-475e-a68f-107cffc83f1c.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/a9e90b22-4415-44cf-bf2f-6acb2733312f.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/a9fcaf04-0c1f-4b0f-bb5b-ede9da96180f.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/dfab89de-7365-4bc8-b332-6f62733123a2.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ab39be69-bf52-4250-8e38-25b04d1e6a87.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/fa3bdcef-dfba-4cf2-a06f-e6078c07fb7d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ab52b70e-ca1f-47fe-aff8-0bfae7eeb8ff.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/bf8d6419-472c-4941-8d69-9bb01af5c71a.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ab823208-66f4-4a97-836b-024bf27b7c74.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/adc533a7-970b-4c5b-a037-2181531a35d6.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/ae9fe233-9acc-4e96-ba8e-1fb1d9bc2ea5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/79cddeac-828b-49a1-b860-b422e2c8d2ea.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/aec4ecf4-c1d7-424f-8acc-388ff286a360.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/b0283997-7931-476d-a92f-d7569f6ea34c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/290aaff5-71eb-4d71-87db-3757d3e9794b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/b144b5df-c3b5-4bda-bb3d-9c8fa1182080.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/9895c28f-eba2-4e37-911b-6c0f05f7d72b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/b1c80e35-8949-4425-8b96-1df803cacde5.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/5aa47ea4-79de-4547-9320-cf8c614c7366.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/b28eac50-4517-4fc3-8fd9-a6a7f8d19ba5.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/b2af59e9-60e3-4d97-8c72-c7ba092113a3.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/b2e1bf3c-2c36-4fb5-9db7-c10a29563a37.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/b62bf889-da3c-495a-8707-f3bde73efe92.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/b6b94f21-ef4b-4425-9c7e-ca2b574b0add.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/95962144-c639-4902-ad2d-be11ccc5eaab.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/b6da32be-5c6d-40a8-b1d0-15e0576c6f71.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/c3548011-dc57-4542-a855-1e7f9d7762f7.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/b7bd78a1-aa4a-4847-8e9a-969989ef3cb3.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/535db21f-b22e-4a05-a7e8-81e3664305b8.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/b7ee5425-c4ec-4030-9343-1737628b1936.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/bab6c393-692c-4681-ac0d-76c0d9dabea6.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/bc7155ac-18c9-4335-9ec2-c8762d37a057.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/db3ab847-948d-4ee0-b5cb-c57c0caa24fd.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/bde3bbca-be39-494f-944a-f73582cd5f97.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/2e3410a1-49b5-4f65-8f26-bb1df213c2b8.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c0adda90-8b05-4a6b-b091-9d2c9d4b84f8.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/aaa770da-fc42-4e4a-978c-8fef22c0ebf9.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c14e3dd6-ffca-4011-b24d-da330162804d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/ec9656c3-a984-47db-8661-e1ae8751d288.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c2841576-352b-41de-95d8-3f2640504c9c.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/a718a6f9-db30-4a9c-9d2b-b83055cf36ae.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c2d305cc-8fb4-4f34-a9b3-96862837a36b.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/c3f536d6-a04a-4651-b3f9-dd2c22593f7f.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/8d1a63f3-7ec4-405c-9d78-d176018389dc.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c447f3cf-05b3-413d-9a50-f09a22b17e8d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/3efe8341-33bc-492e-8a0f-69a507502b43.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c44a35b8-4254-4f4f-99a8-18a3195ae696.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/c5b7d67e-7260-4f08-a0e9-4d31ce9bbecf.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/5eaa9fa9-0bce-47ce-8f28-d5ba32c566c3.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c673c1f3-2ac5-4fef-a9a2-203e67e1fd10.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/5410568f-2e3c-49b2-8112-f43c52342298.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c75bba52-b3a5-4565-bb45-104ebed9e3d2.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/c78c38cc-7b61-4dc4-820d-0a5b684ef52e.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/b4ede50d-7edb-4461-bee6-77d13456fa30.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/c85ba9aa-9ff1-42a4-b80a-ef39ab009e85.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/c948f136-416f-447e-8152-54a1cd1d1329.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/c954e153-d3e9-4488-869f-d00cfdfac5ee.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/cb3d0ca7-8d14-408a-a2f5-2e25f7b86d6c.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/cbf4ce9c-f8d8-4fb7-a197-15bb9847df04.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/cc60b509-2ed5-493d-bb9f-333c6d2a6006.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/cc8a495d-330d-447d-8a80-a8a6ecc409c5.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/ccbcb114-7f73-43d1-904a-3a7ae660c531.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/85ca40d2-f02e-45a4-9db0-c483f6ae1db5.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/cd1f5c42-582e-408e-bb9f-08f7b868d9fc.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/1f56fbc1-47f5-4dc3-b91b-6e49e4ea00dc.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/cde81597-2e0a-4795-910a-6e475d7cc073.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/ce1d1d6f-38f2-48bf-98bd-6e091c7ca5b8.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/cfc9c8e8-cbe1-49f0-9afa-ead7f9455a2e.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/77b7b404-bc0c-4637-96b0-7344f782989e.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/cfd353f0-073f-462e-928b-3cda9344eec4.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/afe94aea-47e2-4310-8e25-3e7cadc5a75d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d1b23182-244c-4e94-ac46-894b3117d1bb.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d271a24f-efe8-424d-8fd5-f6b3756ba4ca.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/30bc31e4-40b3-4bcb-bb36-1dd5a8c59a32.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d2bce7a9-8709-4042-a31a-1f07b2711637.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d3424d31-0502-4623-996e-f0194e5085ce.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/763968fd-f7ab-4a46-a0ef-6a496b21d3dd.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d3a1c862-8f02-4aca-8b58-bbd337ab48bf.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d3cc3323-51af-4882-ae12-49e7384b746d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/bbee032e-7fc1-4b4d-b1db-cc54b24c20c8.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d400ab2d-b4dc-43bb-bb77-f49c666bf4b1.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/e8e25d3c-569e-4eae-a707-3afa8c5f46ec.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d6182579-dc5d-4db9-a8be-0a7f3998abde.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d6b64759-26b7-45b1-bf8e-5c0d98611e0d.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d7667903-7149-4f2f-9c15-d8a4b5f4d347.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/50986ada-ff64-405f-911d-f6c3655fb658.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d76bed23-33cf-4f86-bb01-add1185098a1.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/ccba7903-9882-4982-ab84-355667d8419a.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d7c2d507-640e-4705-92d0-d2e3951cc29b.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d83f338d-dde3-494b-9bea-cae511e3517c.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/d982d2b5-4bc0-4ae9-a516-f29c2848d64b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/dbc449e9-404e-435b-8b0f-3c853c7f0efe.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/d9b23b65-6780-446b-950c-48ca668f838a.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/da439e8c-3b74-4371-9657-0736d826c7d1.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/daf3d823-b7f1-4584-acf3-90b9d880332c.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/db7d3f03-1f7f-43bf-8125-f7c2d345fca2.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/3f6b5de5-c942-4ef1-8b04-5ee6859bb27b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ddb5b885-93de-49d1-8150-3235d702c1c8.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/25797538-2dc6-436c-b64a-597ae6d5db6e.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ddc4b13a-4a0f-46fd-8fcb-01100058f78a.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/de325534-3fd3-480a-9eb8-eb47960a753a.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/f2906fc0-9192-48ca-bc5d-52e922b04d8d.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/de804900-3470-478e-a51f-e3919b301326.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/c46f1705-b4d5-4f39-b138-391a85fb0302.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/df11deb8-940d-45a3-89b7-48c814735448.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/df991b42-ed8e-4f2c-bf0c-aa7522f147b6.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/e4683def-8d1d-472b-a5ab-bb3885c0c98e.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/e5e84f9e-28da-4cf4-bcba-c9145fe39b07.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/e6b45405-cd9f-4c6e-a9f1-6ec953747c65.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/e88c9ad1-ec37-4fcd-b086-862e1e7ce8fd.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/d79069c1-3b8e-4df7-8b14-4eeaa44241e1.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/e97c5043-a73e-4979-a529-34b4daaee88d.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/e9ee330d-dfca-440e-8b8c-0a3b4e8c8730.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/ea1ba124-9cb3-4427-969a-bacd47e7d920.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/eaba6ebe-f0df-4918-aee5-ef4e3ffedcf0.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/725d6877-7260-4ca3-91d3-da4e9ccbf206.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ed84a435-c52c-4294-ad80-bf3c63e2878d.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/df004f6b-683d-41e8-848f-2a838c585f43.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ee191a7a-ed3e-46e2-a07a-2ca7d566d0f6.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/ee4e512b-4982-49b6-9c71-31984b58e1d0.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/eef25cf9-afd0-43b1-b9c5-fbd997bd5fe0.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/0c826d2e-41ce-474b-ad99-f4561baf03de.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/ef8b7148-cc8f-4a76-a981-68062909e5a9.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/f1f21925-3e22-4dd1-b53b-bb52bcf26c2b.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/e0a34a9a-69b6-4732-9b1c-7a2c6445cb76.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/f2b30fe6-1a32-4f0f-98c1-478e90db1f1b.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/f43c313b-8a7b-467b-8442-fc5bcb8b4388.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/f5c16d2f-ebc5-4617-9b96-971696af7c52.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/f6ca6bd3-543f-4779-8367-c5c883f04b95.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/sprites/fad5eec2-5fd5-412f-9abb-987a3087dc54.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/c95ee1bb-1e53-4568-ba92-9606071ad3a6.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/fbea0ab6-3094-438e-807d-5a24d0d32cf3.png +0 -0
- /ksaa-2025.7.27.0/kotonebot/kaa/sprites/37f1d878-467f-4ba0-bc59-bb327797191b.png → /ksaa-2025.8.2.0/kotonebot/kaa/sprites/fe9a7ad5-4506-4dfe-80a5-6f4bb9703f9c.png +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/actions/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/actions/commu.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/actions/loading.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/actions/stats.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/clear_logs.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/acquire_activity_funds.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/acquire_presents.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/assignment.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/club_reward.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/daily/upgrade_support_card.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/end_game.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/tasks/produce/p_drink.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/util/paths.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/kaa/util/trace.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/logging/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/logging/log.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/primitives/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/primitives/geometry.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/primitives/visual.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/tools/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/tools/mirror.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/file_host/sensio.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/file_host/tmp_send.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/pushkit/__init__.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/pushkit/image_host.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/pushkit/protocol.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/pushkit/wxpusher.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/ui/user.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/kotonebot/util.py +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/ksaa.egg-info/dependency_links.txt +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/ksaa.egg-info/entry_points.txt +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/ksaa.egg-info/requires.txt +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/ksaa.egg-info/top_level.txt +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/pyproject.toml +0 -0
- {ksaa-2025.7.27.0 → ksaa-2025.8.2.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ksaa
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.8.2.0
|
|
4
4
|
Summary: Kotones Auto Assistant(kaa) is a script for game 'Gakuen Idol M@ster' that automates the dailies and produces.
|
|
5
5
|
Requires-Python: ~=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
## kaa
|
|
3
|
+
### v2025.8.2.0
|
|
4
|
+
脚本:
|
|
5
|
+
* [修复] 修复 DMM 版启动游戏提示找不到窗口的问题(#46e72c4)
|
|
6
|
+
* [重构] 将部分 while 循环用 Loop 类重写(#8c99955)
|
|
7
|
+
|
|
8
|
+
界面:
|
|
9
|
+
* [新增] 模拟器列表懒加载(#0f18d36)
|
|
10
|
+
* [新增] 新增创建桌面快捷方式功能(#6640a21)
|
|
11
|
+
* [新增] 新增命令行参数 --start-immidiately(#c39dd79)
|
|
12
|
+
|
|
13
|
+
启动器:
|
|
14
|
+
* [新增] 以管理员重启时跳过重复检查更新(#142d9ef)
|
|
15
|
+
* [新增] 启动器支持拖拽安装 whl 包(#11c75dc)
|
|
16
|
+
|
|
17
|
+
### v2025.7.27.1
|
|
18
|
+
脚本:
|
|
19
|
+
* [修复] 修复检测培育阶段函数过早返回的问题(#de1328c)
|
|
20
|
+
|
|
3
21
|
### v2025.7.27.0
|
|
4
22
|
脚本:
|
|
5
23
|
* [修复] 修复竞赛总是卡在跳过页面(#738ec9e)
|
|
@@ -1,277 +1,277 @@
|
|
|
1
|
-
import time
|
|
2
|
-
from functools import lru_cache, partial
|
|
3
|
-
from typing import Callable, Any, overload, Literal, Generic, TypeVar, cast, get_args, get_origin
|
|
4
|
-
|
|
5
|
-
from cv2.typing import MatLike
|
|
6
|
-
|
|
7
|
-
from kotonebot.util import Interval
|
|
8
|
-
from kotonebot import device, image, ocr
|
|
9
|
-
from kotonebot.backend.core import Image
|
|
10
|
-
from kotonebot.backend.ocr import TextComparator
|
|
11
|
-
from kotonebot.client.protocol import ClickableObjectProtocol
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class LoopAction:
|
|
15
|
-
def __init__(self, loop: 'Loop', func: Callable[[], ClickableObjectProtocol | None]):
|
|
16
|
-
self.loop = loop
|
|
17
|
-
self.func = func
|
|
18
|
-
self.result: ClickableObjectProtocol | None = None
|
|
19
|
-
|
|
20
|
-
@property
|
|
21
|
-
def found(self):
|
|
22
|
-
"""
|
|
23
|
-
是否找到结果。若父 Loop 未在运行中,则返回 False。
|
|
24
|
-
"""
|
|
25
|
-
if not self.loop.running:
|
|
26
|
-
return False
|
|
27
|
-
return bool(self.result)
|
|
28
|
-
|
|
29
|
-
def __bool__(self):
|
|
30
|
-
return self.found
|
|
31
|
-
|
|
32
|
-
def reset(self):
|
|
33
|
-
"""
|
|
34
|
-
重置 LoopAction,以复用此对象。
|
|
35
|
-
"""
|
|
36
|
-
self.result = None
|
|
37
|
-
|
|
38
|
-
def do(self):
|
|
39
|
-
"""
|
|
40
|
-
执行 LoopAction。
|
|
41
|
-
:return: 执行结果。
|
|
42
|
-
"""
|
|
43
|
-
if not self.loop.running:
|
|
44
|
-
return
|
|
45
|
-
if self.loop.found_anything:
|
|
46
|
-
# 本轮循环已执行任意操作,因此不需要再继续检测
|
|
47
|
-
return
|
|
48
|
-
self.result = self.func()
|
|
49
|
-
if self.result:
|
|
50
|
-
self.loop.found_anything = True
|
|
51
|
-
|
|
52
|
-
def click(self, *, at: tuple[int, int] | None = None):
|
|
53
|
-
"""
|
|
54
|
-
点击寻找结果。若结果为空,会跳过执行。
|
|
55
|
-
|
|
56
|
-
:return:
|
|
57
|
-
"""
|
|
58
|
-
if self.result:
|
|
59
|
-
if at is not None:
|
|
60
|
-
device.click(*at)
|
|
61
|
-
else:
|
|
62
|
-
device.click(self.result)
|
|
63
|
-
|
|
64
|
-
def call(self, func: Callable[[ClickableObjectProtocol], Any]):
|
|
65
|
-
pass
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
class Loop:
|
|
69
|
-
def __init__(
|
|
70
|
-
self,
|
|
71
|
-
*,
|
|
72
|
-
timeout: float = 300,
|
|
73
|
-
interval: float = 0.3,
|
|
74
|
-
auto_screenshot: bool = True
|
|
75
|
-
):
|
|
76
|
-
self.running = True
|
|
77
|
-
self.found_anything = False
|
|
78
|
-
self.auto_screenshot = auto_screenshot
|
|
79
|
-
"""
|
|
80
|
-
是否在每次循环开始时(Loop.tick() 被调用时)截图。
|
|
81
|
-
"""
|
|
82
|
-
self.__last_loop: float = -1
|
|
83
|
-
self.__interval = Interval(interval)
|
|
84
|
-
self.screenshot: MatLike | None = None
|
|
85
|
-
"""上次截图时的图像数据。"""
|
|
86
|
-
|
|
87
|
-
def __iter__(self):
|
|
88
|
-
self.__interval.reset()
|
|
89
|
-
return self
|
|
90
|
-
|
|
91
|
-
def __next__(self):
|
|
92
|
-
if not self.running:
|
|
93
|
-
raise StopIteration
|
|
94
|
-
self.found_anything = False
|
|
95
|
-
self.__last_loop = time.time()
|
|
96
|
-
return self.tick()
|
|
97
|
-
|
|
98
|
-
def tick(self):
|
|
99
|
-
self.__interval.wait()
|
|
100
|
-
if self.auto_screenshot:
|
|
101
|
-
self.screenshot = device.screenshot()
|
|
102
|
-
self.__last_loop = time.time()
|
|
103
|
-
self.found_anything = False
|
|
104
|
-
return self
|
|
105
|
-
|
|
106
|
-
def exit(self):
|
|
107
|
-
"""
|
|
108
|
-
结束循环。
|
|
109
|
-
"""
|
|
110
|
-
self.running = False
|
|
111
|
-
|
|
112
|
-
@overload
|
|
113
|
-
def when(self, condition: Image) -> LoopAction:
|
|
114
|
-
...
|
|
115
|
-
|
|
116
|
-
@overload
|
|
117
|
-
def when(self, condition: TextComparator) -> LoopAction:
|
|
118
|
-
...
|
|
119
|
-
|
|
120
|
-
def when(self, condition: Any):
|
|
121
|
-
"""
|
|
122
|
-
判断某个条件是否成立。
|
|
123
|
-
|
|
124
|
-
:param condition:
|
|
125
|
-
:return:
|
|
126
|
-
"""
|
|
127
|
-
if isinstance(condition, Image):
|
|
128
|
-
func = partial(image.find, condition)
|
|
129
|
-
elif isinstance(condition, TextComparator):
|
|
130
|
-
func = partial(ocr.find, condition)
|
|
131
|
-
else:
|
|
132
|
-
raise ValueError('Invalid condition type.')
|
|
133
|
-
la = LoopAction(self, func)
|
|
134
|
-
la.reset()
|
|
135
|
-
la.do()
|
|
136
|
-
return la
|
|
137
|
-
|
|
138
|
-
def until(self, condition: Any):
|
|
139
|
-
"""
|
|
140
|
-
当满足指定条件时,结束循环。
|
|
141
|
-
|
|
142
|
-
等价于 ``loop.when(...).call(lambda _: loop.exit())``
|
|
143
|
-
"""
|
|
144
|
-
return self.when(condition).call(lambda _: self.exit())
|
|
145
|
-
|
|
146
|
-
def click_if(self, condition: Any, *, at: tuple[int, int] | None = None):
|
|
147
|
-
"""
|
|
148
|
-
检测指定对象是否出现,若出现,点击该对象或指定位置。
|
|
149
|
-
|
|
150
|
-
``click_if()`` 等价于 ``loop.when(...).click(...)``。
|
|
151
|
-
|
|
152
|
-
:param condition: 检测目标。
|
|
153
|
-
:param at: 点击位置。若为 None,表示点击找到的目标。
|
|
154
|
-
"""
|
|
155
|
-
return self.when(condition).click(at=at)
|
|
156
|
-
|
|
157
|
-
StateType = TypeVar('StateType')
|
|
158
|
-
class StatedLoop(Loop, Generic[StateType]):
|
|
159
|
-
def __init__(
|
|
160
|
-
self,
|
|
161
|
-
states: list[Any] | None = None,
|
|
162
|
-
initial_state: StateType | None = None,
|
|
163
|
-
*,
|
|
164
|
-
timeout: float = 300,
|
|
165
|
-
interval: float = 0.3,
|
|
166
|
-
auto_screenshot: bool = True
|
|
167
|
-
):
|
|
168
|
-
self.__tmp_states = states
|
|
169
|
-
self.__tmp_initial_state = initial_state
|
|
170
|
-
self.state: StateType
|
|
171
|
-
super().__init__(timeout=timeout, interval=interval, auto_screenshot=auto_screenshot)
|
|
172
|
-
|
|
173
|
-
def __iter__(self):
|
|
174
|
-
# __retrive_state_values() 只能在非 __init__ 中调用
|
|
175
|
-
self.__retrive_state_values()
|
|
176
|
-
return super().__iter__()
|
|
177
|
-
|
|
178
|
-
def __retrive_state_values(self):
|
|
179
|
-
# HACK: __orig_class__ 是 undocumented 属性
|
|
180
|
-
if not hasattr(self, '__orig_class__'):
|
|
181
|
-
# 如果 Foo 不是以参数化泛型的方式实例化的,可能没有 __orig_class__
|
|
182
|
-
if self.state is None:
|
|
183
|
-
raise ValueError('Either specify `states` or use StatedLoop[Literal[...]] syntax.')
|
|
184
|
-
else:
|
|
185
|
-
generic_type_args = get_args(self.__orig_class__) # type: ignore
|
|
186
|
-
if len(generic_type_args) != 1:
|
|
187
|
-
raise ValueError('StatedLoop must have exactly one generic type argument.')
|
|
188
|
-
state_values = get_args(generic_type_args[0])
|
|
189
|
-
if not state_values:
|
|
190
|
-
raise ValueError('StatedLoop must have at least one state value.')
|
|
191
|
-
self.states = cast(tuple[StateType, ...], state_values)
|
|
192
|
-
self.state = self.__tmp_initial_state or self.states[0]
|
|
193
|
-
return state_values
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
def StatedLoop2(states: StateType) -> StatedLoop[StateType]:
|
|
197
|
-
state_values = get_args(states)
|
|
198
|
-
return cast(StatedLoop[StateType], Loop())
|
|
199
|
-
|
|
200
|
-
if __name__ == '__main__':
|
|
201
|
-
from kotonebot.kaa.tasks import R
|
|
202
|
-
from kotonebot.backend.ocr import contains
|
|
203
|
-
from kotonebot.backend.context import manual_context, init_context
|
|
204
|
-
|
|
205
|
-
# T = TypeVar('T')
|
|
206
|
-
# class Foo(Generic[T]):
|
|
207
|
-
# def get_literal_params(self) -> list | None:
|
|
208
|
-
# """
|
|
209
|
-
# 尝试获取泛型参数 T (如果它是 Literal 类型) 的参数列表。
|
|
210
|
-
# """
|
|
211
|
-
# # self.__orig_class__ 会是 Foo 的具体参数化类型,
|
|
212
|
-
# # 例如 Foo[Literal['p0', 'p1', 'p2', 'p3', 'ap']]
|
|
213
|
-
# if not hasattr(self, '__orig_class__'):
|
|
214
|
-
# # 如果 Foo 不是以参数化泛型的方式实例化的,可能没有 __orig_class__
|
|
215
|
-
# return None
|
|
216
|
-
#
|
|
217
|
-
# # generic_type_args 是传递给 Foo 的类型参数元组
|
|
218
|
-
# # 例如 (Literal['p0', 'p1', 'p2', 'p3', 'ap'],)
|
|
219
|
-
# generic_type_args = get_args(self.__orig_class__)
|
|
220
|
-
#
|
|
221
|
-
# if not generic_type_args:
|
|
222
|
-
# # Foo 没有类型参数
|
|
223
|
-
# return None
|
|
224
|
-
#
|
|
225
|
-
# # T_type 是 Foo 的第一个类型参数
|
|
226
|
-
# # 例如 Literal['p0', 'p1', 'p2', 'p3', 'ap']
|
|
227
|
-
# t_type = generic_type_args[0]
|
|
228
|
-
#
|
|
229
|
-
# # 检查 T_type 是否是 Literal 类型
|
|
230
|
-
# if get_origin(t_type) is Literal:
|
|
231
|
-
# # literal_args 是 Literal 类型的参数元组
|
|
232
|
-
# # 例如 ('p0', 'p1', 'p2', 'p3', 'ap')
|
|
233
|
-
# literal_args = get_args(t_type)
|
|
234
|
-
# return list(literal_args)
|
|
235
|
-
# else:
|
|
236
|
-
# # T 不是 Literal 类型
|
|
237
|
-
# return None
|
|
238
|
-
# f = Foo[Literal['p0', 'p1', 'p2', 'p3', 'ap']]()
|
|
239
|
-
# values = f.get_literal_params()
|
|
240
|
-
# 1
|
|
241
|
-
|
|
242
|
-
from typing_extensions import reveal_type
|
|
243
|
-
slp = StatedLoop[Literal['p0', 'p1', 'p2', 'p3', 'ap']]()
|
|
244
|
-
for l in slp:
|
|
245
|
-
reveal_type(l.states)
|
|
246
|
-
|
|
247
|
-
# init_context()
|
|
248
|
-
# manual_context().begin()
|
|
249
|
-
# for l in Loop():
|
|
250
|
-
# l.when(R.Produce.ButtonUse).click()
|
|
251
|
-
# l.when(R.Produce.ButtonRefillAP).click()
|
|
252
|
-
# l.when(contains("123")).click()
|
|
253
|
-
# l.click_if(contains("!23"), at=(1, 2))
|
|
254
|
-
|
|
255
|
-
# State = Literal['p0', 'p1', 'p2', 'p3', 'ap']
|
|
256
|
-
# for sl in StatedLoop[State]():
|
|
257
|
-
# match sl.state:
|
|
258
|
-
# case 'p0':
|
|
259
|
-
# sl.click_if(R.Produce.ButtonProduce)
|
|
260
|
-
# sl.click_if(contains('master'))
|
|
261
|
-
# sl.when(R.Produce.ButtonPIdolOverview).goto('p1')
|
|
262
|
-
# # AP 不足
|
|
263
|
-
# sl.when(R.Produce.TextAPInsufficient).goto('ap')
|
|
264
|
-
# case 'ap':
|
|
265
|
-
# pass
|
|
266
|
-
# # p1: 选择偶像
|
|
267
|
-
# case 'p1':
|
|
268
|
-
# sl.call(lambda _: select_idol(idol_skin_id), once=True)
|
|
269
|
-
# sl.when(R.Produce.TextAnotherIdolAvailableDialog).call(dialog.no)
|
|
270
|
-
# sl.click_if(R.Common.ButtonNextNoIcon)
|
|
271
|
-
# sl.until(R.Produce.TextStepIndicator2).goto('p2')
|
|
272
|
-
# case 'p2':
|
|
273
|
-
# sl.when(contains("123")).click()
|
|
274
|
-
# case 'p3':
|
|
275
|
-
# sl.click_if(contains("!23"), at=(1, 2))
|
|
276
|
-
# case _:
|
|
1
|
+
import time
|
|
2
|
+
from functools import lru_cache, partial
|
|
3
|
+
from typing import Callable, Any, overload, Literal, Generic, TypeVar, cast, get_args, get_origin
|
|
4
|
+
|
|
5
|
+
from cv2.typing import MatLike
|
|
6
|
+
|
|
7
|
+
from kotonebot.util import Interval
|
|
8
|
+
from kotonebot import device, image, ocr
|
|
9
|
+
from kotonebot.backend.core import Image
|
|
10
|
+
from kotonebot.backend.ocr import TextComparator
|
|
11
|
+
from kotonebot.client.protocol import ClickableObjectProtocol
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class LoopAction:
|
|
15
|
+
def __init__(self, loop: 'Loop', func: Callable[[], ClickableObjectProtocol | None]):
|
|
16
|
+
self.loop = loop
|
|
17
|
+
self.func = func
|
|
18
|
+
self.result: ClickableObjectProtocol | None = None
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def found(self):
|
|
22
|
+
"""
|
|
23
|
+
是否找到结果。若父 Loop 未在运行中,则返回 False。
|
|
24
|
+
"""
|
|
25
|
+
if not self.loop.running:
|
|
26
|
+
return False
|
|
27
|
+
return bool(self.result)
|
|
28
|
+
|
|
29
|
+
def __bool__(self):
|
|
30
|
+
return self.found
|
|
31
|
+
|
|
32
|
+
def reset(self):
|
|
33
|
+
"""
|
|
34
|
+
重置 LoopAction,以复用此对象。
|
|
35
|
+
"""
|
|
36
|
+
self.result = None
|
|
37
|
+
|
|
38
|
+
def do(self):
|
|
39
|
+
"""
|
|
40
|
+
执行 LoopAction。
|
|
41
|
+
:return: 执行结果。
|
|
42
|
+
"""
|
|
43
|
+
if not self.loop.running:
|
|
44
|
+
return
|
|
45
|
+
if self.loop.found_anything:
|
|
46
|
+
# 本轮循环已执行任意操作,因此不需要再继续检测
|
|
47
|
+
return
|
|
48
|
+
self.result = self.func()
|
|
49
|
+
if self.result:
|
|
50
|
+
self.loop.found_anything = True
|
|
51
|
+
|
|
52
|
+
def click(self, *, at: tuple[int, int] | None = None):
|
|
53
|
+
"""
|
|
54
|
+
点击寻找结果。若结果为空,会跳过执行。
|
|
55
|
+
|
|
56
|
+
:return:
|
|
57
|
+
"""
|
|
58
|
+
if self.result:
|
|
59
|
+
if at is not None:
|
|
60
|
+
device.click(*at)
|
|
61
|
+
else:
|
|
62
|
+
device.click(self.result)
|
|
63
|
+
|
|
64
|
+
def call(self, func: Callable[[ClickableObjectProtocol], Any]):
|
|
65
|
+
pass
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class Loop:
|
|
69
|
+
def __init__(
|
|
70
|
+
self,
|
|
71
|
+
*,
|
|
72
|
+
timeout: float = 300,
|
|
73
|
+
interval: float = 0.3,
|
|
74
|
+
auto_screenshot: bool = True
|
|
75
|
+
):
|
|
76
|
+
self.running = True
|
|
77
|
+
self.found_anything = False
|
|
78
|
+
self.auto_screenshot = auto_screenshot
|
|
79
|
+
"""
|
|
80
|
+
是否在每次循环开始时(Loop.tick() 被调用时)截图。
|
|
81
|
+
"""
|
|
82
|
+
self.__last_loop: float = -1
|
|
83
|
+
self.__interval = Interval(interval)
|
|
84
|
+
self.screenshot: MatLike | None = None
|
|
85
|
+
"""上次截图时的图像数据。"""
|
|
86
|
+
|
|
87
|
+
def __iter__(self):
|
|
88
|
+
self.__interval.reset()
|
|
89
|
+
return self
|
|
90
|
+
|
|
91
|
+
def __next__(self):
|
|
92
|
+
if not self.running:
|
|
93
|
+
raise StopIteration
|
|
94
|
+
self.found_anything = False
|
|
95
|
+
self.__last_loop = time.time()
|
|
96
|
+
return self.tick()
|
|
97
|
+
|
|
98
|
+
def tick(self):
|
|
99
|
+
self.__interval.wait()
|
|
100
|
+
if self.auto_screenshot:
|
|
101
|
+
self.screenshot = device.screenshot()
|
|
102
|
+
self.__last_loop = time.time()
|
|
103
|
+
self.found_anything = False
|
|
104
|
+
return self
|
|
105
|
+
|
|
106
|
+
def exit(self):
|
|
107
|
+
"""
|
|
108
|
+
结束循环。
|
|
109
|
+
"""
|
|
110
|
+
self.running = False
|
|
111
|
+
|
|
112
|
+
@overload
|
|
113
|
+
def when(self, condition: Image) -> LoopAction:
|
|
114
|
+
...
|
|
115
|
+
|
|
116
|
+
@overload
|
|
117
|
+
def when(self, condition: TextComparator) -> LoopAction:
|
|
118
|
+
...
|
|
119
|
+
|
|
120
|
+
def when(self, condition: Any):
|
|
121
|
+
"""
|
|
122
|
+
判断某个条件是否成立。
|
|
123
|
+
|
|
124
|
+
:param condition:
|
|
125
|
+
:return:
|
|
126
|
+
"""
|
|
127
|
+
if isinstance(condition, Image):
|
|
128
|
+
func = partial(image.find, condition)
|
|
129
|
+
elif isinstance(condition, TextComparator):
|
|
130
|
+
func = partial(ocr.find, condition)
|
|
131
|
+
else:
|
|
132
|
+
raise ValueError('Invalid condition type.')
|
|
133
|
+
la = LoopAction(self, func)
|
|
134
|
+
la.reset()
|
|
135
|
+
la.do()
|
|
136
|
+
return la
|
|
137
|
+
|
|
138
|
+
def until(self, condition: Any):
|
|
139
|
+
"""
|
|
140
|
+
当满足指定条件时,结束循环。
|
|
141
|
+
|
|
142
|
+
等价于 ``loop.when(...).call(lambda _: loop.exit())``
|
|
143
|
+
"""
|
|
144
|
+
return self.when(condition).call(lambda _: self.exit())
|
|
145
|
+
|
|
146
|
+
def click_if(self, condition: Any, *, at: tuple[int, int] | None = None):
|
|
147
|
+
"""
|
|
148
|
+
检测指定对象是否出现,若出现,点击该对象或指定位置。
|
|
149
|
+
|
|
150
|
+
``click_if()`` 等价于 ``loop.when(...).click(...)``。
|
|
151
|
+
|
|
152
|
+
:param condition: 检测目标。
|
|
153
|
+
:param at: 点击位置。若为 None,表示点击找到的目标。
|
|
154
|
+
"""
|
|
155
|
+
return self.when(condition).click(at=at)
|
|
156
|
+
|
|
157
|
+
StateType = TypeVar('StateType')
|
|
158
|
+
class StatedLoop(Loop, Generic[StateType]):
|
|
159
|
+
def __init__(
|
|
160
|
+
self,
|
|
161
|
+
states: list[Any] | None = None,
|
|
162
|
+
initial_state: StateType | None = None,
|
|
163
|
+
*,
|
|
164
|
+
timeout: float = 300,
|
|
165
|
+
interval: float = 0.3,
|
|
166
|
+
auto_screenshot: bool = True
|
|
167
|
+
):
|
|
168
|
+
self.__tmp_states = states
|
|
169
|
+
self.__tmp_initial_state = initial_state
|
|
170
|
+
self.state: StateType
|
|
171
|
+
super().__init__(timeout=timeout, interval=interval, auto_screenshot=auto_screenshot)
|
|
172
|
+
|
|
173
|
+
def __iter__(self):
|
|
174
|
+
# __retrive_state_values() 只能在非 __init__ 中调用
|
|
175
|
+
self.__retrive_state_values()
|
|
176
|
+
return super().__iter__()
|
|
177
|
+
|
|
178
|
+
def __retrive_state_values(self):
|
|
179
|
+
# HACK: __orig_class__ 是 undocumented 属性
|
|
180
|
+
if not hasattr(self, '__orig_class__'):
|
|
181
|
+
# 如果 Foo 不是以参数化泛型的方式实例化的,可能没有 __orig_class__
|
|
182
|
+
if self.state is None:
|
|
183
|
+
raise ValueError('Either specify `states` or use StatedLoop[Literal[...]] syntax.')
|
|
184
|
+
else:
|
|
185
|
+
generic_type_args = get_args(self.__orig_class__) # type: ignore
|
|
186
|
+
if len(generic_type_args) != 1:
|
|
187
|
+
raise ValueError('StatedLoop must have exactly one generic type argument.')
|
|
188
|
+
state_values = get_args(generic_type_args[0])
|
|
189
|
+
if not state_values:
|
|
190
|
+
raise ValueError('StatedLoop must have at least one state value.')
|
|
191
|
+
self.states = cast(tuple[StateType, ...], state_values)
|
|
192
|
+
self.state = self.__tmp_initial_state or self.states[0]
|
|
193
|
+
return state_values
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def StatedLoop2(states: StateType) -> StatedLoop[StateType]:
|
|
197
|
+
state_values = get_args(states)
|
|
198
|
+
return cast(StatedLoop[StateType], Loop())
|
|
199
|
+
|
|
200
|
+
if __name__ == '__main__':
|
|
201
|
+
from kotonebot.kaa.tasks import R
|
|
202
|
+
from kotonebot.backend.ocr import contains
|
|
203
|
+
from kotonebot.backend.context import manual_context, init_context
|
|
204
|
+
|
|
205
|
+
# T = TypeVar('T')
|
|
206
|
+
# class Foo(Generic[T]):
|
|
207
|
+
# def get_literal_params(self) -> list | None:
|
|
208
|
+
# """
|
|
209
|
+
# 尝试获取泛型参数 T (如果它是 Literal 类型) 的参数列表。
|
|
210
|
+
# """
|
|
211
|
+
# # self.__orig_class__ 会是 Foo 的具体参数化类型,
|
|
212
|
+
# # 例如 Foo[Literal['p0', 'p1', 'p2', 'p3', 'ap']]
|
|
213
|
+
# if not hasattr(self, '__orig_class__'):
|
|
214
|
+
# # 如果 Foo 不是以参数化泛型的方式实例化的,可能没有 __orig_class__
|
|
215
|
+
# return None
|
|
216
|
+
#
|
|
217
|
+
# # generic_type_args 是传递给 Foo 的类型参数元组
|
|
218
|
+
# # 例如 (Literal['p0', 'p1', 'p2', 'p3', 'ap'],)
|
|
219
|
+
# generic_type_args = get_args(self.__orig_class__)
|
|
220
|
+
#
|
|
221
|
+
# if not generic_type_args:
|
|
222
|
+
# # Foo 没有类型参数
|
|
223
|
+
# return None
|
|
224
|
+
#
|
|
225
|
+
# # T_type 是 Foo 的第一个类型参数
|
|
226
|
+
# # 例如 Literal['p0', 'p1', 'p2', 'p3', 'ap']
|
|
227
|
+
# t_type = generic_type_args[0]
|
|
228
|
+
#
|
|
229
|
+
# # 检查 T_type 是否是 Literal 类型
|
|
230
|
+
# if get_origin(t_type) is Literal:
|
|
231
|
+
# # literal_args 是 Literal 类型的参数元组
|
|
232
|
+
# # 例如 ('p0', 'p1', 'p2', 'p3', 'ap')
|
|
233
|
+
# literal_args = get_args(t_type)
|
|
234
|
+
# return list(literal_args)
|
|
235
|
+
# else:
|
|
236
|
+
# # T 不是 Literal 类型
|
|
237
|
+
# return None
|
|
238
|
+
# f = Foo[Literal['p0', 'p1', 'p2', 'p3', 'ap']]()
|
|
239
|
+
# values = f.get_literal_params()
|
|
240
|
+
# 1
|
|
241
|
+
|
|
242
|
+
from typing_extensions import reveal_type
|
|
243
|
+
slp = StatedLoop[Literal['p0', 'p1', 'p2', 'p3', 'ap']]()
|
|
244
|
+
for l in slp:
|
|
245
|
+
reveal_type(l.states)
|
|
246
|
+
|
|
247
|
+
# init_context()
|
|
248
|
+
# manual_context().begin()
|
|
249
|
+
# for l in Loop():
|
|
250
|
+
# l.when(R.Produce.ButtonUse).click()
|
|
251
|
+
# l.when(R.Produce.ButtonRefillAP).click()
|
|
252
|
+
# l.when(contains("123")).click()
|
|
253
|
+
# l.click_if(contains("!23"), at=(1, 2))
|
|
254
|
+
|
|
255
|
+
# State = Literal['p0', 'p1', 'p2', 'p3', 'ap']
|
|
256
|
+
# for sl in StatedLoop[State]():
|
|
257
|
+
# match sl.state:
|
|
258
|
+
# case 'p0':
|
|
259
|
+
# sl.click_if(R.Produce.ButtonProduce)
|
|
260
|
+
# sl.click_if(contains('master'))
|
|
261
|
+
# sl.when(R.Produce.ButtonPIdolOverview).goto('p1')
|
|
262
|
+
# # AP 不足
|
|
263
|
+
# sl.when(R.Produce.TextAPInsufficient).goto('ap')
|
|
264
|
+
# case 'ap':
|
|
265
|
+
# pass
|
|
266
|
+
# # p1: 选择偶像
|
|
267
|
+
# case 'p1':
|
|
268
|
+
# sl.call(lambda _: select_idol(idol_skin_id), once=True)
|
|
269
|
+
# sl.when(R.Produce.TextAnotherIdolAvailableDialog).call(dialog.no)
|
|
270
|
+
# sl.click_if(R.Common.ButtonNextNoIcon)
|
|
271
|
+
# sl.until(R.Produce.TextStepIndicator2).goto('p2')
|
|
272
|
+
# case 'p2':
|
|
273
|
+
# sl.when(contains("123")).click()
|
|
274
|
+
# case 'p3':
|
|
275
|
+
# sl.click_if(contains("!23"), at=(1, 2))
|
|
276
|
+
# case _:
|
|
277
277
|
# assert_never(sl.state)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import typing
|
|
3
|
+
|
|
4
|
+
import pythoncom
|
|
5
|
+
from win32comext.shell import shell, shellcon
|
|
6
|
+
|
|
7
|
+
def create_shortcut(target_file: str, target_args: str, link_file: str | None, *,
|
|
8
|
+
link_name: str | None = None,
|
|
9
|
+
icon_path: str, description: str = ""):
|
|
10
|
+
"""
|
|
11
|
+
Creates a shortcut.
|
|
12
|
+
|
|
13
|
+
:param target_file: The path to the target file.
|
|
14
|
+
:param target_args: The arguments for the target file.
|
|
15
|
+
:param link_file: The path to the shortcut file. If None, creates on the desktop.
|
|
16
|
+
:param link_name: The name of the shortcut file. If None, it is derived from the target file name.
|
|
17
|
+
Only used when link_file is None.
|
|
18
|
+
:param icon_path: The path to the icon file.
|
|
19
|
+
:param description: The description of the shortcut.
|
|
20
|
+
"""
|
|
21
|
+
pythoncom.CoInitialize()
|
|
22
|
+
if link_file is None:
|
|
23
|
+
desktop_path = shell.SHGetFolderPath(0, shellcon.CSIDL_DESKTOP, 0, 0)
|
|
24
|
+
if link_name is None:
|
|
25
|
+
link_name = os.path.splitext(os.path.basename(target_file))[0]
|
|
26
|
+
link_file = os.path.join(desktop_path, f"{link_name}.lnk")
|
|
27
|
+
|
|
28
|
+
shortcut = pythoncom.CoCreateInstance(
|
|
29
|
+
shell.CLSID_ShellLink,
|
|
30
|
+
None,
|
|
31
|
+
pythoncom.CLSCTX_INPROC_SERVER,
|
|
32
|
+
shell.IID_IShellLink
|
|
33
|
+
)
|
|
34
|
+
# TODO: 下面这些方法都没有 typing,会报错,需要一种方法加入 typing
|
|
35
|
+
shortcut.SetPath(target_file) # type: ignore
|
|
36
|
+
shortcut.SetArguments(target_args) # type: ignore
|
|
37
|
+
shortcut.SetDescription(description) # type: ignore
|
|
38
|
+
shortcut.SetIconLocation(icon_path, 0) # type: ignore
|
|
39
|
+
|
|
40
|
+
persist_file = shortcut.QueryInterface(pythoncom.IID_IPersistFile)
|
|
41
|
+
persist_file.Save(link_file, 0) # type: ignore
|
|
42
|
+
pythoncom.CoUninitialize()
|
|
43
|
+
|