ksaa 2025.7.20.0__py3-none-any.whl → 2025.7.27.1__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/backend/bot.py +60 -12
- kotonebot/backend/context/task_action.py +9 -46
- kotonebot/backend/dispatch.py +1 -104
- kotonebot/backend/flow_controller.py +3 -1
- kotonebot/errors.py +37 -2
- kotonebot/interop/win/message_box.py +314 -0
- kotonebot/interop/win/task_dialog.py +469 -0
- kotonebot/kaa/config/produce.py +8 -6
- kotonebot/kaa/config/schema.py +2 -0
- kotonebot/kaa/errors.py +38 -0
- kotonebot/kaa/main/gr.py +22 -5
- kotonebot/kaa/metadata.py +18 -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/tasks/R.py +126 -126
- kotonebot/kaa/tasks/daily/contest.py +39 -8
- kotonebot/kaa/tasks/daily/purchase.py +0 -1
- kotonebot/kaa/tasks/end_game.py +4 -3
- kotonebot/kaa/tasks/produce/in_purodyuusu.py +30 -29
- kotonebot/kaa/tasks/produce/produce.py +2 -1
- kotonebot/kaa/tasks/start_game.py +2 -0
- kotonebot/ui/user.py +43 -13
- {ksaa-2025.7.20.0.dist-info → ksaa-2025.7.27.1.dist-info}/METADATA +2 -1
- {ksaa-2025.7.20.0.dist-info → ksaa-2025.7.27.1.dist-info}/RECORD +155 -152
- /kotonebot/kaa/sprites/{d56feb26-d560-423f-b5f8-dc06f7a3c8a1.png → 03821ecf-fdd2-4e89-8249-fc7288ac79be.png} +0 -0
- /kotonebot/kaa/sprites/{0554264f-0474-44d0-9209-8135d8840c53.png → 04c9d1c8-09b9-402d-b688-796253fdaf0c.png} +0 -0
- /kotonebot/kaa/sprites/{94021aa4-fb87-41e7-920a-988a360f8321.png → 05903cc9-9f7a-43ac-88e4-988a68311e05.png} +0 -0
- /kotonebot/kaa/sprites/{5aef61f9-d616-42f2-ae8d-5c5a033231d3.png → 093c3fb8-036e-4cf4-917b-d70cabebf571.png} +0 -0
- /kotonebot/kaa/sprites/{562f176f-af1e-4352-aeed-62e362177f9f.png → 0f986eac-1e3c-48ed-9850-cae529b30503.png} +0 -0
- /kotonebot/kaa/sprites/{e281792b-000b-4048-afb7-e8bb0dbd88b3.png → 116bf963-ad4a-401a-91f7-e3a56a4848b9.png} +0 -0
- /kotonebot/kaa/sprites/{9e0492b7-3b66-48a2-b589-91e7fd16106d.png → 14283368-d85d-458a-8f2c-b112bd02256e.png} +0 -0
- /kotonebot/kaa/sprites/{401966c8-2095-4eef-b92a-764122de02d9.png → 15ee94ce-1930-4eff-9ce2-0ebe947aaa05.png} +0 -0
- /kotonebot/kaa/sprites/{d54fc8f5-e50d-45dd-b123-92414f93488c.png → 1b2a0de3-34cc-42b2-8af3-bfeb8d0d679c.png} +0 -0
- /kotonebot/kaa/sprites/{b25627d6-3352-4fe8-93c2-b653efe104d4.png → 1c14e581-b664-488c-9d29-f5228ee6d328.png} +0 -0
- /kotonebot/kaa/sprites/{ddae5592-adc3-4c36-bfdd-6c6d91823296.png → 1d457687-ff10-41b0-95e1-6c1b3868b2a0.png} +0 -0
- /kotonebot/kaa/sprites/{0002785c-3caa-4c8f-8d47-f29aee04a588.png → 1f5f5454-eb1c-45c3-8467-80c224d528e6.png} +0 -0
- /kotonebot/kaa/sprites/{dd699396-5500-43ad-8470-cf7a8ba013ec.png → 252f1cd3-8e09-4b34-b5ba-47b1137a19c1.png} +0 -0
- /kotonebot/kaa/sprites/{fda67b44-d46d-4789-89a3-0786c60987ab.png → 2585cb7b-af94-46ac-a31d-f50bd09f40a6.png} +0 -0
- /kotonebot/kaa/sprites/{05a23a4a-9b93-4fbd-b4e9-15a7c4a91fdc.png → 28e5138d-bcd4-40d2-9e2f-0c845004b8ae.png} +0 -0
- /kotonebot/kaa/sprites/{c5774fb4-be11-4b28-8f58-299ae8872cc1.png → 29fc852e-4c61-416d-80ff-f28c5a64abc1.png} +0 -0
- /kotonebot/kaa/sprites/{9449ff36-7adb-42d5-b89d-bf9147d62811.png → 2a539cb4-827f-449b-9780-14a94678948b.png} +0 -0
- /kotonebot/kaa/sprites/{bcc433e0-8a4e-455f-b625-4583cea19c1c.png → 2c2ff5ed-3b1a-4dcc-89a9-9457908cb184.png} +0 -0
- /kotonebot/kaa/sprites/{fd77088d-652a-472e-9f84-dcc83d40a6bf.png → 2d902d81-5500-4265-9867-c5c4cac573d7.png} +0 -0
- /kotonebot/kaa/sprites/{9d80c1ef-0f42-4622-ab9a-bfcc077dace6.png → 31122061-ea7a-419e-8072-8552013a8255.png} +0 -0
- /kotonebot/kaa/sprites/{d14633f5-9682-4b59-a4ef-e92a2d26d86b.png → 31745cd7-226e-4e11-b96d-2e202a7097e7.png} +0 -0
- /kotonebot/kaa/sprites/{83f9e9a0-54dd-4601-8e54-3091c2892e67.png → 34dcd41c-b800-43b4-b24f-c569bae59db2.png} +0 -0
- /kotonebot/kaa/sprites/{d627ba81-9c86-4b53-9ab9-86c8748d8daa.png → 360bcb7f-c710-49d5-9942-2812ed03a447.png} +0 -0
- /kotonebot/kaa/sprites/{0aa4472c-b533-46cc-a072-9d165d955424.png → 36e02aa6-f858-4248-b39e-e16686d6baf1.png} +0 -0
- /kotonebot/kaa/sprites/{d83f2631-b9d8-4fd6-ab1c-50b0a013f3f0.png → 39882ba6-c9d9-4742-b92d-206781c5f60e.png} +0 -0
- /kotonebot/kaa/sprites/{0e29489c-6728-46cd-bd13-2b9d9e74b2da.png → 3ace2c73-cf00-4706-9aac-1a0229b1b3f5.png} +0 -0
- /kotonebot/kaa/sprites/{04feeecc-a607-402d-bbc4-a71af87c7fc2.png → 3bd19f01-57f8-4f8b-98b7-b5dd0779f77d.png} +0 -0
- /kotonebot/kaa/sprites/{a009c9de-029e-4999-b728-e6877374325a.png → 3cd5382a-a679-4f06-ab83-6328a943148d.png} +0 -0
- /kotonebot/kaa/sprites/{f16d6f1e-b9ff-4cff-aed3-dd150caf8f07.png → 3d7d1e3f-29c7-431d-8621-3f31b8880492.png} +0 -0
- /kotonebot/kaa/sprites/{681157d7-b37f-442f-b784-86fa9029ecdb.png → 3e558d01-1d7d-4ed3-9200-738252539dc1.png} +0 -0
- /kotonebot/kaa/sprites/{8a2938ad-5657-4f66-8447-4bc7fa45b857.png → 3ea31c2c-1421-421c-a7fa-7994c06e4bca.png} +0 -0
- /kotonebot/kaa/sprites/{39f88061-a997-4a8a-b09e-4a2425f4a83a.png → 432df4be-4970-4ac0-8465-a698bce6fe65.png} +0 -0
- /kotonebot/kaa/sprites/{4622e955-7bb1-450d-a776-01543540fde3.png → 464c3d3a-c772-4f85-94d5-970f46c8d213.png} +0 -0
- /kotonebot/kaa/sprites/{1609d037-a3fc-485b-96c6-cf1790434c01.png → 47f4b0a5-5792-4e82-b597-d58ea0b1f494.png} +0 -0
- /kotonebot/kaa/sprites/{143db8eb-fdde-4de0-a946-a14123b9262e.png → 4c444aaf-a2d1-44f1-aacc-b737f262a746.png} +0 -0
- /kotonebot/kaa/sprites/{9b696383-10dd-4a35-8546-1ccdb8891373.png → 4ced1b5f-bbd2-4230-8555-233d082f4d05.png} +0 -0
- /kotonebot/kaa/sprites/{7f4accdd-bd72-45e6-8469-692e27986486.png → 4de619fd-ed06-4210-b1f0-11556deb4dd9.png} +0 -0
- /kotonebot/kaa/sprites/{9a9d9398-15df-46ea-a247-04ba01f61603.png → 5033ca17-1327-4554-b939-968b8a78f10a.png} +0 -0
- /kotonebot/kaa/sprites/{bc01675d-453c-43f2-9075-f9567c8aa6f9.png → 52ae79ea-f4a4-4c19-9fe8-327f285ace1e.png} +0 -0
- /kotonebot/kaa/sprites/{71d6a37d-45df-456f-b673-d1e8b35ee619.png → 566e641a-a364-415c-a17b-2db7862f2714.png} +0 -0
- /kotonebot/kaa/sprites/{e89c23b0-ca58-49d1-b439-967a4a4a431d.png → 5a0d6f90-3758-4baa-94fc-a4a412284628.png} +0 -0
- /kotonebot/kaa/sprites/{b66e13a1-636c-4478-9d72-7d200ff670a9.png → 5ba7d61f-282d-4ad0-881a-842c26e7f66c.png} +0 -0
- /kotonebot/kaa/sprites/{3645c21a-acd8-4ec4-a286-d9031736342c.png → 5f3937f7-a5de-4a11-bcf9-da586596bf47.png} +0 -0
- /kotonebot/kaa/sprites/{6cacdb8f-2ea3-4e3c-a124-b957b75ea427.png → 60cfef80-cd08-4205-8088-8d0b22a59b5a.png} +0 -0
- /kotonebot/kaa/sprites/{49ccf947-13a5-4839-8f85-d0fe40094e77.png → 61f56d51-8d30-4aed-857a-8eff6fab27c1.png} +0 -0
- /kotonebot/kaa/sprites/{dcc214f3-9707-4a2c-aaff-3834e6f12f0b.png → 6468ab50-2d25-4b18-b555-2a56397968b0.png} +0 -0
- /kotonebot/kaa/sprites/{04425af8-ba28-407d-ad18-8c3a2483025d.png → 6597b7fd-3c5b-442f-a327-d18b555de544.png} +0 -0
- /kotonebot/kaa/sprites/{38c0ed08-5af3-4fca-a37f-27d66fd35a4c.png → 661d0e8d-379d-401d-9f29-147e70123adf.png} +0 -0
- /kotonebot/kaa/sprites/{f543861e-c3d5-4bc9-a677-47f9e86918ea.png → 66c7e6df-5c90-4b3a-9b51-78cff1357ed7.png} +0 -0
- /kotonebot/kaa/sprites/{0e4b4481-6805-4a1b-a3d8-913681968662.png → 6a033af8-222c-459a-9ab9-a9a69b27822d.png} +0 -0
- /kotonebot/kaa/sprites/{9dbc5d76-8c6a-4638-b0c2-eba79542ec58.png → 6c151fbe-7cf9-4629-b47a-da7be835bb4b.png} +0 -0
- /kotonebot/kaa/sprites/{6e59d072-06f8-488f-a453-8ba60a05d691.png → 6d225f8d-efc0-42a5-93af-7b81e24377c5.png} +0 -0
- /kotonebot/kaa/sprites/{e36ec591-8bf5-4deb-9f28-3977576de931.png → 749bd918-8dfb-4393-bf91-b39e285f1d75.png} +0 -0
- /kotonebot/kaa/sprites/{a3384f38-334c-440a-ab06-405bad293bab.png → 75cad2af-b8c5-4f5f-8398-acd90eb4348e.png} +0 -0
- /kotonebot/kaa/sprites/{966bcfd4-fefc-4704-907d-45bc6098d3f4.png → 76acc2b6-6649-4b1a-bd52-18ab9a2341d0.png} +0 -0
- /kotonebot/kaa/sprites/{2cff833f-10bd-478c-8760-99162c71e9e3.png → 7a8c4af3-2ac1-4295-b844-350ad00f2c50.png} +0 -0
- /kotonebot/kaa/sprites/{610ea09a-d623-428f-ac97-1b51dc5e9202.png → 7b552e56-0065-45d8-a0dc-bfe3be62b91f.png} +0 -0
- /kotonebot/kaa/sprites/{d6314592-b8a4-4025-9875-b135bf986cf7.png → 7c7cbe5a-37f0-4cf3-8376-4ceeb7a662b0.png} +0 -0
- /kotonebot/kaa/sprites/{20733b9b-1df7-42af-ab55-3364e8623602.png → 7dcc9134-9e5f-433b-ae5c-7530484f3f5f.png} +0 -0
- /kotonebot/kaa/sprites/{c3562fef-44f7-43d2-a4e6-e7ee21f8bdc5.png → 7dfdefa7-d95f-4348-9e0b-640ed17e138f.png} +0 -0
- /kotonebot/kaa/sprites/{a4553bb1-27b9-47c4-8f51-1cff2129df8e.png → 7e4a2554-c05b-458f-b31f-ac6930e8078e.png} +0 -0
- /kotonebot/kaa/sprites/{1bb92c94-af17-492e-9d22-393c12b7f346.png → 7e614cff-b492-4c4d-bbfe-0853ff65fcec.png} +0 -0
- /kotonebot/kaa/sprites/{87c7532f-2394-403e-a6d8-7a216043ec13.png → 7fcc8f4c-9d06-4747-8c1e-aaba3a61cc0e.png} +0 -0
- /kotonebot/kaa/sprites/{e075c8cb-7eef-47cf-b9fe-9e3d1bd98e85.png → 80c6d473-1eb2-4d65-8e8d-8f267ab61cd9.png} +0 -0
- /kotonebot/kaa/sprites/{40f04ad0-44c0-4913-89aa-bc466bfd6ace.png → 81fec353-ad18-4223-9ea3-8d128a4a3e77.png} +0 -0
- /kotonebot/kaa/sprites/{f0952cb2-dadb-4d9a-933e-cabcbf8850fb.png → 88e4e3c6-3f6b-4192-83c7-4b20a51ad53a.png} +0 -0
- /kotonebot/kaa/sprites/{79226566-26e2-4c2f-8f6a-4e4deb9fa9ea.png → 8938249c-94d3-4f20-8013-85d481a54d87.png} +0 -0
- /kotonebot/kaa/sprites/{1737a9e0-f8c4-416e-bbad-cb97a658ae9a.png → 8cbbfa8e-17aa-42e7-92f7-319a02c8f7fa.png} +0 -0
- /kotonebot/kaa/sprites/{8e0964c4-6e34-43cb-a333-d60bceae7f11.png → 8ed3eab8-779b-4b66-bc24-06b0b1dfac18.png} +0 -0
- /kotonebot/kaa/sprites/{3e34e821-ae69-49aa-9d04-bc34b3037cd5.png → 967b207a-79bb-479a-b50e-b2a04cf7ed54.png} +0 -0
- /kotonebot/kaa/sprites/{a514ce10-bff1-4aa0-9625-bf560dcb8be5.png → 96b12d02-c634-4e9c-a465-7ee61d5fc0bd.png} +0 -0
- /kotonebot/kaa/sprites/{2dab2877-c6c3-45d9-849f-fb2d79b7b74e.png → 9a0c8f11-33f0-4c53-a911-556f3481d952.png} +0 -0
- /kotonebot/kaa/sprites/{67f00dd1-86c9-4a49-a37c-87879171a46a.png → 9b439501-e57d-4912-9f57-67c4534060f7.png} +0 -0
- /kotonebot/kaa/sprites/{a77c1724-eb8f-4a1a-8997-516deb75ae78.png → 9f2a6935-f462-4726-b56e-8cf23aae3982.png} +0 -0
- /kotonebot/kaa/sprites/{b6f5243b-cfb4-42d2-b4eb-2fd1a9d33ab7.png → a148b768-8c8d-4fee-b29f-11d73240a3d0.png} +0 -0
- /kotonebot/kaa/sprites/{c577c19e-aa5d-4670-b44c-1c0b3d72451a.png → a1791427-52af-4d1e-8e95-e0533cb66d3c.png} +0 -0
- /kotonebot/kaa/sprites/{25f18ff9-dbae-4aed-87b4-c05ca6c4ebf4.png → a2d9b907-f68e-47c7-8aa6-31c07c272d94.png} +0 -0
- /kotonebot/kaa/sprites/{10a329df-2515-4551-a130-07e86058abdf.png → a3d5b052-526f-45ef-a2ed-5bba8ca9e4b1.png} +0 -0
- /kotonebot/kaa/sprites/{6ac4a3b5-66d2-4429-8cd1-945fbb48280c.png → a66625f6-f80c-48e4-a344-e48036085e2b.png} +0 -0
- /kotonebot/kaa/sprites/{1f9f101b-2647-4d14-931e-7a8307495475.png → a6bd2250-81b5-4f54-b6d9-bf9a5a4876d1.png} +0 -0
- /kotonebot/kaa/sprites/{a5d3efa4-ec3e-4637-835a-147af973bbf8.png → a7e31af5-a896-47bb-af4b-e71936ac6334.png} +0 -0
- /kotonebot/kaa/sprites/{64298c97-baac-48b9-be7d-cb14091aa3cb.png → aab26578-b548-41e5-8996-40ef821ca041.png} +0 -0
- /kotonebot/kaa/sprites/{9169bf8e-5907-42e5-b102-47da3bf9a0b1.png → ac0b1f47-ce60-479a-9c5d-d8ced42ec0e0.png} +0 -0
- /kotonebot/kaa/sprites/{12151e09-e5f1-4b1d-a211-63cb300cb082.png → acff3d83-f570-4c65-9bb3-db69cd525262.png} +0 -0
- /kotonebot/kaa/sprites/{88945ecf-9ac5-46dc-8af6-b21dbfded665.png → ad9cc197-c83d-4d39-b187-7105cde60ef5.png} +0 -0
- /kotonebot/kaa/sprites/{f2d8a534-8afd-475c-ac20-738c7efffc90.png → adc38fcc-84d2-4f7c-846d-4fe96dd5d08a.png} +0 -0
- /kotonebot/kaa/sprites/{10d9a788-24a2-42e1-9284-78f507986606.png → b5a58c56-3f09-47e5-ab61-57bab752e735.png} +0 -0
- /kotonebot/kaa/sprites/{3e613561-8dbd-4094-9889-53f08541a716.png → b92c4308-3778-47aa-8a0b-222d32721beb.png} +0 -0
- /kotonebot/kaa/sprites/{cab0b1ff-b40a-42a8-b799-75e309b2dee3.png → bba3cd68-3023-4a7b-9fe9-36ec7adbfc89.png} +0 -0
- /kotonebot/kaa/sprites/{f217d7cf-acf5-44eb-9f99-025bbcaea866.png → bd04472b-eeeb-4ad7-b385-8347b7053887.png} +0 -0
- /kotonebot/kaa/sprites/{8fb17c7f-778d-4cd5-8d2f-dbf21d264297.png → c157661d-de06-4e34-bc3b-7d79c987e26d.png} +0 -0
- /kotonebot/kaa/sprites/{89d3c0a6-266e-486e-998d-ecd0d2536814.png → c2e3d6ac-00b6-4d2a-a30b-52a1190f5f05.png} +0 -0
- /kotonebot/kaa/sprites/{df9d09c3-8f15-4caf-bb21-f69644fb4705.png → c370b930-9750-4782-9564-5ce4cd609bdd.png} +0 -0
- /kotonebot/kaa/sprites/{12d0271c-1a86-4d2c-b379-b7df847fe20b.png → c84eada8-ff68-4d73-802b-6de88e73ec6d.png} +0 -0
- /kotonebot/kaa/sprites/{97a543a8-a859-4a1e-8e33-602f600db389.png → c8f444cc-e809-44c2-86a3-3cbb5bcd0356.png} +0 -0
- /kotonebot/kaa/sprites/{41f0e90a-a352-450c-a788-0303d038227a.png → d0881e29-6da6-4823-b65c-eefa9f9f2208.png} +0 -0
- /kotonebot/kaa/sprites/{fef40be1-5b75-4023-9977-df46cd211a86.png → d0ad5222-0ee0-412e-819f-3217f9fd854b.png} +0 -0
- /kotonebot/kaa/sprites/{e04331fe-d62e-4f77-953d-78515ee5686e.png → d32f8851-4fd2-4484-8ae8-66a375a43f3d.png} +0 -0
- /kotonebot/kaa/sprites/{5d3b3a20-89bb-4cf2-9973-25581c32e91c.png → d5a9d7f7-a065-4ff3-ae4c-b027f348ef54.png} +0 -0
- /kotonebot/kaa/sprites/{b169172d-8ce2-432a-bed6-1dfc30bcc95c.png → d6235144-ce78-4884-88b4-d1a12b76155f.png} +0 -0
- /kotonebot/kaa/sprites/{0a4c6cbe-f42e-4301-9c1a-101fc33421d2.png → d77a936b-c0ae-4dbd-8b44-82288a0957d6.png} +0 -0
- /kotonebot/kaa/sprites/{15fe6944-396c-467b-80db-476bbdf65a80.png → d94ce829-a7ab-44aa-bc0c-a4801b650088.png} +0 -0
- /kotonebot/kaa/sprites/{92a42da1-d8d2-4233-b6d0-5997a72f3d03.png → dc64e856-2f31-48b1-b17d-32b499f819ce.png} +0 -0
- /kotonebot/kaa/sprites/{3fc47270-febf-492e-b8fc-0a9793bc0d56.png → dd5ffd48-2ab0-4795-8193-8a8310101574.png} +0 -0
- /kotonebot/kaa/sprites/{6582463d-b4fa-40a1-b771-664c7f71fe9c.png → ddc8f913-e9ae-46dc-a91a-d3ee79e9f32d.png} +0 -0
- /kotonebot/kaa/sprites/{1aed664e-ceb3-4a1d-a338-df08dc8ebbd3.png → e049018e-9d2b-4537-add1-e902cf8ac69a.png} +0 -0
- /kotonebot/kaa/sprites/{2cea06ca-99f6-4bc5-8dd0-2bba80b07b17.png → e25468f5-929a-4a49-a2e0-4527075353b5.png} +0 -0
- /kotonebot/kaa/sprites/{32907971-0e98-4adc-91b8-ac0308c11c3c.png → e54b7482-a348-4252-a373-2ee69b3805b5.png} +0 -0
- /kotonebot/kaa/sprites/{f58c3a84-60ea-415b-ac63-4b534dc8cb6c.png → e62afa2c-1c5b-426e-8ff1-ea51f75d0f20.png} +0 -0
- /kotonebot/kaa/sprites/{731ed76d-6d6c-48b9-82c3-045cc1ecc419.png → e7a0ea00-2a72-4d74-8664-53726e3e1078.png} +0 -0
- /kotonebot/kaa/sprites/{487ae483-2787-4982-93b0-4847665683e9.png → eb67d908-13f8-4cef-9a86-9770e342ab77.png} +0 -0
- /kotonebot/kaa/sprites/{3a595ec9-d813-4c09-b8b8-be8f5da88faa.png → ebb662bb-62b4-404c-bb8f-4a7d5feccaa8.png} +0 -0
- /kotonebot/kaa/sprites/{c92a2935-cf41-4f56-911a-bc40f122cbf3.png → ee8a6029-63b3-4c13-bdc5-9bd8546d3316.png} +0 -0
- /kotonebot/kaa/sprites/{d81b7022-5c81-4533-b949-7e9d75a5b8b4.png → eea2af85-94b2-4c41-8f51-393059dcc43c.png} +0 -0
- /kotonebot/kaa/sprites/{f5727018-9a23-40de-840e-610d6e5dfa9d.png → eec4d7d6-3084-4bab-99c1-10e3a9459393.png} +0 -0
- /kotonebot/kaa/sprites/{be83e205-8ec5-452f-b42b-b98156516aa8.png → efb31647-3760-4b76-8b5d-ec4b5fb7a975.png} +0 -0
- /kotonebot/kaa/sprites/{951ae4be-40f3-4ccc-8578-77aca7f25eef.png → f03739ee-31e1-40ca-9aaf-6c0447d426a4.png} +0 -0
- /kotonebot/kaa/sprites/{9dfa46c9-54ec-4dd7-8f2e-e1e66c1206f1.png → f08044bf-8a33-4d6b-8791-94470678efa6.png} +0 -0
- /kotonebot/kaa/sprites/{183df82f-acea-4d40-87a8-18fc8ddab6d0.png → f23cb531-18b5-4852-bb11-56dc621e56cc.png} +0 -0
- /kotonebot/kaa/sprites/{377857a9-c37f-4a90-afa9-00c4ff7b24ae.png → f7a4208f-0373-4f26-907f-84c3f2b810fc.png} +0 -0
- /kotonebot/kaa/sprites/{2bb9dbf7-6cb2-426a-a35c-7228a1320220.png → f88f9f3b-e0e7-498c-ad1c-e92a719164f3.png} +0 -0
- /kotonebot/kaa/sprites/{70671b9e-9ebb-4dee-bc5a-dbcb70364adf.png → f93c7a24-157d-43ef-adcc-3873d313c6d7.png} +0 -0
- /kotonebot/kaa/sprites/{63cd694d-343e-468d-a53f-360c97f71ee6.png → f957fbb8-ba30-47c0-97b8-ff531d6e3831.png} +0 -0
- /kotonebot/kaa/sprites/{dcc2da94-2c9d-4248-bce5-731651e391ae.png → fbbf4921-ece5-4dc0-875d-8f7182596d4f.png} +0 -0
- /kotonebot/kaa/sprites/{131fb7e1-6eb9-4722-9943-76ff05c5baee.png → ff361c63-3f3d-48df-a26f-7698bd459219.png} +0 -0
- /kotonebot/kaa/sprites/{e4a92c92-0974-40e0-b488-16ea7a4c1a29.png → ff5a0417-229f-41bd-8121-708b08417114.png} +0 -0
- {ksaa-2025.7.20.0.dist-info → ksaa-2025.7.27.1.dist-info}/WHEEL +0 -0
- {ksaa-2025.7.20.0.dist-info → ksaa-2025.7.27.1.dist-info}/entry_points.txt +0 -0
- {ksaa-2025.7.20.0.dist-info → ksaa-2025.7.27.1.dist-info}/licenses/LICENSE +0 -0
- {ksaa-2025.7.20.0.dist-info → ksaa-2025.7.27.1.dist-info}/top_level.txt +0 -0
|
@@ -12,9 +12,8 @@ from .cards import do_cards, CardDetectResult
|
|
|
12
12
|
from ..actions.commu import handle_unread_commu
|
|
13
13
|
from kotonebot.errors import UnrecoverableError
|
|
14
14
|
from kotonebot.util import Countdown, Interval, cropped
|
|
15
|
-
from kotonebot.backend.
|
|
15
|
+
from kotonebot.backend.loop import Loop
|
|
16
16
|
from kotonebot.kaa.config import ProduceAction, RecommendCardDetectionMode
|
|
17
|
-
from kotonebot.kaa.config import conf
|
|
18
17
|
from ..produce.common import until_acquisition_clear, commu_event, fast_acquisitions
|
|
19
18
|
from kotonebot import ocr, device, contains, image, regex, action, sleep, wait
|
|
20
19
|
from ..produce.non_lesson_actions import (
|
|
@@ -705,8 +704,8 @@ ProduceStage = Literal[
|
|
|
705
704
|
'unknown', # 未知场景
|
|
706
705
|
]
|
|
707
706
|
|
|
708
|
-
@action('检测当前培育场景'
|
|
709
|
-
def detect_produce_scene(
|
|
707
|
+
@action('检测当前培育场景')
|
|
708
|
+
def detect_produce_scene() -> ProduceStage:
|
|
710
709
|
"""
|
|
711
710
|
判断当前是培育的什么阶段,并开始 Regular 培育。
|
|
712
711
|
|
|
@@ -715,31 +714,33 @@ def detect_produce_scene(ctx: DispatcherContext) -> ProduceStage:
|
|
|
715
714
|
"""
|
|
716
715
|
logger.info("Detecting current produce stage...")
|
|
717
716
|
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
717
|
+
for _ in Loop():
|
|
718
|
+
# 行动场景
|
|
719
|
+
texts = ocr.ocr()
|
|
720
|
+
if (
|
|
721
|
+
image.find_multi([
|
|
722
|
+
R.InPurodyuusu.TextPDiary, # 普通周
|
|
723
|
+
R.InPurodyuusu.ButtonFinalPracticeDance # 离考试剩余一周
|
|
724
|
+
])
|
|
725
|
+
):
|
|
726
|
+
logger.info("Detection result: At action scene.")
|
|
727
|
+
return 'action'
|
|
728
|
+
elif texts.where(regex('CLEARまで|PERFECTまで')):
|
|
729
|
+
logger.info("Detection result: At practice ongoing.")
|
|
730
|
+
return 'practice-ongoing'
|
|
731
|
+
elif is_exam_scene():
|
|
732
|
+
logger.info("Detection result: At exam scene.")
|
|
733
|
+
return 'exam-ongoing'
|
|
734
|
+
else:
|
|
735
|
+
if fast_acquisitions():
|
|
736
|
+
# 继续循环检测
|
|
737
|
+
pass
|
|
738
|
+
elif commu_event():
|
|
739
|
+
# 继续循环检测
|
|
740
|
+
pass
|
|
741
|
+
# 如果没有返回,说明需要继续检测
|
|
742
|
+
sleep(0.5) # 等待一段时间再重新检测
|
|
743
|
+
return 'unknown'
|
|
743
744
|
|
|
744
745
|
@action('开始 Hajime 培育')
|
|
745
746
|
def hajime_from_stage(stage: ProduceStage, type: Literal['regular', 'pro', 'master'], week: int):
|
|
@@ -15,6 +15,7 @@ from kotonebot.kaa.game_ui.idols_overview import locate_idol, match_idol
|
|
|
15
15
|
from ..produce.in_purodyuusu import hajime_pro, hajime_regular, hajime_master, resume_pro_produce, resume_regular_produce, \
|
|
16
16
|
resume_master_produce
|
|
17
17
|
from kotonebot import device, image, ocr, task, action, sleep, contains, regex
|
|
18
|
+
from kotonebot.kaa.errors import IdolCardNotFoundError
|
|
18
19
|
|
|
19
20
|
logger = logging.getLogger(__name__)
|
|
20
21
|
|
|
@@ -58,7 +59,7 @@ def select_idol(skin_id: str):
|
|
|
58
59
|
# 选择偶像
|
|
59
60
|
pos = locate_idol(skin_id)
|
|
60
61
|
if pos is None:
|
|
61
|
-
raise
|
|
62
|
+
raise IdolCardNotFoundError(skin_id)
|
|
62
63
|
# 确认
|
|
63
64
|
it.reset()
|
|
64
65
|
while btn_confirm := image.find(R.Common.ButtonConfirmNoIcon):
|
|
@@ -12,6 +12,7 @@ from .actions.scenes import at_home, goto_home
|
|
|
12
12
|
from .actions.commu import handle_unread_commu
|
|
13
13
|
from kotonebot.errors import GameUpdateNeededError
|
|
14
14
|
from kotonebot import task, action, sleep, device, image, ocr, config
|
|
15
|
+
from kotonebot.backend.context.context import vars
|
|
15
16
|
|
|
16
17
|
logger = logging.getLogger(__name__)
|
|
17
18
|
|
|
@@ -170,6 +171,7 @@ def windows_launch():
|
|
|
170
171
|
# 等待游戏窗口出现
|
|
171
172
|
it = Interval()
|
|
172
173
|
while True:
|
|
174
|
+
vars.flow.check()
|
|
173
175
|
if ahk.find_window(title='gakumas', title_match_mode=3):
|
|
174
176
|
logger.debug('Game window found.')
|
|
175
177
|
break
|
kotonebot/ui/user.py
CHANGED
|
@@ -4,6 +4,7 @@ import time
|
|
|
4
4
|
|
|
5
5
|
import cv2
|
|
6
6
|
from cv2.typing import MatLike
|
|
7
|
+
from win11toast import toast
|
|
7
8
|
|
|
8
9
|
from .pushkit import Wxpusher
|
|
9
10
|
from .. import logging
|
|
@@ -25,17 +26,6 @@ def retry(func):
|
|
|
25
26
|
continue
|
|
26
27
|
return wrapper
|
|
27
28
|
|
|
28
|
-
def ask(
|
|
29
|
-
question: str,
|
|
30
|
-
options: list[str],
|
|
31
|
-
*,
|
|
32
|
-
timeout: float = -1,
|
|
33
|
-
) -> bool:
|
|
34
|
-
"""
|
|
35
|
-
询问用户
|
|
36
|
-
"""
|
|
37
|
-
raise NotImplementedError
|
|
38
|
-
|
|
39
29
|
def _save_local(
|
|
40
30
|
title: str,
|
|
41
31
|
message: str,
|
|
@@ -74,6 +64,43 @@ def push(
|
|
|
74
64
|
logger.warning('push remote message failed: %s', e)
|
|
75
65
|
_save_local(title, message, images)
|
|
76
66
|
|
|
67
|
+
def _show_toast(title: str, message: str | None = None, buttons: list[str] | None = None):
|
|
68
|
+
"""
|
|
69
|
+
统一的 Toast 通知函数
|
|
70
|
+
|
|
71
|
+
:param title: 通知标题
|
|
72
|
+
:param message: 通知消息内容
|
|
73
|
+
:param buttons: 按钮列表,如果提供则显示带按钮的通知
|
|
74
|
+
"""
|
|
75
|
+
try:
|
|
76
|
+
if buttons:
|
|
77
|
+
logger.verbose('showing toast notification with buttons: %s - %s', title, message or '')
|
|
78
|
+
toast(title, message or '', buttons=buttons)
|
|
79
|
+
else:
|
|
80
|
+
# 如果没有 message,只显示 title
|
|
81
|
+
if message:
|
|
82
|
+
logger.verbose('showing toast notification: %s - %s', title, message)
|
|
83
|
+
toast(title, message)
|
|
84
|
+
else:
|
|
85
|
+
logger.verbose('showing toast notification: %s', title)
|
|
86
|
+
toast(title)
|
|
87
|
+
except Exception as e:
|
|
88
|
+
logger.warning('toast notification failed: %s', e)
|
|
89
|
+
|
|
90
|
+
def ask(
|
|
91
|
+
question: str,
|
|
92
|
+
options: list[tuple[str, str]],
|
|
93
|
+
*,
|
|
94
|
+
timeout: float = -1,
|
|
95
|
+
) -> str:
|
|
96
|
+
"""
|
|
97
|
+
询问用户
|
|
98
|
+
"""
|
|
99
|
+
# 将选项转换为按钮列表
|
|
100
|
+
buttons = [option[1] for option in options]
|
|
101
|
+
_show_toast("琴音小助手询问", question, buttons=buttons)
|
|
102
|
+
raise NotImplementedError
|
|
103
|
+
|
|
77
104
|
def info(
|
|
78
105
|
title: str,
|
|
79
106
|
message: str | None = None,
|
|
@@ -83,6 +110,7 @@ def info(
|
|
|
83
110
|
):
|
|
84
111
|
logger.info('user.info: %s', message)
|
|
85
112
|
push('KAA:' + title, message, images=images)
|
|
113
|
+
_show_toast('KAA:' + title, message)
|
|
86
114
|
|
|
87
115
|
def warning(
|
|
88
116
|
title: str,
|
|
@@ -98,7 +126,8 @@ def warning(
|
|
|
98
126
|
:param once: 每次运行是否只显示一次。
|
|
99
127
|
"""
|
|
100
128
|
logger.warning('user.warning: %s', message)
|
|
101
|
-
push("
|
|
129
|
+
push("琴音小助手警告:" + title, message, images=images)
|
|
130
|
+
_show_toast("琴音小助手警告:" + title, message)
|
|
102
131
|
|
|
103
132
|
def error(
|
|
104
133
|
title: str,
|
|
@@ -111,4 +140,5 @@ def error(
|
|
|
111
140
|
错误信息。
|
|
112
141
|
"""
|
|
113
142
|
logger.error('user.error: %s', message)
|
|
114
|
-
push("
|
|
143
|
+
push("琴音小助手错误:" + title, message, images=images)
|
|
144
|
+
_show_toast("琴音小助手错误:" + title, message)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ksaa
|
|
3
|
-
Version: 2025.7.
|
|
3
|
+
Version: 2025.7.27.1
|
|
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
|
|
@@ -26,6 +26,7 @@ Requires-Dist: onnxruntime==1.14.0
|
|
|
26
26
|
Requires-Dist: numpy<2.0
|
|
27
27
|
Requires-Dist: pywin32==310
|
|
28
28
|
Requires-Dist: ahk==1.8.3
|
|
29
|
+
Requires-Dist: win11toast==0.35
|
|
29
30
|
Dynamic: license-file
|
|
30
31
|
|
|
31
32
|
# Kotone's Auto Assistant 琴音小助手
|