ksaa 2025.7.3.0__py3-none-any.whl → 2025.7.7.0__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.
Files changed (188) hide show
  1. kotonebot/backend/bot.py +13 -2
  2. kotonebot/backend/context/context.py +23 -3
  3. kotonebot/client/device.py +0 -35
  4. kotonebot/config/base_config.py +2 -0
  5. kotonebot/kaa/common.py +29 -21
  6. kotonebot/kaa/game_ui/toolbar.py +3 -2
  7. kotonebot/kaa/main/gr.py +37 -8
  8. kotonebot/kaa/main/kaa.py +21 -0
  9. kotonebot/kaa/metadata.py +27 -0
  10. kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  11. kotonebot/kaa/resources/game.db +0 -0
  12. kotonebot/kaa/resources/game_ver.txt +0 -0
  13. kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-001_0.png +0 -0
  14. kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-1-001_1.png +0 -0
  15. kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-001_0.png +0 -0
  16. kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-001_1.png +0 -0
  17. kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-001_0.png +0 -0
  18. kotonebot/kaa/resources/idol_cards/i_card-skin-hume-1-001_1.png +0 -0
  19. kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-001_0.png +0 -0
  20. kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-1-001_1.png +0 -0
  21. kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-007_0.png +0 -0
  22. kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-007_1.png +0 -0
  23. kotonebot/kaa/sprites/0bf5e34e-afc6-4447-bbac-67026ce2ad26.png +0 -0
  24. kotonebot/kaa/sprites/0d9ac648-eefa-4869-ac99-1b0c83649681.png +0 -0
  25. kotonebot/kaa/sprites/185f7838-92a7-460b-9340-f60858948ce9.png +0 -0
  26. kotonebot/kaa/sprites/213016c2-c3a2-43d8-86a3-ab4d27666ced.png +0 -0
  27. kotonebot/kaa/sprites/24dc7158-036c-4a66-9280-e934f470be53.png +0 -0
  28. kotonebot/kaa/sprites/3942ae40-7f22-412c-aebe-4b064f68db9b.png +0 -0
  29. kotonebot/kaa/sprites/5031808b-5525-4118-92b4-317ec8bda985.png +0 -0
  30. kotonebot/kaa/sprites/5d36b880-7b3f-49b1-a018-7de59867d376.png +0 -0
  31. kotonebot/kaa/sprites/81c97cd3-df53-44d3-bf3d-1eb4dc67b62a.png +0 -0
  32. kotonebot/kaa/sprites/8f8b7b46-53bb-42ab-907a-4ea87eb09ab4.png +0 -0
  33. kotonebot/kaa/sprites/921eefeb-730e-46fc-9924-d338fb286592.png +0 -0
  34. kotonebot/kaa/sprites/ae9fe233-9acc-4e96-ba8e-1fb1d9bc2ea5.png +0 -0
  35. kotonebot/kaa/sprites/cb3d0ca7-8d14-408a-a2f5-2e25f7b86d6c.png +0 -0
  36. kotonebot/kaa/sprites/cc60b509-2ed5-493d-bb9f-333c6d2a6006.png +0 -0
  37. kotonebot/kaa/tasks/R.py +147 -153
  38. kotonebot/kaa/tasks/daily/acquire_activity_funds.py +12 -10
  39. kotonebot/kaa/tasks/daily/assignment.py +9 -11
  40. kotonebot/kaa/tasks/daily/purchase.py +52 -28
  41. kotonebot/kaa/tasks/produce/produce.py +12 -5
  42. {ksaa-2025.7.3.0.dist-info → ksaa-2025.7.7.0.dist-info}/METADATA +1 -1
  43. {ksaa-2025.7.3.0.dist-info → ksaa-2025.7.7.0.dist-info}/RECORD +173 -164
  44. kotonebot/kaa/sprites/047454d6-9cbb-432d-b670-bde2d5f5fc9a.png +0 -0
  45. kotonebot/kaa/sprites/135ee57a-d30d-4ba8-83f0-9f1681a49ff7.png +0 -0
  46. kotonebot/kaa/sprites/17608ef8-fe7c-4fc7-b811-a6c05e838881.png +0 -0
  47. kotonebot/kaa/sprites/278b7d9c-707e-4392-9677-74574b5cdf42.png +0 -0
  48. kotonebot/kaa/sprites/2bc00520-0afe-40e5-8743-d33fc6b2945a.png +0 -0
  49. kotonebot/kaa/sprites/404c6271-1af4-4f63-be02-e82b318eb072.png +0 -0
  50. kotonebot/kaa/sprites/6720b6e8-ae80-4cc0-a885-518efe12b707.png +0 -0
  51. kotonebot/kaa/sprites/685fb958-ec13-4826-8e78-3575ff42df27.png +0 -0
  52. kotonebot/kaa/sprites/699df701-37a2-4e17-afae-5b49ab826926.png +0 -0
  53. kotonebot/kaa/sprites/74ff07b3-d91c-4579-80cd-379ed7020622.png +0 -0
  54. kotonebot/kaa/sprites/868b97a9-492e-4712-b47f-82b97495b019.png +0 -0
  55. kotonebot/kaa/sprites/a7f5abf1-982f-4a55-8d41-3ad6f56798e0.png +0 -0
  56. kotonebot/kaa/sprites/afa06fdc-a345-4384-b25d-b16540830256.png +0 -0
  57. kotonebot/kaa/sprites/d15959bf-d07b-4f07-948a-c0aeaf17756a.png +0 -0
  58. kotonebot/kaa/sprites/ea0440b1-a7a5-4db0-828a-f907b0531cd5.png +0 -0
  59. /kotonebot/kaa/sprites/{7d7ccd61-8d92-49b4-aa7e-b1e73906371e.png → 0089161a-0dac-41da-97af-b9200339a383.png} +0 -0
  60. /kotonebot/kaa/sprites/{4466c3fe-a5ad-4960-a137-0d735441b12e.png → 025f1786-cd28-4a08-ad81-178d267dbb1a.png} +0 -0
  61. /kotonebot/kaa/sprites/{85347bb8-c28d-4a40-bd55-386c530727c2.png → 05d933de-6274-4d46-a81b-860de1981ebc.png} +0 -0
  62. /kotonebot/kaa/sprites/{76aca556-0042-4f84-a29a-30e6a631aa72.png → 06e7d3f6-1ab8-4714-8ab5-8af71dcbfa78.png} +0 -0
  63. /kotonebot/kaa/sprites/{7aa7c3dc-02e8-4d70-a026-d1afb34f37f9.png → 08f93e03-18c9-42e3-9a2f-7d7954f585b0.png} +0 -0
  64. /kotonebot/kaa/sprites/{02de663b-a039-4530-b10b-fd5aea9f600e.png → 0913f34e-1790-4afb-af31-9a5e94d54b05.png} +0 -0
  65. /kotonebot/kaa/sprites/{88ed3d25-070a-411d-b4fb-8a9df068b091.png → 0a3c0a4e-a979-401c-9bf3-a389e8a74e7b.png} +0 -0
  66. /kotonebot/kaa/sprites/{081ca89e-0f95-45e5-a855-5b7e49295af5.png → 0eb4e53c-f0af-4c86-870c-b1db087d53db.png} +0 -0
  67. /kotonebot/kaa/sprites/{abd7bfbf-5f08-452a-b216-22fb0af4e955.png → 10713c56-e462-4543-8a51-02f220ed6943.png} +0 -0
  68. /kotonebot/kaa/sprites/{7036c80b-28fd-4a54-a8f9-06a23d89e861.png → 119f04e2-3871-46a8-9d5c-808c641f7aae.png} +0 -0
  69. /kotonebot/kaa/sprites/{1fc998a7-cfa2-4485-9742-1ae87306a9fc.png → 126f5161-3567-4c76-8e91-371392e39a9c.png} +0 -0
  70. /kotonebot/kaa/sprites/{bba69e83-b9f4-4a24-a95b-190c985c5b22.png → 1762b8dc-abb8-402e-88b9-22111b054d27.png} +0 -0
  71. /kotonebot/kaa/sprites/{a5bd802e-d10c-4e95-9b62-1ffd92aca4ab.png → 177ee196-1013-487e-9944-64c4a9b803ef.png} +0 -0
  72. /kotonebot/kaa/sprites/{6af19ba1-ca74-473b-8788-61132e5fc084.png → 18369504-36b1-4b10-93e6-878c2cae6c8f.png} +0 -0
  73. /kotonebot/kaa/sprites/{1140cce1-90e4-44cd-9acc-c2491841fbd4.png → 1cd922b1-cd9c-4b60-b7e7-014c59217cb0.png} +0 -0
  74. /kotonebot/kaa/sprites/{612d508d-e77c-492e-854d-30141733bd27.png → 1cede0b7-5042-481c-b507-957dd98ec17a.png} +0 -0
  75. /kotonebot/kaa/sprites/{0e0686c7-9fe8-4f82-9d05-7922e55fc1a9.png → 1d714b45-6b20-40ba-8e0b-e7c106f0c8f3.png} +0 -0
  76. /kotonebot/kaa/sprites/{ada79928-ea1a-4537-89e7-a02877dc6e7d.png → 1e398be7-49ac-4eb6-b828-b935f042037a.png} +0 -0
  77. /kotonebot/kaa/sprites/{81bf65f2-9cc3-4613-9611-e7b5ec14c31c.png → 20748b0c-889f-4706-857b-48fc921a88e3.png} +0 -0
  78. /kotonebot/kaa/sprites/{c5447438-3b41-465e-b438-157f5e61c764.png → 2146a037-c3ad-4c33-834c-ddd7f3b7876c.png} +0 -0
  79. /kotonebot/kaa/sprites/{e3c1f79a-0077-43db-bd00-ba04d7ca8d3b.png → 2154ebd3-9c89-4355-b4f4-a5e18ecf728d.png} +0 -0
  80. /kotonebot/kaa/sprites/{276522a3-d8f0-4b0f-8ee5-dce3f2cb87a5.png → 21fe29c2-f49b-473f-8ac3-896b4d3c72f5.png} +0 -0
  81. /kotonebot/kaa/sprites/{ecdf7c70-d50e-41f4-a2ee-c4f6dd5a2617.png → 23464a7b-dc7a-439c-86b7-04a5dd506412.png} +0 -0
  82. /kotonebot/kaa/sprites/{4cca8c07-b33f-4f57-8c2b-3fff8cb4424a.png → 2712893d-0219-43e1-8de7-c2761456719e.png} +0 -0
  83. /kotonebot/kaa/sprites/{25598023-8999-4737-9f3c-9da71bb88748.png → 2d0ed04f-777a-4a69-9a58-0be791260dca.png} +0 -0
  84. /kotonebot/kaa/sprites/{e671d7bd-cf40-425f-b941-3e1adf4624e8.png → 2d4001e6-137e-40b2-94b0-ba3ae9e397e4.png} +0 -0
  85. /kotonebot/kaa/sprites/{5d8bbe9f-4732-495a-8d27-80cfd2ea12f5.png → 2ed453f3-9c31-4c96-95dd-1a6aa68302f7.png} +0 -0
  86. /kotonebot/kaa/sprites/{84af97ac-7e73-4ae8-88a6-9b3a18c81fbe.png → 2f4f3d81-2a8c-49d3-84a8-4d1205237ed4.png} +0 -0
  87. /kotonebot/kaa/sprites/{25151748-2eb2-4f08-94f1-f1be2fbea3da.png → 2ffd9c12-0520-4f9c-92b1-bfdef0681583.png} +0 -0
  88. /kotonebot/kaa/sprites/{a241cff0-d803-4c8f-bcd0-22bda2adc8a7.png → 308818b7-a252-45a6-868d-553c078b3752.png} +0 -0
  89. /kotonebot/kaa/sprites/{ab4cd19c-ad2b-4ed7-baeb-eef6a12939b2.png → 3091351b-ab63-4688-8082-32545052d7a8.png} +0 -0
  90. /kotonebot/kaa/sprites/{6be05914-aa45-4e55-a0bb-7ec16e76d7b1.png → 30ff50f2-7ab2-4a1d-88db-fd6deaba328e.png} +0 -0
  91. /kotonebot/kaa/sprites/{807904aa-30fd-4a9b-8acb-ca4b235281bc.png → 31dd40b0-1c07-4d6c-aabe-fd3e4895f4df.png} +0 -0
  92. /kotonebot/kaa/sprites/{7344f9d8-fccb-44e3-ab43-a180cfce2217.png → 3ddd0976-7c8b-4c67-bac7-a0cc1af3bfad.png} +0 -0
  93. /kotonebot/kaa/sprites/{46debd92-df4c-49d6-a3f6-c83a4c72be70.png → 3de5ce1b-f72b-450a-a1de-5a841fbd507a.png} +0 -0
  94. /kotonebot/kaa/sprites/{9bf5d8a8-30c1-4ce7-9888-bcada63d48e6.png → 3e9bdd08-3a74-40b3-8320-05ed4e8fe5d7.png} +0 -0
  95. /kotonebot/kaa/sprites/{99ae067f-72f2-4d13-a2de-f78ce13ec5a3.png → 4112f697-094b-4046-bfac-409f156784b0.png} +0 -0
  96. /kotonebot/kaa/sprites/{bc10fc41-960e-4151-aad2-325367b20895.png → 466524da-0d9e-424f-82eb-d6e6d3145bd3.png} +0 -0
  97. /kotonebot/kaa/sprites/{124fb25f-47ac-468d-97af-f90c9604f1c5.png → 4670fd78-3748-4df3-968b-25c8246da92b.png} +0 -0
  98. /kotonebot/kaa/sprites/{2b9fb35b-4a3b-440d-bcac-1eb1fdfe0e21.png → 467fe027-96ba-48b1-963b-75a5c41277c4.png} +0 -0
  99. /kotonebot/kaa/sprites/{9fb0b19e-ae0c-4c9e-8ec8-b126113b6091.png → 489feedd-f44e-4714-ad24-b53630dfcf27.png} +0 -0
  100. /kotonebot/kaa/sprites/{81a6e258-670c-4646-90ef-a76846cf5d37.png → 4abd8e80-83ef-4d1a-b143-e6ad0ac189ab.png} +0 -0
  101. /kotonebot/kaa/sprites/{f699ed29-e7aa-4c53-8320-3df785078ec3.png → 4d3e267c-552c-4a65-840a-dc72a61c8db1.png} +0 -0
  102. /kotonebot/kaa/sprites/{3bf0a104-739e-4bef-9304-4aa77e5e18ea.png → 4e040068-e2ae-4348-80a2-f113c2426d46.png} +0 -0
  103. /kotonebot/kaa/sprites/{689aa894-304a-48d2-8b6e-794dc967b1f6.png → 4eb9a3a1-da46-493b-a17d-5eb9ef53524c.png} +0 -0
  104. /kotonebot/kaa/sprites/{94b8429e-64d9-49da-945c-d2d3dcccb587.png → 51eac702-ca23-4aba-b75a-cdb03a93a117.png} +0 -0
  105. /kotonebot/kaa/sprites/{af4b7a1d-4cb2-432c-8dbb-c333950c58c2.png → 5200fbda-653d-4b6f-84d8-15793cc53684.png} +0 -0
  106. /kotonebot/kaa/sprites/{95e591bb-f0e6-457e-83e3-0909cb5c8877.png → 5367d7ad-5a27-42e4-a7d9-5bf27102f502.png} +0 -0
  107. /kotonebot/kaa/sprites/{0b452661-3720-4fa3-9e52-6fdc69517396.png → 54d71b39-a3f2-4f20-a294-b6b5ef9c56f3.png} +0 -0
  108. /kotonebot/kaa/sprites/{28f44641-894d-4047-bc56-b932ac5a32a0.png → 54f5e4d6-44f9-4249-bf80-aaaacf0a8d52.png} +0 -0
  109. /kotonebot/kaa/sprites/{540a0d73-7158-4872-808f-abcb11ba1aef.png → 5587551f-011c-4f94-86e8-7e81d08c4be2.png} +0 -0
  110. /kotonebot/kaa/sprites/{02048c24-3002-4122-b24b-15a2c2fb502f.png → 59997849-5a5a-4589-a4ff-e91a789fc68d.png} +0 -0
  111. /kotonebot/kaa/sprites/{0ad61c60-5458-400d-9788-437edb32608a.png → 5cff1e6f-81ea-4d4a-88ba-209cf3bbb165.png} +0 -0
  112. /kotonebot/kaa/sprites/{26b9efc1-51be-4784-bf78-2b929abac650.png → 5d5db2d4-2648-40fe-bd17-05aea9afbc7d.png} +0 -0
  113. /kotonebot/kaa/sprites/{3a4e2e77-c49b-4f69-bfd1-19fbe4f5c9a5.png → 5efa51e6-5cb7-4843-9397-8d71c6175fcf.png} +0 -0
  114. /kotonebot/kaa/sprites/{2a2770d2-7fd8-4bb0-89a7-c507046fc892.png → 6490c5b2-2ed8-44d6-93b8-72d88434b49e.png} +0 -0
  115. /kotonebot/kaa/sprites/{7d4d40cf-a6db-41ef-90fd-2fb0a6f5087d.png → 688d653e-7ee7-4d41-ac79-b4efd6c3cadd.png} +0 -0
  116. /kotonebot/kaa/sprites/{a6d63930-bb09-443c-95ae-47ad6a9f9cc4.png → 6a45398a-4240-4fb7-8926-fa1254125bbf.png} +0 -0
  117. /kotonebot/kaa/sprites/{a2ab29ef-ddc7-4885-9f88-850858b0c995.png → 6d4337f4-e30c-44eb-bab9-220a46c0c96f.png} +0 -0
  118. /kotonebot/kaa/sprites/{01ce8957-465d-4278-b297-f58b36c73285.png → 6df0db09-9159-43b5-a6b9-43a2dfdafdab.png} +0 -0
  119. /kotonebot/kaa/sprites/{0a586241-e005-45a6-b12f-eed8089d8fd8.png → 6f06519d-4f33-4418-b4cb-35a7356cc121.png} +0 -0
  120. /kotonebot/kaa/sprites/{6fc5543e-9d09-4f06-8331-64ee62bd73c3.png → 6f638005-aa18-4804-a5fe-269de4d1ad9e.png} +0 -0
  121. /kotonebot/kaa/sprites/{56a7aed8-6367-40dd-a6a1-fc8a840abd9b.png → 6faf9942-994d-418a-ae42-25c5fcffa79e.png} +0 -0
  122. /kotonebot/kaa/sprites/{28ea2cc9-e9f2-4573-968a-0c88562c696a.png → 7315c6b9-6fda-4790-8e9a-c8c4220834e1.png} +0 -0
  123. /kotonebot/kaa/sprites/{71fe9437-3d7a-4321-9e5c-d6b81d954002.png → 76f43a30-b76d-4648-91b6-49f2786e668d.png} +0 -0
  124. /kotonebot/kaa/sprites/{3037118b-4a82-4cfc-ad95-db8a03f779d5.png → 774ca489-09c2-414e-b27b-f32d3bf6894d.png} +0 -0
  125. /kotonebot/kaa/sprites/{33aaec9e-dccc-441a-b91a-4784f1eb4498.png → 78c0f6b4-c09d-4b44-9b5e-35e1e40dd748.png} +0 -0
  126. /kotonebot/kaa/sprites/{f1758956-6b88-49f7-9ecf-44db49d1e6fe.png → 7c40ea85-87f6-4531-a25a-896dd70b49d1.png} +0 -0
  127. /kotonebot/kaa/sprites/{0db398fd-3551-4a15-b734-ca5a7b54150f.png → 7dd1c478-719f-4432-891f-9543064fd1fc.png} +0 -0
  128. /kotonebot/kaa/sprites/{e2d3a8c0-3998-4643-b084-c21b2304843c.png → 80c45554-0758-47eb-b9d7-d8c10f462ae5.png} +0 -0
  129. /kotonebot/kaa/sprites/{fccea764-f5db-45c6-ace1-140844e0d0f0.png → 8308964d-96d1-4b7e-b0fa-b20163311153.png} +0 -0
  130. /kotonebot/kaa/sprites/{f92f9af7-77ef-4814-a64b-ce8f340a9cf9.png → 835a1f3e-5a06-4490-bc2e-c6d3d8edc1fd.png} +0 -0
  131. /kotonebot/kaa/sprites/{540547f7-5633-440c-b7ad-b54529436479.png → 84c0f8bf-c670-47d4-8d5c-06de599f7c40.png} +0 -0
  132. /kotonebot/kaa/sprites/{dd4c523c-1286-4f68-89f5-371464aa138c.png → 87a59b06-0ac7-4a35-93c4-3705bf9e774a.png} +0 -0
  133. /kotonebot/kaa/sprites/{e703f139-9612-4e4a-be30-db32423d57d9.png → 898325da-307d-4108-ab4c-25d9ae94ee24.png} +0 -0
  134. /kotonebot/kaa/sprites/{501eaf11-021e-4764-93ed-0be6ea0ed5df.png → 899ad2c0-7b23-4b77-aed4-34ba4911672b.png} +0 -0
  135. /kotonebot/kaa/sprites/{1a4c5291-70a9-4923-aadf-f7e6a28c7aa5.png → 97e33fa0-1442-418d-b393-3b916312c9e1.png} +0 -0
  136. /kotonebot/kaa/sprites/{6a7eacf1-f14e-45cf-8ef7-7f933d4fa664.png → 99b58811-42ff-415b-9229-f5c75cbe1a1a.png} +0 -0
  137. /kotonebot/kaa/sprites/{1470cd16-3340-4a0a-854f-3acf9b882cb1.png → 9d94c24c-5aab-4fb6-8fa7-902cebac134c.png} +0 -0
  138. /kotonebot/kaa/sprites/{62a4c9fd-35e6-4982-b9f4-e3a5685eac13.png → 9e861b2e-f896-4738-b0d0-9b703395720d.png} +0 -0
  139. /kotonebot/kaa/sprites/{ed331876-f724-4a9f-a494-7823be883a76.png → a586f586-85e9-439e-ab3f-905d6cbe6746.png} +0 -0
  140. /kotonebot/kaa/sprites/{ce0df3fa-5d88-4b20-9cf1-6b4abac4c110.png → acd01a53-c689-4ffd-ae45-744a37c70197.png} +0 -0
  141. /kotonebot/kaa/sprites/{4fe4fbf2-4dbf-44d2-8dd6-a3f3c9f0d1b7.png → acd1a611-f93d-4d32-8070-dc325b42eeb9.png} +0 -0
  142. /kotonebot/kaa/sprites/{6f342de5-b179-4120-ab6d-404c3eee5caa.png → adf0eea7-a052-410b-b479-8c672ae38268.png} +0 -0
  143. /kotonebot/kaa/sprites/{49e46cda-a6ac-44c8-8901-60956ca5151d.png → af0f65a5-8d32-4211-86df-66b3fa609462.png} +0 -0
  144. /kotonebot/kaa/sprites/{2a0e9656-26ba-4d7a-a414-6045e521b92c.png → b2743383-a3e4-43ff-82a3-3c7c6450fc50.png} +0 -0
  145. /kotonebot/kaa/sprites/{e89906b2-7354-4724-80ef-7c7fe5cd3ef5.png → b2f31f86-b7ae-4eb1-8042-d14c5b226714.png} +0 -0
  146. /kotonebot/kaa/sprites/{2fc3fa82-cc3d-4164-839f-d0bd7f8a32f5.png → b720a22b-a2f1-4686-969d-2a2edd8fb96b.png} +0 -0
  147. /kotonebot/kaa/sprites/{277035b5-7eee-4ca8-80dd-f73d78e7531f.png → b73fa422-bf9c-43aa-ad80-ae92286042e6.png} +0 -0
  148. /kotonebot/kaa/sprites/{9b425fee-9118-4015-9242-29bf1150e704.png → b974e1ac-1f24-4498-aa84-62cb5c0984e7.png} +0 -0
  149. /kotonebot/kaa/sprites/{f897b52f-b9d8-4d94-9d98-1ed6bf7b6c76.png → bad07ebd-c8e7-4721-ab74-a38fa30e0401.png} +0 -0
  150. /kotonebot/kaa/sprites/{884a25c2-7b98-4a33-a975-6f918a8301aa.png → bbfb7670-2537-4a92-9a39-487d174f27a0.png} +0 -0
  151. /kotonebot/kaa/sprites/{bf44c221-0af9-497e-a2e8-cdc497348257.png → bcb990e6-58ae-460d-859a-812b4121e716.png} +0 -0
  152. /kotonebot/kaa/sprites/{74e207b4-a13e-47cc-bf23-dbf77089ea3c.png → bfd495eb-7ec2-47d7-aff2-59c1a663be5d.png} +0 -0
  153. /kotonebot/kaa/sprites/{441c2df2-43ac-4ff3-814e-6230c510bce6.png → c1336997-ea27-4d53-9c64-826ca7eca11f.png} +0 -0
  154. /kotonebot/kaa/sprites/{1db583b2-c82a-4576-9ca9-b7409bc1ca95.png → c639b2f6-35f2-4924-9e81-878637c176a6.png} +0 -0
  155. /kotonebot/kaa/sprites/{bc94b664-bbcf-4b59-8e4b-7dbf03997309.png → c686d99a-248a-460b-a4fe-2fa5b8e9660b.png} +0 -0
  156. /kotonebot/kaa/sprites/{43550662-cd46-4312-b18b-949cba98d173.png → c692a9b3-8a2a-42f1-8f63-ad8bd553272d.png} +0 -0
  157. /kotonebot/kaa/sprites/{d2a8f04f-38c1-4a67-8c57-43e0334887ef.png → c7e90767-3661-4e86-8c54-8e1d1e83d113.png} +0 -0
  158. /kotonebot/kaa/sprites/{feb8f473-8a2e-40a5-b6e0-dffafd35edc1.png → c9e507d5-94dd-4ff3-b995-70c6cb360095.png} +0 -0
  159. /kotonebot/kaa/sprites/{559485ee-a27f-4824-ad7a-e57d0c613ed5.png → cdc6e5e2-5b38-4471-b23f-17ec229268db.png} +0 -0
  160. /kotonebot/kaa/sprites/{62031705-40e0-4b74-b7b9-07f1fffd122f.png → d07f0d30-465e-4b4e-803f-a81aeabdd1e8.png} +0 -0
  161. /kotonebot/kaa/sprites/{44430184-c35e-4bb8-8858-ed5cec580c36.png → d108794a-60b8-4637-bced-84f46140eaac.png} +0 -0
  162. /kotonebot/kaa/sprites/{db375f07-c682-4aae-880a-a2cf13d0dac0.png → d43f214a-4db4-4222-941c-3d3216a0c0c3.png} +0 -0
  163. /kotonebot/kaa/sprites/{ee7f4e24-6cbc-41ed-9327-d6843ac6a820.png → d5899bda-b311-469d-b4fb-963799ef1720.png} +0 -0
  164. /kotonebot/kaa/sprites/{c696843a-1e17-4c0d-a92c-eb54f9356daf.png → d7d6ace9-35f1-4c71-b4c1-9de938b254f4.png} +0 -0
  165. /kotonebot/kaa/sprites/{359e43b3-6b85-4f8c-86a1-4d4c1ae75779.png → dd431a8a-3ffa-43d6-96c6-4e84aa946b72.png} +0 -0
  166. /kotonebot/kaa/sprites/{e47acec2-3466-419a-acad-30618239aab9.png → dfb1d18d-b768-46c4-9d31-b654ba7a2b6d.png} +0 -0
  167. /kotonebot/kaa/sprites/{69266fc9-c8fe-48ea-8d68-8ace8c606049.png → e007420c-b92b-414c-96a3-d556e3c25cb2.png} +0 -0
  168. /kotonebot/kaa/sprites/{f6063ed7-f59e-4c37-93e2-026c805826ea.png → e614c8e1-1d7b-4535-a8ba-cbf09fd5b163.png} +0 -0
  169. /kotonebot/kaa/sprites/{bff85e9a-df48-429f-a82e-ceff41f8527b.png → e64c9477-35f7-4f05-995f-f3f38bb7db66.png} +0 -0
  170. /kotonebot/kaa/sprites/{109ff896-1f96-465a-ad6f-ef410789e140.png → e6a16a1e-e821-45f0-bc64-f2e0dab7efd7.png} +0 -0
  171. /kotonebot/kaa/sprites/{b5d02984-ec1f-48f5-8593-0bc0e4babc1f.png → e6d0979a-cd27-4933-b528-7777be525ace.png} +0 -0
  172. /kotonebot/kaa/sprites/{a53820f6-1572-413a-b7b1-2bc08690884f.png → e798ff2f-6f30-4536-923a-a65433817423.png} +0 -0
  173. /kotonebot/kaa/sprites/{24cdb395-915e-4816-9406-efd1aafa70c1.png → e87f0760-4bc9-4d7f-91e2-5452ba0fcd9d.png} +0 -0
  174. /kotonebot/kaa/sprites/{a388f87d-9a69-4189-b80a-e230d7d7b964.png → e93a983d-b869-45e4-8a5c-cd1c9d511b11.png} +0 -0
  175. /kotonebot/kaa/sprites/{156d67bb-562c-42df-b55a-aea0b6ad71dd.png → f18c683d-1eb2-4279-a05c-c411683354df.png} +0 -0
  176. /kotonebot/kaa/sprites/{c4985caa-1e42-4980-9a76-a660a7b12c67.png → f26d4e09-2511-48e4-9c69-ba413ddf65e1.png} +0 -0
  177. /kotonebot/kaa/sprites/{2fd135e1-8010-4a53-90a3-2a950c5a43bf.png → f2d614b3-d3bf-4340-b261-f4c385a59e4e.png} +0 -0
  178. /kotonebot/kaa/sprites/{982d2e5d-4493-44a5-b922-e71649fd6bc5.png → f3e4e9ec-ddd6-42c4-9638-b93ff4e6b514.png} +0 -0
  179. /kotonebot/kaa/sprites/{0a0dfcba-7ae4-415a-9361-7f3c4ec16ef9.png → f5917c99-185e-4bd9-b367-972c77accb44.png} +0 -0
  180. /kotonebot/kaa/sprites/{a26dc021-2a28-4f79-bd11-48c4a1261f0d.png → f957edb2-3534-4d1d-a9be-70b478b2ff63.png} +0 -0
  181. /kotonebot/kaa/sprites/{ac4579ad-2000-4283-8e13-53fe525725bf.png → f9b38a5e-72cb-4b18-8817-18473effd41d.png} +0 -0
  182. /kotonebot/kaa/sprites/{cc959ce4-8619-4bd7-8a85-02f97cf6cc51.png → f9e8cde8-fda0-4436-8072-6bc32c3c0b8e.png} +0 -0
  183. /kotonebot/kaa/sprites/{525b6f3a-acc8-4bd8-be4b-cc1f44fb377a.png → fc44214e-ef8a-4ea1-baec-35674ce0c4d6.png} +0 -0
  184. /kotonebot/kaa/sprites/{3ea8a020-5605-47ce-8d3a-d812d0583058.png → fffa0118-dd3a-4d01-8c4e-d43182778391.png} +0 -0
  185. {ksaa-2025.7.3.0.dist-info → ksaa-2025.7.7.0.dist-info}/WHEEL +0 -0
  186. {ksaa-2025.7.3.0.dist-info → ksaa-2025.7.7.0.dist-info}/entry_points.txt +0 -0
  187. {ksaa-2025.7.3.0.dist-info → ksaa-2025.7.7.0.dist-info}/licenses/LICENSE +0 -0
  188. {ksaa-2025.7.3.0.dist-info → ksaa-2025.7.7.0.dist-info}/top_level.txt +0 -0
@@ -155,17 +155,15 @@ def assignment():
155
155
  if not at_home():
156
156
  goto_home()
157
157
  btn_assignment = image.expect_wait(R.Daily.ButtonAssignmentPartial)
158
- notification_rect = rect_expand(btn_assignment.rect, top=40, right=40)
159
- complete_rect = rect_expand(btn_assignment.rect, right=40, bottom=60)
160
- with device.pinned():
161
- completed = color.find('#ff6085', rect=complete_rect)
162
- if completed:
163
- logger.info('Assignment completed. Acquiring...')
164
- notification_dot = color.find('#ff134a', rect=notification_rect)
165
- if not notification_dot and not completed:
166
- logger.info('No action needed.')
167
- # TODO: 获取剩余时间,并根据时间更新调度
168
- return
158
+
159
+ completed = color.find('#ff6085', rect=R.Daily.BoxHomeAssignment)
160
+ if completed:
161
+ logger.info('Assignment completed. Acquiring...')
162
+ notification_dot = color.find('#ff134a', rect=R.Daily.BoxHomeAssignment)
163
+ if not notification_dot and not completed:
164
+ logger.info('No action needed.')
165
+ # TODO: 获取剩余时间,并根据时间更新调度
166
+ return
169
167
 
170
168
  # 点击工作按钮
171
169
  logger.debug('Clicking assignment icon.')
@@ -2,9 +2,11 @@
2
2
  import logging
3
3
  from typing import Optional
4
4
 
5
+ from kotonebot.backend.loop import Loop
5
6
  from kotonebot.kaa.tasks import R
6
7
  from kotonebot.kaa.common import conf, DailyMoneyShopItems
7
- from kotonebot.util import cropped
8
+ from kotonebot.primitives.geometry import Point
9
+ from kotonebot.util import Countdown, cropped
8
10
  from kotonebot import task, device, image, action, sleep
9
11
  from kotonebot.backend.dispatch import SimpleDispatcher
10
12
  from ..actions.scenes import goto_home, goto_shop, at_daily_shop
@@ -37,10 +39,10 @@ def money_items2(items: Optional[list[DailyMoneyShopItems]] = None):
37
39
  scroll = 0
38
40
  while items:
39
41
  for item in items:
40
- if image.find(item.to_resource(), colored=True):
42
+ if ret := image.find(item.to_resource(), colored=True):
41
43
  logger.info(f'Purchasing {item.to_ui_text(item)}...')
42
44
  device.click()
43
- handle_purchase_dialog()
45
+ confirm_purchase(ret.position)
44
46
  finished.append(item)
45
47
  items = [item for item in items if item not in finished]
46
48
  # 全都买完了
@@ -71,16 +73,17 @@ def dispatch_recommended_items():
71
73
 
72
74
  while True:
73
75
  device.screenshot()
74
- if image.find(R.Daily.TextShopRecommended):
76
+ if rec := image.find(R.Daily.TextShopRecommended):
75
77
  logger.info(f'Clicking on recommended item.') # TODO: 计数
76
78
  device.click()
77
- handle_purchase_dialog()
79
+ confirm_purchase(rec.position)
80
+ sleep(2.5) #
78
81
  elif image.find(R.Daily.IconTitleDailyShop) and not image.find(R.Daily.TextShopRecommended):
79
82
  logger.info(f'No recommended item found. Finished.')
80
83
  break
81
84
 
82
85
  @action('确认购买', screenshot_mode='manual-inherit')
83
- def handle_purchase_dialog():
86
+ def confirm_purchase(target_item_pos: Point | None = None):
84
87
  """
85
88
  确认购买
86
89
 
@@ -89,11 +92,27 @@ def handle_purchase_dialog():
89
92
  """
90
93
  # 前置条件:[screenshots\shop\dialog.png]
91
94
  # TODO: 需要有个更好的方式检测是否已购买
92
- purchased = (SimpleDispatcher('dispatch_purchase_dialog')
93
- .until(R.Common.ButtonConfirm, result=False)
94
- .until(R.Daily.TextShopPurchased, result=True)
95
- .timeout(timeout=3, result=True)
96
- ).run()
95
+ purchased = False
96
+ cd = Countdown(sec=3)
97
+ for _ in Loop():
98
+ if cd.expired():
99
+ purchased = True
100
+ break
101
+ if image.find(R.Daily.TextShopItemSoldOut):
102
+ logger.info('Item sold out.')
103
+ purchased = True
104
+ break
105
+ elif image.find(R.Daily.TextShopItemPurchased):
106
+ logger.info('Item already purchased.')
107
+ purchased = True
108
+ break
109
+ elif image.find(R.Common.ButtonConfirm):
110
+ logger.info('Confirming purchase...')
111
+ device.click()
112
+ sleep(0.5)
113
+ else:
114
+ if target_item_pos:
115
+ device.click(target_item_pos)
97
116
 
98
117
  if purchased:
99
118
  logger.info('Item sold out.')
@@ -132,20 +151,19 @@ def ap_items():
132
151
  logger.info(f'Purchasing #{index} AP item.')
133
152
  device.click(results[index])
134
153
  sleep(0.5)
135
- with cropped(device, y1=0.3):
136
- purchased = image.wait_for(R.Daily.TextShopPurchased, timeout=1)
137
- if purchased is not None:
138
- logger.info(f'AP item #{index} already purchased.')
139
- continue
140
- comfirm = image.expect_wait(R.Common.ButtonConfirm, timeout=2)
141
- # 如果数量不是最大,调到最大
142
- while image.find(R.Daily.ButtonShopCountAdd, colored=True):
143
- logger.debug('Adjusting quantity(+1)...')
144
- device.click()
145
- sleep(0.3)
146
- logger.debug(f'Confirming purchase...')
147
- device.click(comfirm)
148
- sleep(1.5)
154
+ purchased = image.wait_for(R.Daily.TextShopItemSoldOut, timeout=1)
155
+ if purchased is not None:
156
+ logger.info(f'AP item #{index} already purchased.')
157
+ continue
158
+ comfirm = image.expect_wait(R.Common.ButtonConfirm, timeout=2)
159
+ # 如果数量不是最大,调到最大
160
+ while image.find(R.Daily.ButtonShopCountAdd, colored=True):
161
+ logger.debug('Adjusting quantity(+1)...')
162
+ device.click()
163
+ sleep(0.3)
164
+ logger.debug(f'Confirming purchase...')
165
+ device.click(comfirm)
166
+ sleep(1.5)
149
167
  else:
150
168
  logger.warning(f'AP item #{index} not found')
151
169
  logger.info(f'Purchasing AP items completed. {len(item_indices)} items purchased.')
@@ -158,8 +176,8 @@ def purchase():
158
176
  if not conf().purchase.enabled:
159
177
  logger.info('Purchase is disabled.')
160
178
  return
161
- if not at_daily_shop():
162
- goto_shop()
179
+
180
+ goto_shop()
163
181
  # 进入每日商店 [screenshots\shop\shop.png]
164
182
  device.click(image.expect(R.Daily.ButtonDailyShop)) # TODO: memoable
165
183
  # 等待载入
@@ -170,6 +188,12 @@ def purchase():
170
188
  image.expect_wait(R.Daily.IconShopMoney)
171
189
  money_items2()
172
190
  sleep(0.5)
191
+ if image.find(R.Daily.ButtonRefreshMoneyShop):
192
+ logger.info('Refreshing money shop.')
193
+ device.click()
194
+ sleep(0.5)
195
+ money_items2()
196
+ sleep(0.5)
173
197
  else:
174
198
  logger.info('Money purchase is disabled.')
175
199
 
@@ -178,7 +202,7 @@ def purchase():
178
202
  # 点击 AP 选项卡
179
203
  device.click(ap_tab)
180
204
  # 等待 AP 选项卡加载完成
181
- image.expect_wait(R.Daily.IconShopAp)
205
+ image.expect_wait(R.Daily.IconShopAp, threshold=0.7)
182
206
  ap_items()
183
207
  sleep(0.5)
184
208
  else:
@@ -205,11 +205,18 @@ def do_produce(
205
205
  goto_home()
206
206
 
207
207
  device.screenshot()
208
- # 有进行中培育的情况
209
- if ocr.find(contains('中'), rect=R.Produce.BoxProduceOngoing):
210
- logger.info('Ongoing produce found. Try to resume produce.')
211
- resume_produce()
212
- return True
208
+ # 点击培育按钮,然后判断是新开还是再开培育
209
+ for _ in Loop(interval=0.6):
210
+ if image.find(R.Produce.TitleIconProudce):
211
+ # 新开
212
+ break
213
+ elif image.find(R.Produce.ButtonResume):
214
+ # 再开
215
+ resume_produce()
216
+ return True
217
+ else:
218
+ device.click(R.Produce.BoxProduceOngoing)
219
+ sleep(2)
213
220
 
214
221
  # 0. 进入培育页面
215
222
  logger.info(f'Enter produce page. Mode: {mode}')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ksaa
3
- Version: 2025.7.3.0
3
+ Version: 2025.7.7.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