ksaa 2025.5.23.1__py3-none-any.whl → 2025.5.23.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kotonebot/client/factory.py +8 -2
- kotonebot/client/host/custom.py +8 -3
- kotonebot/config/base_config.py +1 -1
- kotonebot/kaa/main/gr.py +44 -17
- kotonebot/kaa/main/kaa.py +7 -7
- kotonebot/kaa/metadata.py +19 -0
- kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- kotonebot/kaa/resources/game.db +0 -0
- kotonebot/kaa/resources/game_ver.txt +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-012_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-013_1.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-013_1.png +0 -0
- kotonebot/kaa/tasks/R.py +133 -133
- kotonebot/kaa/tasks/end_game.py +4 -1
- kotonebot/kaa/tasks/produce/in_purodyuusu.py +21 -6
- {ksaa-2025.5.23.1.dist-info → ksaa-2025.5.23.3.dist-info}/METADATA +1 -1
- {ksaa-2025.5.23.1.dist-info → ksaa-2025.5.23.3.dist-info}/RECORD +170 -150
- {ksaa-2025.5.23.1.dist-info → ksaa-2025.5.23.3.dist-info}/WHEEL +1 -1
- /kotonebot/kaa/sprites/{0b5c2d3f-28b1-456f-a452-05ca006f8b33.png → 08c2352f-0150-453a-aa0e-948dd0deef49.png} +0 -0
- /kotonebot/kaa/sprites/{4a5ec641-38ec-46b0-83c4-d7edacb754b0.png → 09a01092-0d32-4894-a47e-9983b39753df.png} +0 -0
- /kotonebot/kaa/sprites/{b326c50f-c88c-4b99-80a7-046053423a19.png → 0d1918db-e000-4452-8490-ace623127e76.png} +0 -0
- /kotonebot/kaa/sprites/{de1e3c4a-f6ed-467a-889c-25c01a613477.png → 12356f5d-4188-4aa5-abb3-d219ca0167ca.png} +0 -0
- /kotonebot/kaa/sprites/{c8f0cc49-5df8-4d7a-9ef6-2f021c2380a5.png → 14cc953d-0ff6-493f-9478-691b5cbd0d07.png} +0 -0
- /kotonebot/kaa/sprites/{ffd3c6b7-cac2-4d45-ae37-792404ea2b40.png → 157cfa99-d40c-48c2-8cf4-70835535522f.png} +0 -0
- /kotonebot/kaa/sprites/{0c359f2a-72d4-4203-9ca3-968a1948eee8.png → 172318e0-5e7b-4b61-9a17-6e2e66b27e69.png} +0 -0
- /kotonebot/kaa/sprites/{dac24ef9-e53d-4d95-aa09-fa694606c3ab.png → 19fae7eb-addd-4ea2-99ac-0f9262a4d9d6.png} +0 -0
- /kotonebot/kaa/sprites/{0672e1c6-6abc-452c-82b3-af6eb7454cfa.png → 1d6d5160-9525-42bf-a8d4-43c347d213eb.png} +0 -0
- /kotonebot/kaa/sprites/{5d963589-623d-4a49-9c72-af91134720b0.png → 1df6ff4b-17f8-4ee6-8df0-0b53e26b7f1e.png} +0 -0
- /kotonebot/kaa/sprites/{63e71ec7-6290-4efa-89cf-69c53d805a58.png → 1e9e795c-5dc1-4851-8d49-86181b9f4efe.png} +0 -0
- /kotonebot/kaa/sprites/{d21117c2-3679-4bb0-a5b3-5af5d12d8d3e.png → 22ab93e6-0192-48e1-a85f-73ee8db00395.png} +0 -0
- /kotonebot/kaa/sprites/{ec547e11-4952-4089-9744-1e89bd44389c.png → 23217053-c549-4ac7-b8c0-3324728e6acd.png} +0 -0
- /kotonebot/kaa/sprites/{1959c932-1bbf-4fee-b3a1-2ecfbc6d4209.png → 237636f2-aec0-40be-b7bb-e08607a89307.png} +0 -0
- /kotonebot/kaa/sprites/{6abb63c1-025a-425e-8f33-29f83f504d75.png → 263708c5-0177-4c6a-8df3-611ec314fa56.png} +0 -0
- /kotonebot/kaa/sprites/{11c2ff97-3303-4d6d-8e4f-6da2148bbe20.png → 26433c9e-0ea2-4da4-9207-8f3fbad04235.png} +0 -0
- /kotonebot/kaa/sprites/{f62dd2a2-bac6-4dc8-9a19-3e995ab80a3b.png → 267fcd93-6a5c-4954-a06b-e97f327e9141.png} +0 -0
- /kotonebot/kaa/sprites/{18670c18-07e3-4378-a8fc-4f9b331db00f.png → 276a66cc-95b1-4f86-b700-afa9c9f18149.png} +0 -0
- /kotonebot/kaa/sprites/{c64ff0a8-9f96-4ca7-902b-4f7298c1c431.png → 2e0f97d4-ce0b-4930-addd-cbdaedffc918.png} +0 -0
- /kotonebot/kaa/sprites/{c0ddf15a-a6f6-42f6-86b7-e17cde60b437.png → 2ef87b7f-d69e-4da2-878f-1cc35e48b15c.png} +0 -0
- /kotonebot/kaa/sprites/{46f24175-8657-497d-97e6-1c1ee356e4cd.png → 34ec068a-d6fd-47ac-bd2f-0c31f93c19f3.png} +0 -0
- /kotonebot/kaa/sprites/{2490bd58-bcf7-4c94-ab24-04e752137939.png → 370afc82-eea9-4063-afb7-5d5fec075510.png} +0 -0
- /kotonebot/kaa/sprites/{7c2f9216-56f2-4eec-8a45-1bd864316dad.png → 3720275d-cbf7-4513-a4a4-09f712b2286a.png} +0 -0
- /kotonebot/kaa/sprites/{4d0b8533-b3e2-4ea1-8204-a8d5e67e1f64.png → 37e3a757-bcbc-4a37-bbf9-a38162a8627e.png} +0 -0
- /kotonebot/kaa/sprites/{8e1ca316-39e6-4b9f-b497-84ad8848a3e1.png → 37f421f8-f615-43d1-a10f-f9a915a940d1.png} +0 -0
- /kotonebot/kaa/sprites/{907dc373-e2f5-4959-84cb-d7971a7fefd8.png → 382bc600-72f6-433f-809e-9fe2fdb31b32.png} +0 -0
- /kotonebot/kaa/sprites/{13a85dbd-e226-47cc-b6f5-c0d3b40654f5.png → 3851e552-fd41-4a15-a6b6-9636c773f67a.png} +0 -0
- /kotonebot/kaa/sprites/{985ec867-bc7c-47c5-8fcd-75f736f27507.png → 3a0e917b-f419-4398-8638-77f696d47cd4.png} +0 -0
- /kotonebot/kaa/sprites/{e4d076bd-7824-4496-a498-d6dc01ad90ba.png → 3e10014e-2063-424c-aeda-df985d351c12.png} +0 -0
- /kotonebot/kaa/sprites/{5f01b811-9aad-4439-a70b-c099a42c36fa.png → 415c45a8-9b71-4e0b-8cd2-f80a0a4aafb7.png} +0 -0
- /kotonebot/kaa/sprites/{50e462d5-ca14-4934-b35a-da3ebb8fb33f.png → 428f770b-e149-417e-bb8a-38c1cba024e1.png} +0 -0
- /kotonebot/kaa/sprites/{09fda5a8-c546-48f0-ae29-ebe4f4208d8b.png → 465d4e1a-c5f9-41b7-aa31-ce26d5c69c45.png} +0 -0
- /kotonebot/kaa/sprites/{128886a7-7629-4158-9538-3619542f775b.png → 465f1030-e538-4b22-a6f7-0087287b2e12.png} +0 -0
- /kotonebot/kaa/sprites/{4c4dd8e5-5370-4381-b6d4-c260b32015cf.png → 46ed11a3-f89e-4d5c-b534-da88d38b382b.png} +0 -0
- /kotonebot/kaa/sprites/{3a58e019-6328-412a-9d2f-85a73900371e.png → 474ce25b-8a3d-435e-8d7a-ab6566ae61a0.png} +0 -0
- /kotonebot/kaa/sprites/{e551148d-1b0d-4518-8711-4161863c93ef.png → 48a02c33-b7af-4ab5-bda1-3a2ec62a7076.png} +0 -0
- /kotonebot/kaa/sprites/{b9ad5832-889a-4a5f-adc0-5dfd55126d6a.png → 4b121018-f5c8-4c31-a5d9-48947982b191.png} +0 -0
- /kotonebot/kaa/sprites/{7bbac9cd-417f-4bd5-975a-a8a25c7bd922.png → 4b87be27-868a-40fb-b7e4-67c963c6c4b2.png} +0 -0
- /kotonebot/kaa/sprites/{6d6550a6-f270-474e-b55c-b2017ef87ab2.png → 4ddc656f-ef7e-4580-ad12-9e382ea76e4f.png} +0 -0
- /kotonebot/kaa/sprites/{9359526e-c5db-4d63-adc4-08b7d704b422.png → 4ffd7c97-86dd-4171-92e7-8e8e83e8f394.png} +0 -0
- /kotonebot/kaa/sprites/{8cb3b6c2-7fae-41cf-8f33-a0e3ea668f25.png → 51b836ff-5f2c-4612-85f1-9db74761f300.png} +0 -0
- /kotonebot/kaa/sprites/{2766af5c-4ad1-44e2-ab84-e8a6ac7bb172.png → 51f38e84-56c8-4c80-9a67-35196ef54b89.png} +0 -0
- /kotonebot/kaa/sprites/{f02d997a-a3a8-4e18-96f1-e4176c14a5e0.png → 52e2b832-7837-47ca-a089-1f1593a99b08.png} +0 -0
- /kotonebot/kaa/sprites/{4af7631b-3674-4491-a3fb-a514bfd6b204.png → 55d105dc-c488-47d8-9b95-aba5707cfc2a.png} +0 -0
- /kotonebot/kaa/sprites/{893a6bba-905e-4123-9e35-f829fd6c8b2a.png → 56a70bc5-bd16-493b-b5b6-770f42f13de5.png} +0 -0
- /kotonebot/kaa/sprites/{1a8ec83b-ebba-4ff7-9737-104d3aa2ff98.png → 588f3405-4110-48dd-99ec-f89c004cf02e.png} +0 -0
- /kotonebot/kaa/sprites/{80171520-d132-4395-b2ed-e6451335b3d5.png → 593f4c04-4ca4-4bb0-8fea-ad3af32316f7.png} +0 -0
- /kotonebot/kaa/sprites/{cb4c357f-b01b-4b95-b928-5affdf4ae684.png → 5a4a763f-b69b-4405-994d-470a78476f67.png} +0 -0
- /kotonebot/kaa/sprites/{5b6b5bf8-cd03-4360-9550-e15d8db6241a.png → 5e74dc61-0ad5-4e57-b331-e3d2ed67b6d2.png} +0 -0
- /kotonebot/kaa/sprites/{c51132e9-f45c-40c9-8026-7d70b13dca8b.png → 5eddc669-dff6-462c-a495-81ddf951429e.png} +0 -0
- /kotonebot/kaa/sprites/{e1ec3ee5-e73c-44b6-b173-ab1c9382cba4.png → 608de0a3-ce93-4344-8f9b-3cb3fab5ad12.png} +0 -0
- /kotonebot/kaa/sprites/{0ecc3e37-189c-40ad-9ee6-fb576b72a13b.png → 60e43a33-18ee-45f1-bd9a-57bb6539611b.png} +0 -0
- /kotonebot/kaa/sprites/{07960be4-b575-4f7f-be64-7e344dc118e0.png → 63bfee9f-546e-4c3c-a82f-c2707bc62b90.png} +0 -0
- /kotonebot/kaa/sprites/{02ff2b86-db5a-4850-ac98-4288a3f71ed8.png → 685a7a90-8196-4a6a-a67a-4e7078965982.png} +0 -0
- /kotonebot/kaa/sprites/{8a605d31-3160-49d1-9098-45d8ee18e8d6.png → 6d39d7a2-0b1f-4f49-9ab8-062bca9b5470.png} +0 -0
- /kotonebot/kaa/sprites/{e61d855e-84d3-4a0e-b996-43fce262c2c3.png → 6dcc0bb3-984f-4c92-b0a3-74281d684182.png} +0 -0
- /kotonebot/kaa/sprites/{798a9587-3f8c-424e-90af-89a08ed62ced.png → 6e338dd7-6834-4e9b-8ac1-afecdff16c43.png} +0 -0
- /kotonebot/kaa/sprites/{3c2f70b5-9095-48d6-a012-4d68a6b0a975.png → 7079f76b-e2a3-487c-8616-28ce505f5a0e.png} +0 -0
- /kotonebot/kaa/sprites/{a9f47d53-fbef-4cb0-9d2d-845ef3d1f719.png → 7250e776-3195-406c-ac6f-ec7dbed49cbe.png} +0 -0
- /kotonebot/kaa/sprites/{c85e58d3-ec5a-43ea-aa2a-04ee28e9ea21.png → 72b7124a-baf2-4d60-9553-2634370a6d49.png} +0 -0
- /kotonebot/kaa/sprites/{2730beb1-a6c5-463d-9748-393764bc8e34.png → 74db3d1c-d6be-4d1f-92be-9bb3ffad7f51.png} +0 -0
- /kotonebot/kaa/sprites/{f5e2e4e1-40be-481d-9293-9d47a5bce7cc.png → 76c07ba7-afea-405c-806a-7691ce73f83a.png} +0 -0
- /kotonebot/kaa/sprites/{557389eb-d0da-4c5a-a322-de3e32a81909.png → 7b46a3e5-18d3-45a0-9500-1d7c854a12bb.png} +0 -0
- /kotonebot/kaa/sprites/{b629f0a7-df4f-4407-908b-a031c70e8b6f.png → 7c65fc91-602b-4d1b-82f9-c9b561a55d9b.png} +0 -0
- /kotonebot/kaa/sprites/{b8165178-a9ce-491a-ba57-d25c7af8533f.png → 7d4f53fb-02bc-4139-b32c-3345a5f92a79.png} +0 -0
- /kotonebot/kaa/sprites/{ed4a8cff-b3df-4d7a-bfc4-8da776a8e548.png → 7d968a7f-f4a8-40a0-b9bf-e73ec1f2d7b5.png} +0 -0
- /kotonebot/kaa/sprites/{4a9c1ac7-0a61-4d40-b749-e8896322581f.png → 7dd31493-9f3b-4382-a43a-f8eb1c745ad8.png} +0 -0
- /kotonebot/kaa/sprites/{39b1738f-af9a-4c85-9315-2858f0b1d1ab.png → 7f0783fe-89d9-4405-b7a3-6334ba543826.png} +0 -0
- /kotonebot/kaa/sprites/{87292951-43c1-4039-9b92-c59c1b25b5f7.png → 8383a31c-a075-4b5f-b839-cbeb63a7aef3.png} +0 -0
- /kotonebot/kaa/sprites/{04422a5d-2499-40fd-a08f-095ecbd051a8.png → 863550ee-e9b8-4aa2-8ebb-e906b09dde3b.png} +0 -0
- /kotonebot/kaa/sprites/{440eeea3-b710-485e-ab40-80e2b6ce66f0.png → 86501f18-e5fd-4a66-a360-20e34935f1a9.png} +0 -0
- /kotonebot/kaa/sprites/{a5efb332-8452-49d8-ade3-882bbd445553.png → 86bcda3a-c7a6-4abf-ae4c-968788f3c667.png} +0 -0
- /kotonebot/kaa/sprites/{2cc68858-7af0-4a12-8c78-c4e4dcf9fff1.png → 872c37e7-e596-4449-86f4-5ba65836a7a7.png} +0 -0
- /kotonebot/kaa/sprites/{f64cfd95-8c87-47e6-96c3-8b7df2624ae3.png → 8778f70d-6bb8-4378-aed7-d77c798ab032.png} +0 -0
- /kotonebot/kaa/sprites/{78c2c39e-6621-41d1-9a1e-7e171b001795.png → 8cc764de-f162-40a4-ba6f-40d60eac5633.png} +0 -0
- /kotonebot/kaa/sprites/{c9a8d73f-f487-45ff-aa05-a61393d27f66.png → 8da0b45e-3d90-40f0-9781-c1ff4cd0e060.png} +0 -0
- /kotonebot/kaa/sprites/{25cfb896-fed1-4361-ae64-fc45fc8a98dd.png → 8e04cb5c-ce45-49d9-81a9-2e5f717d3eb2.png} +0 -0
- /kotonebot/kaa/sprites/{e1eb4596-73a1-471e-892b-c83cfb706bb3.png → 934e5383-b63c-472e-afdb-d184c92bdfe3.png} +0 -0
- /kotonebot/kaa/sprites/{38f8f55f-e9dc-4c10-b97a-b7254d871ae9.png → 99c36126-0173-49f3-a6b8-819bf9bd9306.png} +0 -0
- /kotonebot/kaa/sprites/{cf76eb98-44ff-406e-913a-503a0233b4cd.png → 9a72b63e-8bd1-47dc-8298-cdf02220201e.png} +0 -0
- /kotonebot/kaa/sprites/{3d016208-f8ed-45be-bfb1-ed15b231d0b8.png → 9b798f35-e745-4964-931d-3e0ae811174d.png} +0 -0
- /kotonebot/kaa/sprites/{18042dda-0222-4333-9d79-3afc3dc75220.png → 9ce49f31-6b3a-4bc7-a9c8-9330d6f650f7.png} +0 -0
- /kotonebot/kaa/sprites/{eb446c0a-1dd2-4693-838e-98a76c02eac5.png → 9d7a7bbb-b48b-458c-9964-963a57e10a7d.png} +0 -0
- /kotonebot/kaa/sprites/{59ef821b-4803-4fe3-83b8-305902f8459a.png → 9d908390-6f0f-46e6-a8fc-a7dfe23eda18.png} +0 -0
- /kotonebot/kaa/sprites/{601d0743-7143-4c04-989b-b80fc620e678.png → 9e74a9e6-6ea5-4551-9578-8e561195bd3d.png} +0 -0
- /kotonebot/kaa/sprites/{5af71b93-310c-48ab-b438-dba296fb9e52.png → 9f6aef36-f2e5-4208-9748-b6bbdb5546fd.png} +0 -0
- /kotonebot/kaa/sprites/{fb97d804-42e4-45e2-8b22-01d16b5d0b6b.png → a1610e9f-93f0-4ef2-b32a-b2effd1673e8.png} +0 -0
- /kotonebot/kaa/sprites/{b8eeacac-5679-42b9-a5b9-138598c8c6b6.png → a1a03d83-6a3b-481a-a807-931f2b0f7cd2.png} +0 -0
- /kotonebot/kaa/sprites/{d37bc673-9668-4b7e-bc9d-54495129dcc0.png → a2ea2e0f-4f92-4769-9bc4-1ee10c43712c.png} +0 -0
- /kotonebot/kaa/sprites/{a015cea0-d2c7-439a-b942-d4d2dad276e5.png → a5d05106-5a60-414c-972d-a886664abde4.png} +0 -0
- /kotonebot/kaa/sprites/{fb50c7d1-b983-4e36-a998-ea17a1bdb18b.png → a69febc4-2d01-4628-be92-29b421604c4d.png} +0 -0
- /kotonebot/kaa/sprites/{a05abc9d-9f0e-4d83-94bb-4f0b1e061035.png → a829f038-5421-4cc4-a494-105a973351e2.png} +0 -0
- /kotonebot/kaa/sprites/{4c5b8c40-3dfa-4091-95c3-257a36e9a6d3.png → aa8c4533-bd58-496e-a460-6fa47f7ded83.png} +0 -0
- /kotonebot/kaa/sprites/{cc0e38b2-c2ae-4fe1-adb0-6ea73a602563.png → aad29ac0-b9ad-4c38-93f5-e8036ad7b96b.png} +0 -0
- /kotonebot/kaa/sprites/{82cf688e-ac85-4425-917d-10b6db9b6cc3.png → b260d390-2b1a-4974-92db-d68ff7b5b8e6.png} +0 -0
- /kotonebot/kaa/sprites/{1e4671aa-2cdc-4432-9d83-c635e0a3d09d.png → b3f1b38f-77d0-4dd5-8c19-8a35bbc39516.png} +0 -0
- /kotonebot/kaa/sprites/{96178cef-4868-4378-9f9c-c08780def3d6.png → b4afb6bd-e049-4b2e-b1ca-26333c7afcb0.png} +0 -0
- /kotonebot/kaa/sprites/{bcb95d32-32e1-4251-83de-ef5164d22a48.png → b5009ffd-7e53-41ae-b78d-918ba0e7eda4.png} +0 -0
- /kotonebot/kaa/sprites/{fe337541-a6a3-4325-97b4-2bf27f51f39f.png → b99f0684-8200-4080-9b54-808c4ec12c99.png} +0 -0
- /kotonebot/kaa/sprites/{dd084696-be33-4a00-b6df-b25131b78b40.png → bbfcc1ea-b441-4e81-85d2-52ce3bf4eb62.png} +0 -0
- /kotonebot/kaa/sprites/{e795f9c5-fdda-4fbc-8d38-a92512a590f4.png → bdb09790-f702-4af2-ab67-0b3f05fd93ca.png} +0 -0
- /kotonebot/kaa/sprites/{2e68066d-9a56-48cc-8711-1d4c080ee320.png → c072da5f-bd35-4e8b-8f32-6c5df18c3aea.png} +0 -0
- /kotonebot/kaa/sprites/{7c992bae-5ded-473b-8e60-4dede8434e5d.png → c287899b-b9a3-4ee2-a8fd-ebda89099b4b.png} +0 -0
- /kotonebot/kaa/sprites/{4c2c5378-d946-41c2-980e-afb8493f71ee.png → c30d08f7-5c07-487a-86c3-122c082bb07b.png} +0 -0
- /kotonebot/kaa/sprites/{3e2af23e-041f-4128-8a78-cbd1297538cf.png → c4fed66b-e195-4288-8b1f-ef4b0ef35174.png} +0 -0
- /kotonebot/kaa/sprites/{7e7e8772-b31a-4bbe-919e-90373a4ad5a7.png → c94488b2-0ff0-4467-bbb0-405d3a2c55a3.png} +0 -0
- /kotonebot/kaa/sprites/{32d50687-b3a2-4b34-a2f9-4418b5e14fff.png → cc0ac4cf-01fd-48f9-8707-2d6a2aa0ba8c.png} +0 -0
- /kotonebot/kaa/sprites/{c883049b-187c-4685-a63a-cff516851a95.png → cd53bad6-81fa-4e15-8fe7-5a992367bf90.png} +0 -0
- /kotonebot/kaa/sprites/{4a128979-bf11-42fe-a966-a8f5ee143128.png → cecd2638-070f-4710-9142-2dc492660241.png} +0 -0
- /kotonebot/kaa/sprites/{9c98c4e6-5335-4c8b-92fa-24ec440b055e.png → ced345fa-b375-457d-8b72-802424512e6c.png} +0 -0
- /kotonebot/kaa/sprites/{344bedf1-fcca-4025-9ff6-cea99c91ddb4.png → d0c085fa-3089-4adf-979c-d4b274b32c3b.png} +0 -0
- /kotonebot/kaa/sprites/{a402b549-a4dd-4ff3-ad51-2aa5f8e620af.png → d2732870-dd6b-4b7b-b21e-4ff2a4958b32.png} +0 -0
- /kotonebot/kaa/sprites/{379a8811-932c-4c75-854f-943631c921d5.png → d364470a-d077-405f-a242-0d4fad32bc40.png} +0 -0
- /kotonebot/kaa/sprites/{c24e874e-6a3e-472c-8745-edf7cac88954.png → d3b97b8f-f13a-413d-a097-5c456b8aea0d.png} +0 -0
- /kotonebot/kaa/sprites/{c819d999-fef6-47bb-a94f-055d616033c7.png → dc17dea0-7749-4ecb-bbc0-1a52fb992dcf.png} +0 -0
- /kotonebot/kaa/sprites/{346da82f-bfca-4a0f-bae4-ca9c8e4b794e.png → ddb2e9ee-e16a-4745-8598-b3f9c2f011be.png} +0 -0
- /kotonebot/kaa/sprites/{cdd40676-b49d-42ad-9972-7149aa13d9bb.png → de0b3d75-7dc8-4433-a275-2584e9d7ed0b.png} +0 -0
- /kotonebot/kaa/sprites/{1b6bc9ae-3f4e-4722-ae6f-d76bd65b071e.png → e0a5c772-49d3-468a-bcf5-0e3f24365253.png} +0 -0
- /kotonebot/kaa/sprites/{a2e41d98-dd91-4e51-ba57-4f8ddfd07cfa.png → e3cfea3a-3dc4-412b-b226-f9034f5b51f1.png} +0 -0
- /kotonebot/kaa/sprites/{09cd4336-7d2a-4bce-9d08-8ac64a2bdcc3.png → e508161a-e595-4daf-a364-625aaf67e481.png} +0 -0
- /kotonebot/kaa/sprites/{13c8fa4a-0ae5-4ee1-a433-20f6c724466e.png → e55da40e-5fb5-48e0-91b1-2db0b3b32750.png} +0 -0
- /kotonebot/kaa/sprites/{66f5fab8-274c-4ab9-983d-ca2f8d90ea94.png → e5922ce7-9aa7-4806-acdd-9c35408a0f37.png} +0 -0
- /kotonebot/kaa/sprites/{c362b54d-d535-4227-8612-9bfe11fd7891.png → e6e66cdf-69c8-4862-a770-1f81c62f96ac.png} +0 -0
- /kotonebot/kaa/sprites/{efc08f1c-e78f-4df8-bff9-b45cde37f9dd.png → e98037f8-3b4a-4de8-adc1-ca0f736b6c98.png} +0 -0
- /kotonebot/kaa/sprites/{8f675963-122a-4932-9f33-07dcdcb3a51a.png → e9e399f7-4e2f-4392-bb8f-850c4a272dfa.png} +0 -0
- /kotonebot/kaa/sprites/{c60bec93-231f-498d-b3c6-0a78c9b8f37f.png → eb229797-bffc-4a48-96de-85480af1608a.png} +0 -0
- /kotonebot/kaa/sprites/{b44085c7-9777-415a-aae1-aae47c2f7321.png → ef539419-d100-43d5-83a1-14e65b85d816.png} +0 -0
- /kotonebot/kaa/sprites/{7057e165-9ed4-485e-9609-94854ef269dd.png → f3b4bb3b-f8d6-4ed0-8bde-0d3322bd8391.png} +0 -0
- /kotonebot/kaa/sprites/{f8bcbc2c-9831-4e8d-9ffd-e532aa3193c3.png → f400e1fe-a04d-442b-a6de-a448813443fd.png} +0 -0
- /kotonebot/kaa/sprites/{eb4bde42-de6e-4c62-8dc4-8885efc834a8.png → f4a1201f-9305-4ec5-8962-2bef0144ab46.png} +0 -0
- /kotonebot/kaa/sprites/{429c30b5-7d3a-40a1-853a-ec51c8f238e7.png → f4b226eb-ed9e-4e5e-9ba0-1b777e401aa3.png} +0 -0
- /kotonebot/kaa/sprites/{57b7006a-ada9-4d9d-9655-71765251882e.png → f6d36222-847e-4300-8f90-c98c7a8f36e3.png} +0 -0
- /kotonebot/kaa/sprites/{b10596fe-22fa-4284-ab4b-1d653d4f0f07.png → fe031296-8000-4fdc-ab3f-b4aae2af6e5d.png} +0 -0
- {ksaa-2025.5.23.1.dist-info → ksaa-2025.5.23.3.dist-info}/entry_points.txt +0 -0
- {ksaa-2025.5.23.1.dist-info → ksaa-2025.5.23.3.dist-info}/top_level.txt +0 -0
kotonebot/client/factory.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import logging
|
|
2
2
|
from typing import Literal
|
|
3
3
|
|
|
4
4
|
from .implements.adb import AdbImpl
|
|
@@ -11,6 +11,7 @@ from .device import Device, AndroidDevice, WindowsDevice
|
|
|
11
11
|
from adbutils import adb
|
|
12
12
|
|
|
13
13
|
DeviceImpl = Literal['adb', 'adb_raw', 'uiautomator2', 'windows', 'remote_windows']
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
14
15
|
|
|
15
16
|
def create_device(
|
|
16
17
|
addr: str,
|
|
@@ -39,14 +40,19 @@ def create_device(
|
|
|
39
40
|
"""
|
|
40
41
|
if impl in ['adb', 'adb_raw', 'uiautomator2']:
|
|
41
42
|
if disconnect:
|
|
43
|
+
logger.debug('adb disconnect %s', addr)
|
|
42
44
|
adb.disconnect(addr)
|
|
43
45
|
if connect:
|
|
46
|
+
logger.debug('adb connect %s', addr)
|
|
44
47
|
result = adb.connect(addr)
|
|
45
48
|
if 'cannot connect to' in result:
|
|
46
49
|
raise ValueError(result)
|
|
47
50
|
serial = device_serial or addr
|
|
51
|
+
logger.debug('adb wait for %s', serial)
|
|
48
52
|
adb.wait_for(serial, timeout=timeout)
|
|
49
|
-
|
|
53
|
+
devices = adb.device_list()
|
|
54
|
+
logger.debug('adb device_list: %s', devices)
|
|
55
|
+
d = [d for d in devices if d.serial == serial]
|
|
50
56
|
if len(d) == 0:
|
|
51
57
|
raise ValueError(f"Device {addr} not found")
|
|
52
58
|
d = d[0]
|
kotonebot/client/host/custom.py
CHANGED
|
@@ -14,9 +14,9 @@ P = ParamSpec('P')
|
|
|
14
14
|
T = TypeVar('T')
|
|
15
15
|
|
|
16
16
|
class CustomInstance(Instance):
|
|
17
|
-
def __init__(self, exe_path: str, emulator_args: str = "", *args, **kwargs):
|
|
17
|
+
def __init__(self, exe_path: str | None, emulator_args: str = "", *args, **kwargs):
|
|
18
18
|
super().__init__(*args, **kwargs)
|
|
19
|
-
self.exe_path: str = exe_path
|
|
19
|
+
self.exe_path: str | None = exe_path
|
|
20
20
|
self.exe_args: str = emulator_args
|
|
21
21
|
self.process: subprocess.Popen | None = None
|
|
22
22
|
|
|
@@ -26,6 +26,8 @@ class CustomInstance(Instance):
|
|
|
26
26
|
logger.warning('Process is already running.')
|
|
27
27
|
return
|
|
28
28
|
|
|
29
|
+
if not self.exe_path:
|
|
30
|
+
raise ValueError('Executable path is not set.')
|
|
29
31
|
if self.exe_args:
|
|
30
32
|
logger.info('Starting process "%s" with args "%s"...', self.exe_path, self.exe_args)
|
|
31
33
|
cmd = f'"{self.exe_path}" {self.exe_args}'
|
|
@@ -49,6 +51,9 @@ class CustomInstance(Instance):
|
|
|
49
51
|
if self.process is not None:
|
|
50
52
|
return True
|
|
51
53
|
else:
|
|
54
|
+
if not self.exe_path:
|
|
55
|
+
logger.warning('Executable path is not set, cannot check if process is running.')
|
|
56
|
+
return False
|
|
52
57
|
process_name = os.path.basename(self.exe_path)
|
|
53
58
|
p = next((proc for proc in process_iter() if proc.name() == process_name), None)
|
|
54
59
|
if p:
|
|
@@ -68,7 +73,7 @@ def _type_check(ins: Instance) -> CustomInstance:
|
|
|
68
73
|
raise ValueError(f'Instance {ins} is not a CustomInstance')
|
|
69
74
|
return ins
|
|
70
75
|
|
|
71
|
-
def create(exe_path: str, adb_ip: str, adb_port: int, adb_name: str, emulator_args: str = "") -> CustomInstance:
|
|
76
|
+
def create(exe_path: str | None, adb_ip: str, adb_port: int, adb_name: str | None, emulator_args: str = "") -> CustomInstance:
|
|
72
77
|
return CustomInstance(exe_path, emulator_args=emulator_args, id='custom', name='Custom', adb_ip=adb_ip, adb_port=adb_port, adb_name=adb_name)
|
|
73
78
|
|
|
74
79
|
|
kotonebot/config/base_config.py
CHANGED
kotonebot/kaa/main/gr.py
CHANGED
|
@@ -443,33 +443,34 @@ class KotoneBotUI:
|
|
|
443
443
|
nonlocal current_tab
|
|
444
444
|
current_tab = selected_index
|
|
445
445
|
|
|
446
|
-
if selected_index == 3: # DMM
|
|
447
|
-
|
|
448
|
-
else: # Mumu, Leidian, Custom
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
if not
|
|
446
|
+
# if selected_index == 3: # DMM
|
|
447
|
+
# choices = ['windows', 'remote_windows']
|
|
448
|
+
# else: # Mumu, Leidian, Custom
|
|
449
|
+
# choices = ['adb', 'adb_raw', 'uiautomator2']
|
|
450
|
+
choices = ['adb', 'adb_raw', 'uiautomator2', 'windows', 'remote_windows']
|
|
451
|
+
if impl_value not in choices:
|
|
452
452
|
new_value = choices[0]
|
|
453
453
|
else:
|
|
454
454
|
new_value = impl_value
|
|
455
455
|
|
|
456
456
|
return gr.Dropdown(choices=choices, value=new_value)
|
|
457
457
|
|
|
458
|
-
with gr.Tabs(selected=self.current_config.backend.type)
|
|
458
|
+
with gr.Tabs(selected=self.current_config.backend.type):
|
|
459
459
|
with gr.Tab("MuMu 12", interactive=has_mumu12, id="mumu12") as tab_mumu12:
|
|
460
460
|
gr.Markdown("已选中 MuMu 12 模拟器")
|
|
461
461
|
if has_mumu12:
|
|
462
462
|
try:
|
|
463
463
|
instances = Mumu12Host.list()
|
|
464
|
+
is_mumu12 = self.current_config.backend.type == 'mumu12'
|
|
464
465
|
mumu_instance = gr.Dropdown(
|
|
465
466
|
label="选择多开实例",
|
|
466
|
-
value=self.current_config.backend.instance_id,
|
|
467
|
+
value=self.current_config.backend.instance_id if is_mumu12 else None,
|
|
467
468
|
choices=[(i.name, i.id) for i in instances],
|
|
468
469
|
interactive=True
|
|
469
470
|
)
|
|
470
471
|
except: # noqa: E722
|
|
471
472
|
logger.exception('Failed to list installed MuMu12')
|
|
472
|
-
gr.Markdown('获取 MuMu12
|
|
473
|
+
gr.Markdown('获取 MuMu12 模拟器列表失败,请升级模拟器到最新版本。若问题依旧,前往 QQ 群、QQ 频道或 Github 反馈 bug。')
|
|
473
474
|
mumu_instance = gr.Dropdown(visible=False)
|
|
474
475
|
else:
|
|
475
476
|
# 为了让 return 收集组件时不报错
|
|
@@ -480,9 +481,10 @@ class KotoneBotUI:
|
|
|
480
481
|
if has_leidian:
|
|
481
482
|
try:
|
|
482
483
|
instances = LeidianHost.list()
|
|
484
|
+
is_leidian = self.current_config.backend.type == 'leidian'
|
|
483
485
|
leidian_instance = gr.Dropdown(
|
|
484
486
|
label="选择多开实例",
|
|
485
|
-
value=self.current_config.backend.instance_id,
|
|
487
|
+
value=self.current_config.backend.instance_id if is_leidian else None,
|
|
486
488
|
choices=[(i.name, i.id) for i in instances],
|
|
487
489
|
interactive=True
|
|
488
490
|
)
|
|
@@ -544,13 +546,14 @@ class KotoneBotUI:
|
|
|
544
546
|
with gr.Tab("DMM", id="dmm") as tab_dmm:
|
|
545
547
|
gr.Markdown("已选中 DMM")
|
|
546
548
|
|
|
547
|
-
type_in_config = self.current_config.backend.type
|
|
548
|
-
if type_in_config in ['dmm']:
|
|
549
|
-
|
|
550
|
-
elif type_in_config in ['mumu12', 'leidian', 'custom']:
|
|
551
|
-
|
|
552
|
-
else:
|
|
553
|
-
|
|
549
|
+
# type_in_config = self.current_config.backend.type
|
|
550
|
+
# if type_in_config in ['dmm']:
|
|
551
|
+
# choices = ['windows', 'remote_windows']
|
|
552
|
+
# elif type_in_config in ['mumu12', 'leidian', 'custom']:
|
|
553
|
+
# choices = ['adb', 'adb_raw', 'uiautomator2']
|
|
554
|
+
# else:
|
|
555
|
+
# raise ValueError(f'Unsupported backend type: {type_in_config}')
|
|
556
|
+
choices = ['adb', 'adb_raw', 'uiautomator2', 'windows', 'remote_windows']
|
|
554
557
|
screenshot_impl = gr.Dropdown(
|
|
555
558
|
choices=choices,
|
|
556
559
|
value=self.current_config.backend.screenshot_impl,
|
|
@@ -571,6 +574,30 @@ class KotoneBotUI:
|
|
|
571
574
|
tab_custom.select(fn=partial(_update_emulator_tab_options, selected_index=2), inputs=[screenshot_impl], outputs=[screenshot_impl])
|
|
572
575
|
tab_dmm.select(fn=partial(_update_emulator_tab_options, selected_index=3), inputs=[screenshot_impl], outputs=[screenshot_impl])
|
|
573
576
|
|
|
577
|
+
# 初值
|
|
578
|
+
if self.current_config.backend.type == 'mumu12':
|
|
579
|
+
_update_emulator_tab_options(
|
|
580
|
+
impl_value=self.current_config.backend.screenshot_impl,
|
|
581
|
+
selected_index=0
|
|
582
|
+
)
|
|
583
|
+
elif self.current_config.backend.type == 'leidian':
|
|
584
|
+
_update_emulator_tab_options(
|
|
585
|
+
impl_value=self.current_config.backend.screenshot_impl,
|
|
586
|
+
selected_index=1
|
|
587
|
+
)
|
|
588
|
+
elif self.current_config.backend.type == 'custom':
|
|
589
|
+
_update_emulator_tab_options(
|
|
590
|
+
impl_value=self.current_config.backend.screenshot_impl,
|
|
591
|
+
selected_index=2
|
|
592
|
+
)
|
|
593
|
+
elif self.current_config.backend.type == 'dmm':
|
|
594
|
+
_update_emulator_tab_options(
|
|
595
|
+
impl_value=self.current_config.backend.screenshot_impl,
|
|
596
|
+
selected_index=3
|
|
597
|
+
)
|
|
598
|
+
else:
|
|
599
|
+
gr.Warning(f"未知的模拟器类型:{self.current_config.backend.type}")
|
|
600
|
+
|
|
574
601
|
def set_config(_: BaseConfig, data: dict[ConfigKey, Any]) -> None:
|
|
575
602
|
# current_tab is updated by _update_emulator_tab_options
|
|
576
603
|
if current_tab == 0: # Mumu
|
kotonebot/kaa/main/kaa.py
CHANGED
|
@@ -95,7 +95,7 @@ class Kaa(KotoneBot):
|
|
|
95
95
|
zipf.writestr('logs.txt', logs)
|
|
96
96
|
return path
|
|
97
97
|
except Exception as e:
|
|
98
|
-
logger.exception(
|
|
98
|
+
logger.exception('Failed to save error report:')
|
|
99
99
|
return ''
|
|
100
100
|
|
|
101
101
|
@override
|
|
@@ -114,12 +114,6 @@ class Kaa(KotoneBot):
|
|
|
114
114
|
logger.info('Checking backend...')
|
|
115
115
|
if config.backend.type == 'custom':
|
|
116
116
|
exe = config.backend.emulator_path
|
|
117
|
-
if exe is None:
|
|
118
|
-
user.error('「检查并启动模拟器」已开启但未配置「模拟器 exe 文件路径」。')
|
|
119
|
-
raise ValueError('Emulator executable path is not set.')
|
|
120
|
-
if not os.path.exists(exe):
|
|
121
|
-
user.error('「模拟器 exe 文件路径」对应的文件不存在!请检查路径是否正确。')
|
|
122
|
-
raise FileNotFoundError(f'Emulator executable not found: {exe}')
|
|
123
117
|
self.backend_instance = create_custom(
|
|
124
118
|
adb_ip=config.backend.adb_ip,
|
|
125
119
|
adb_port=config.backend.adb_port,
|
|
@@ -128,6 +122,12 @@ class Kaa(KotoneBot):
|
|
|
128
122
|
emulator_args=config.backend.emulator_args
|
|
129
123
|
)
|
|
130
124
|
if config.backend.check_emulator:
|
|
125
|
+
if exe is None:
|
|
126
|
+
user.error('「检查并启动模拟器」已开启但未配置「模拟器 exe 文件路径」。')
|
|
127
|
+
raise ValueError('Emulator executable path is not set.')
|
|
128
|
+
if not os.path.exists(exe):
|
|
129
|
+
user.error('「模拟器 exe 文件路径」对应的文件不存在!请检查路径是否正确。')
|
|
130
|
+
raise FileNotFoundError(f'Emulator executable not found: {exe}')
|
|
131
131
|
if not self.backend_instance.running():
|
|
132
132
|
logger.info('Starting custom backend...')
|
|
133
133
|
self.backend_instance.start()
|
kotonebot/kaa/metadata.py
CHANGED
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
WHATS_NEW = """
|
|
2
2
|
# 更新日志
|
|
3
3
|
## kaa
|
|
4
|
+
### v2025.5.23.3
|
|
5
|
+
脚本:
|
|
6
|
+
* [修复] 尝试修复行动页有时进入行动失效的问题(#5901771)
|
|
7
|
+
|
|
8
|
+
界面:
|
|
9
|
+
* [修复] 修复 UI 中模拟器 Tab 初值不正确的问题(#5f5d99c)
|
|
10
|
+
|
|
11
|
+
其他:
|
|
12
|
+
* [其他] 更新上游 submodule(#cd6e128)
|
|
13
|
+
|
|
14
|
+
### v2025.5.23.2
|
|
15
|
+
脚本:
|
|
16
|
+
* [修复] 将配置项 adb_emulator_name 默认值置为 None(#f3ef360)
|
|
17
|
+
* [修复] 修复即使未勾选启动模拟器也会尝试启动的问题(#0641863)
|
|
18
|
+
|
|
19
|
+
界面:
|
|
20
|
+
* [修复] 修复截图方法 Dropdown 选项问题(#08a6b6f)
|
|
21
|
+
* [新增] 修改 MuMu 模拟器检测失败提示(#3358eb6)
|
|
22
|
+
|
|
4
23
|
### v2025.5.23.1
|
|
5
24
|
界面:
|
|
6
25
|
* [新增] 当检测模拟器扫描失败时避免整个程序崩溃(#3d47d3a)
|
|
Binary file
|
kotonebot/kaa/resources/game.db
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|