ksaa 2025.7.7.0__py3-none-any.whl → 2025.7.13.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 (170) hide show
  1. kotonebot/backend/context/context.py +23 -10
  2. kotonebot/errors.py +5 -1
  3. kotonebot/kaa/common.py +2 -976
  4. kotonebot/kaa/config/__init__.py +62 -0
  5. kotonebot/kaa/config/const.py +255 -0
  6. kotonebot/kaa/config/migrations/__init__.py +28 -0
  7. kotonebot/kaa/config/migrations/_idol.py +106 -0
  8. kotonebot/kaa/config/migrations/_v1_to_v2.py +203 -0
  9. kotonebot/kaa/config/migrations/_v2_to_v3.py +126 -0
  10. kotonebot/kaa/config/migrations/_v3_to_v4.py +29 -0
  11. kotonebot/kaa/config/migrations/_v4_to_v5.py +26 -0
  12. kotonebot/kaa/config/migrations/_v5_to_v6.py +134 -0
  13. kotonebot/kaa/config/produce.py +255 -0
  14. kotonebot/kaa/config/schema.py +236 -0
  15. kotonebot/kaa/config/upgrade.py +63 -0
  16. kotonebot/kaa/game_ui/commu_event_buttons.py +3 -0
  17. kotonebot/kaa/game_ui/schedule.py +1 -1
  18. kotonebot/kaa/main/gr.py +821 -172
  19. kotonebot/kaa/main/kaa.py +23 -13
  20. kotonebot/kaa/metadata.py +45 -0
  21. kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  22. kotonebot/kaa/tasks/R.py +126 -126
  23. kotonebot/kaa/tasks/daily/acquire_activity_funds.py +1 -1
  24. kotonebot/kaa/tasks/daily/acquire_presents.py +1 -1
  25. kotonebot/kaa/tasks/daily/assignment.py +1 -1
  26. kotonebot/kaa/tasks/daily/capsule_toys.py +1 -1
  27. kotonebot/kaa/tasks/daily/club_reward.py +1 -1
  28. kotonebot/kaa/tasks/daily/contest.py +1 -1
  29. kotonebot/kaa/tasks/daily/mission_reward.py +1 -1
  30. kotonebot/kaa/tasks/daily/purchase.py +1 -1
  31. kotonebot/kaa/tasks/daily/upgrade_support_card.py +1 -1
  32. kotonebot/kaa/tasks/end_game.py +1 -1
  33. kotonebot/kaa/tasks/produce/cards.py +1 -1
  34. kotonebot/kaa/tasks/produce/common.py +3 -2
  35. kotonebot/kaa/tasks/produce/in_purodyuusu.py +9 -7
  36. kotonebot/kaa/tasks/produce/non_lesson_actions.py +3 -2
  37. kotonebot/kaa/tasks/produce/produce.py +27 -22
  38. kotonebot/kaa/tasks/start_game.py +1 -1
  39. {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.13.0.dist-info}/METADATA +1 -1
  40. {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.13.0.dist-info}/RECORD +170 -158
  41. /kotonebot/kaa/sprites/{2f4f3d81-2a8c-49d3-84a8-4d1205237ed4.png → 065de266-800e-4ebf-bab1-a37038e531d8.png} +0 -0
  42. /kotonebot/kaa/sprites/{177ee196-1013-487e-9944-64c4a9b803ef.png → 0951b840-439e-4289-991e-51b5b2df0bb2.png} +0 -0
  43. /kotonebot/kaa/sprites/{6d4337f4-e30c-44eb-bab9-220a46c0c96f.png → 09ca39cd-c964-4258-a860-6a327e31713c.png} +0 -0
  44. /kotonebot/kaa/sprites/{9e861b2e-f896-4738-b0d0-9b703395720d.png → 0b166ce2-85b0-4207-b4ee-e720462cf9ab.png} +0 -0
  45. /kotonebot/kaa/sprites/{1cd922b1-cd9c-4b60-b7e7-014c59217cb0.png → 0d10fa02-b8e7-405a-a463-83f472807a39.png} +0 -0
  46. /kotonebot/kaa/sprites/{c692a9b3-8a2a-42f1-8f63-ad8bd553272d.png → 0edc4c9d-9249-4bf0-86ad-c9fee3ee06f7.png} +0 -0
  47. /kotonebot/kaa/sprites/{f5917c99-185e-4bd9-b367-972c77accb44.png → 10d7c07d-9731-4b2a-bc92-bfb822616303.png} +0 -0
  48. /kotonebot/kaa/sprites/{59997849-5a5a-4589-a4ff-e91a789fc68d.png → 13ebdaaf-dee5-48be-963e-c2e6915b2b00.png} +0 -0
  49. /kotonebot/kaa/sprites/{b720a22b-a2f1-4686-969d-2a2edd8fb96b.png → 14e920fb-7410-4927-96e1-c40211069182.png} +0 -0
  50. /kotonebot/kaa/sprites/{489feedd-f44e-4714-ad24-b53630dfcf27.png → 17d9408b-b429-402c-9d06-f2a0b2b1abe2.png} +0 -0
  51. /kotonebot/kaa/sprites/{835a1f3e-5a06-4490-bc2e-c6d3d8edc1fd.png → 2228a02e-fec3-4bb7-ad29-d7ef0d7b7a90.png} +0 -0
  52. /kotonebot/kaa/sprites/{9d94c24c-5aab-4fb6-8fa7-902cebac134c.png → 28b29b73-758c-41ef-8829-4b93d7a6f424.png} +0 -0
  53. /kotonebot/kaa/sprites/{e64c9477-35f7-4f05-995f-f3f38bb7db66.png → 2b845193-37f8-4e17-9fd2-52765977b1fa.png} +0 -0
  54. /kotonebot/kaa/sprites/{21fe29c2-f49b-473f-8ac3-896b4d3c72f5.png → 31f239cb-58f7-4fe9-95e4-15572afa9855.png} +0 -0
  55. /kotonebot/kaa/sprites/{466524da-0d9e-424f-82eb-d6e6d3145bd3.png → 32fa7671-2413-400f-9bad-3fd7859840e4.png} +0 -0
  56. /kotonebot/kaa/sprites/{80c45554-0758-47eb-b9d7-d8c10f462ae5.png → 33dfe24e-9cc8-43c9-98a8-999e850b778a.png} +0 -0
  57. /kotonebot/kaa/sprites/{84c0f8bf-c670-47d4-8d5c-06de599f7c40.png → 34050b3d-1684-403d-95b1-8ad7ff2a85bb.png} +0 -0
  58. /kotonebot/kaa/sprites/{30ff50f2-7ab2-4a1d-88db-fd6deaba328e.png → 387b6503-d6c8-40ab-8cad-2a81021b6103.png} +0 -0
  59. /kotonebot/kaa/sprites/{1d714b45-6b20-40ba-8e0b-e7c106f0c8f3.png → 3995bbdb-4b0c-4327-b299-7d105a78e977.png} +0 -0
  60. /kotonebot/kaa/sprites/{4112f697-094b-4046-bfac-409f156784b0.png → 43648de0-a0dc-4d0b-b081-ddb4a6aae9c4.png} +0 -0
  61. /kotonebot/kaa/sprites/{899ad2c0-7b23-4b77-aed4-34ba4911672b.png → 44713a59-3d15-427a-af43-27efdc1b2b20.png} +0 -0
  62. /kotonebot/kaa/sprites/{4670fd78-3748-4df3-968b-25c8246da92b.png → 46189b9d-16fd-4385-9654-2a6fa95bc933.png} +0 -0
  63. /kotonebot/kaa/sprites/{f9e8cde8-fda0-4436-8072-6bc32c3c0b8e.png → 4660a922-bb9a-4543-b11a-d7b3be41e42e.png} +0 -0
  64. /kotonebot/kaa/sprites/{b2f31f86-b7ae-4eb1-8042-d14c5b226714.png → 476c4b40-a024-4253-bd57-b775b1559c44.png} +0 -0
  65. /kotonebot/kaa/sprites/{c639b2f6-35f2-4924-9e81-878637c176a6.png → 488c8e34-9a36-4335-8a69-c9288e3344d7.png} +0 -0
  66. /kotonebot/kaa/sprites/{f18c683d-1eb2-4279-a05c-c411683354df.png → 48a169b5-e3ad-41c8-9895-5fff217a24a3.png} +0 -0
  67. /kotonebot/kaa/sprites/{bfd495eb-7ec2-47d7-aff2-59c1a663be5d.png → 48d52db5-9d6f-4d6d-a8a9-56ec3e03cf2e.png} +0 -0
  68. /kotonebot/kaa/sprites/{d07f0d30-465e-4b4e-803f-a81aeabdd1e8.png → 4ca16d51-1b1c-4174-98df-dce028749eb0.png} +0 -0
  69. /kotonebot/kaa/sprites/{54f5e4d6-44f9-4249-bf80-aaaacf0a8d52.png → 4ee4dde9-378f-4ef3-b1f3-29bbb3d9e073.png} +0 -0
  70. /kotonebot/kaa/sprites/{025f1786-cd28-4a08-ad81-178d267dbb1a.png → 4f36ddbb-967e-41d5-9bdb-05bb8f906227.png} +0 -0
  71. /kotonebot/kaa/sprites/{b73fa422-bf9c-43aa-ad80-ae92286042e6.png → 51c39af7-efe6-4763-a85c-f1275e7cf4e8.png} +0 -0
  72. /kotonebot/kaa/sprites/{31dd40b0-1c07-4d6c-aabe-fd3e4895f4df.png → 524134df-5ade-4eb0-903f-dbae8d2a6e00.png} +0 -0
  73. /kotonebot/kaa/sprites/{d7d6ace9-35f1-4c71-b4c1-9de938b254f4.png → 582e8afb-81d9-433b-9297-2741f78224c0.png} +0 -0
  74. /kotonebot/kaa/sprites/{e6a16a1e-e821-45f0-bc64-f2e0dab7efd7.png → 59d453f1-a2df-4138-9e4e-277f6b636bde.png} +0 -0
  75. /kotonebot/kaa/sprites/{2ffd9c12-0520-4f9c-92b1-bfdef0681583.png → 5b382fe1-da9d-4644-b4e7-aa2759b36b9d.png} +0 -0
  76. /kotonebot/kaa/sprites/{97e33fa0-1442-418d-b393-3b916312c9e1.png → 5ca735d9-04b0-40a4-8eda-adbf9d0ded34.png} +0 -0
  77. /kotonebot/kaa/sprites/{af0f65a5-8d32-4211-86df-66b3fa609462.png → 5cda82c5-6026-4a4b-9447-30779ef07e51.png} +0 -0
  78. /kotonebot/kaa/sprites/{7315c6b9-6fda-4790-8e9a-c8c4220834e1.png → 5e00a181-041a-4456-8850-773f68de8573.png} +0 -0
  79. /kotonebot/kaa/sprites/{0089161a-0dac-41da-97af-b9200339a383.png → 6151e500-a626-44db-89d5-a7b15d99f9aa.png} +0 -0
  80. /kotonebot/kaa/sprites/{898325da-307d-4108-ab4c-25d9ae94ee24.png → 618b8738-c9ae-4def-951f-a3627b26a980.png} +0 -0
  81. /kotonebot/kaa/sprites/{a586f586-85e9-439e-ab3f-905d6cbe6746.png → 661760df-f790-47cb-8ddf-21b684a1096d.png} +0 -0
  82. /kotonebot/kaa/sprites/{5200fbda-653d-4b6f-84d8-15793cc53684.png → 69601752-7606-4af4-9252-097be36eec84.png} +0 -0
  83. /kotonebot/kaa/sprites/{2d0ed04f-777a-4a69-9a58-0be791260dca.png → 69d32f6c-e982-4418-94f9-5a625dc06584.png} +0 -0
  84. /kotonebot/kaa/sprites/{f2d614b3-d3bf-4340-b261-f4c385a59e4e.png → 6c2ba024-4e1e-4a07-9b58-277a1873c279.png} +0 -0
  85. /kotonebot/kaa/sprites/{c9e507d5-94dd-4ff3-b995-70c6cb360095.png → 6cc3d385-7c1a-4df2-92dd-0bc7f4931f2c.png} +0 -0
  86. /kotonebot/kaa/sprites/{b2743383-a3e4-43ff-82a3-3c7c6450fc50.png → 6d7d40e7-8f54-40b5-a900-784e2ced0df5.png} +0 -0
  87. /kotonebot/kaa/sprites/{06e7d3f6-1ab8-4714-8ab5-8af71dcbfa78.png → 721caff2-926b-4778-a20b-77c9fee8f45a.png} +0 -0
  88. /kotonebot/kaa/sprites/{dfb1d18d-b768-46c4-9d31-b654ba7a2b6d.png → 740c5975-00d7-42a7-ad95-cee0d59db3f0.png} +0 -0
  89. /kotonebot/kaa/sprites/{3de5ce1b-f72b-450a-a1de-5a841fbd507a.png → 75972e14-44b8-4ac7-9bfa-a0e0ed563b05.png} +0 -0
  90. /kotonebot/kaa/sprites/{2146a037-c3ad-4c33-834c-ddd7f3b7876c.png → 77a55e26-3901-4be0-9edb-a434c6e5e719.png} +0 -0
  91. /kotonebot/kaa/sprites/{0a3c0a4e-a979-401c-9bf3-a389e8a74e7b.png → 79d26ab2-499d-46a5-b15d-a0d0845fc535.png} +0 -0
  92. /kotonebot/kaa/sprites/{78c0f6b4-c09d-4b44-9b5e-35e1e40dd748.png → 7a72a3ad-666c-478e-a249-2ca7e35f84cb.png} +0 -0
  93. /kotonebot/kaa/sprites/{f9b38a5e-72cb-4b18-8817-18473effd41d.png → 7b58df80-77e7-4a81-84b5-3d7e61f4237e.png} +0 -0
  94. /kotonebot/kaa/sprites/{b974e1ac-1f24-4498-aa84-62cb5c0984e7.png → 80ca25c8-03b6-4ed8-bf0b-36f6ad71ffd4.png} +0 -0
  95. /kotonebot/kaa/sprites/{1cede0b7-5042-481c-b507-957dd98ec17a.png → 83d759a1-04fc-40d3-93d6-d31b4be70e5d.png} +0 -0
  96. /kotonebot/kaa/sprites/{20748b0c-889f-4706-857b-48fc921a88e3.png → 84b25f6f-aeb4-41b0-bb61-9e028ee1173f.png} +0 -0
  97. /kotonebot/kaa/sprites/{6490c5b2-2ed8-44d6-93b8-72d88434b49e.png → 88bcca49-4150-4820-8b47-049f7f1aa604.png} +0 -0
  98. /kotonebot/kaa/sprites/{5367d7ad-5a27-42e4-a7d9-5bf27102f502.png → 88cb2321-ac35-4fe6-a467-19ba5ef3af35.png} +0 -0
  99. /kotonebot/kaa/sprites/{e798ff2f-6f30-4536-923a-a65433817423.png → 897a1e29-c5e2-4c26-a348-6fd7d63c9f09.png} +0 -0
  100. /kotonebot/kaa/sprites/{cdc6e5e2-5b38-4471-b23f-17ec229268db.png → 8a8f4be3-9538-4ead-9002-009432dce534.png} +0 -0
  101. /kotonebot/kaa/sprites/{fc44214e-ef8a-4ea1-baec-35674ce0c4d6.png → 8acb588c-200f-4927-bb50-2f01c7fbf0f5.png} +0 -0
  102. /kotonebot/kaa/sprites/{0913f34e-1790-4afb-af31-9a5e94d54b05.png → 8d093e5a-3ce8-4e67-9e5d-7d91f2dd3b00.png} +0 -0
  103. /kotonebot/kaa/sprites/{3091351b-ab63-4688-8082-32545052d7a8.png → 8e0b582b-68d3-4a4f-93e1-dec23e8e6abf.png} +0 -0
  104. /kotonebot/kaa/sprites/{1762b8dc-abb8-402e-88b9-22111b054d27.png → 8f1413b8-fe01-4a37-9c10-0dcabf092367.png} +0 -0
  105. /kotonebot/kaa/sprites/{688d653e-7ee7-4d41-ac79-b4efd6c3cadd.png → 917cd398-166e-4abe-a769-6d74cfbb611e.png} +0 -0
  106. /kotonebot/kaa/sprites/{adf0eea7-a052-410b-b479-8c672ae38268.png → 92ac2224-ce9d-4ba0-aafc-c627ba97c163.png} +0 -0
  107. /kotonebot/kaa/sprites/{6f06519d-4f33-4418-b4cb-35a7356cc121.png → 9529c488-2256-4a3d-baed-4928c151b1b1.png} +0 -0
  108. /kotonebot/kaa/sprites/{18369504-36b1-4b10-93e6-878c2cae6c8f.png → 9579ad74-b049-4e27-a07c-12537c5ee051.png} +0 -0
  109. /kotonebot/kaa/sprites/{99b58811-42ff-415b-9229-f5c75cbe1a1a.png → 96044a90-a417-4042-a359-ddfd374afd0c.png} +0 -0
  110. /kotonebot/kaa/sprites/{0eb4e53c-f0af-4c86-870c-b1db087d53db.png → 96669532-4774-4c2e-bda0-ea94f3b1d41b.png} +0 -0
  111. /kotonebot/kaa/sprites/{c7e90767-3661-4e86-8c54-8e1d1e83d113.png → 985e8bd4-7658-4da1-beb3-c53220ec1c25.png} +0 -0
  112. /kotonebot/kaa/sprites/{1e398be7-49ac-4eb6-b828-b935f042037a.png → 995b71e0-ce5d-48b7-b1a1-35443a37c295.png} +0 -0
  113. /kotonebot/kaa/sprites/{467fe027-96ba-48b1-963b-75a5c41277c4.png → 9e5202cc-ef3c-433e-8cbb-afa5842f0a34.png} +0 -0
  114. /kotonebot/kaa/sprites/{6faf9942-994d-418a-ae42-25c5fcffa79e.png → 9fd3858a-c2a7-468d-b224-ca6386a08d1e.png} +0 -0
  115. /kotonebot/kaa/sprites/{2712893d-0219-43e1-8de7-c2761456719e.png → 9ff3e793-1c21-45c6-88b5-24543f300f81.png} +0 -0
  116. /kotonebot/kaa/sprites/{4abd8e80-83ef-4d1a-b143-e6ad0ac189ab.png → a49babfb-a958-4de0-b2c5-2c64ce8641fa.png} +0 -0
  117. /kotonebot/kaa/sprites/{126f5161-3567-4c76-8e91-371392e39a9c.png → a5b80b05-f6a2-407e-bf93-27b88bd982d1.png} +0 -0
  118. /kotonebot/kaa/sprites/{05d933de-6274-4d46-a81b-860de1981ebc.png → a622194f-000b-48d9-871f-89e2ba9a249d.png} +0 -0
  119. /kotonebot/kaa/sprites/{7dd1c478-719f-4432-891f-9543064fd1fc.png → a7b99e72-68c1-4b11-994f-a3238bee5fa3.png} +0 -0
  120. /kotonebot/kaa/sprites/{87a59b06-0ac7-4a35-93c4-3705bf9e774a.png → a9ec257b-d82f-4ebf-9b46-1af8836d5768.png} +0 -0
  121. /kotonebot/kaa/sprites/{08f93e03-18c9-42e3-9a2f-7d7954f585b0.png → abeb625a-74c1-45dc-a6c9-2a123dee1ab4.png} +0 -0
  122. /kotonebot/kaa/sprites/{2ed453f3-9c31-4c96-95dd-1a6aa68302f7.png → af04e2ac-bffa-4bfb-9580-c934e403d578.png} +0 -0
  123. /kotonebot/kaa/sprites/{f3e4e9ec-ddd6-42c4-9638-b93ff4e6b514.png → b04f4554-d6ea-4f99-822c-657ad1b9cd1e.png} +0 -0
  124. /kotonebot/kaa/sprites/{d5899bda-b311-469d-b4fb-963799ef1720.png → b06ebc30-305e-4f8a-8a3c-1d91aab4f9c0.png} +0 -0
  125. /kotonebot/kaa/sprites/{bbfb7670-2537-4a92-9a39-487d174f27a0.png → b07b112c-08c8-45ff-b980-105d263ff1c4.png} +0 -0
  126. /kotonebot/kaa/sprites/{4d3e267c-552c-4a65-840a-dc72a61c8db1.png → b1e6c930-f659-4ea8-a694-a4590160b438.png} +0 -0
  127. /kotonebot/kaa/sprites/{e6d0979a-cd27-4933-b528-7777be525ace.png → b34c399b-ea60-4de2-86ee-003d308594c2.png} +0 -0
  128. /kotonebot/kaa/sprites/{d43f214a-4db4-4222-941c-3d3216a0c0c3.png → b4db5745-d7d0-4afb-8962-9f71fc4188c8.png} +0 -0
  129. /kotonebot/kaa/sprites/{4eb9a3a1-da46-493b-a17d-5eb9ef53524c.png → ba45d490-da2e-4c2f-badf-7058f1802ad3.png} +0 -0
  130. /kotonebot/kaa/sprites/{3e9bdd08-3a74-40b3-8320-05ed4e8fe5d7.png → c03c6076-7935-42e7-a2e5-5f74015e92e2.png} +0 -0
  131. /kotonebot/kaa/sprites/{5cff1e6f-81ea-4d4a-88ba-209cf3bbb165.png → c0b5a0a7-0cb7-4d2c-8105-42b434437610.png} +0 -0
  132. /kotonebot/kaa/sprites/{23464a7b-dc7a-439c-86b7-04a5dd506412.png → c2a12970-cfff-4772-a4ec-127f4309f2b5.png} +0 -0
  133. /kotonebot/kaa/sprites/{c1336997-ea27-4d53-9c64-826ca7eca11f.png → c9f0ddc4-832c-42f0-b46d-a2b4326d1a1c.png} +0 -0
  134. /kotonebot/kaa/sprites/{3ddd0976-7c8b-4c67-bac7-a0cc1af3bfad.png → ca37b366-0a29-436c-8c22-78daf4148bfe.png} +0 -0
  135. /kotonebot/kaa/sprites/{c686d99a-248a-460b-a4fe-2fa5b8e9660b.png → cafb66c1-10d3-4612-80f9-f9e183d509c6.png} +0 -0
  136. /kotonebot/kaa/sprites/{8308964d-96d1-4b7e-b0fa-b20163311153.png → cf007582-08d0-4fc7-bc7c-113e211b226a.png} +0 -0
  137. /kotonebot/kaa/sprites/{308818b7-a252-45a6-868d-553c078b3752.png → cf33f626-5944-4dfe-bb46-2976c187f2a9.png} +0 -0
  138. /kotonebot/kaa/sprites/{f957edb2-3534-4d1d-a9be-70b478b2ff63.png → d1f662b1-7aa2-4ccc-a8bf-6e7a94ae2427.png} +0 -0
  139. /kotonebot/kaa/sprites/{6df0db09-9159-43b5-a6b9-43a2dfdafdab.png → d1fff69a-474d-416f-a53f-2a88a4d552c7.png} +0 -0
  140. /kotonebot/kaa/sprites/{e614c8e1-1d7b-4535-a8ba-cbf09fd5b163.png → d251bb28-4d34-4db9-85eb-554a56ac8184.png} +0 -0
  141. /kotonebot/kaa/sprites/{bcb990e6-58ae-460d-859a-812b4121e716.png → d2fe6a19-df40-43f9-8e75-2376e9987290.png} +0 -0
  142. /kotonebot/kaa/sprites/{2154ebd3-9c89-4355-b4f4-a5e18ecf728d.png → d7b786c8-7887-4870-a719-f703945cc6f1.png} +0 -0
  143. /kotonebot/kaa/sprites/{6f638005-aa18-4804-a5fe-269de4d1ad9e.png → d9ac597e-8d6d-4ab3-b865-e68a83563d25.png} +0 -0
  144. /kotonebot/kaa/sprites/{54d71b39-a3f2-4f20-a294-b6b5ef9c56f3.png → db041968-9811-494c-ae2c-1b31d4e1773c.png} +0 -0
  145. /kotonebot/kaa/sprites/{119f04e2-3871-46a8-9d5c-808c641f7aae.png → db2fb64d-3e2d-4cd4-ac3a-a993e9784697.png} +0 -0
  146. /kotonebot/kaa/sprites/{10713c56-e462-4543-8a51-02f220ed6943.png → dd268b19-354f-4e39-a4b4-0578719a40e1.png} +0 -0
  147. /kotonebot/kaa/sprites/{7c40ea85-87f6-4531-a25a-896dd70b49d1.png → deca8ee5-616a-4652-8a37-dab4f34951b6.png} +0 -0
  148. /kotonebot/kaa/sprites/{acd1a611-f93d-4d32-8070-dc325b42eeb9.png → e214cd8e-b79f-42e5-959a-64f745f35896.png} +0 -0
  149. /kotonebot/kaa/sprites/{dd431a8a-3ffa-43d6-96c6-4e84aa946b72.png → e2d11737-e1e2-4056-bd85-7d242c9c3023.png} +0 -0
  150. /kotonebot/kaa/sprites/{4e040068-e2ae-4348-80a2-f113c2426d46.png → e6e33419-ee43-48d1-98c6-a64f07b9e9e9.png} +0 -0
  151. /kotonebot/kaa/sprites/{e007420c-b92b-414c-96a3-d556e3c25cb2.png → e7fb4631-aad6-4fad-934c-72396737a98a.png} +0 -0
  152. /kotonebot/kaa/sprites/{bad07ebd-c8e7-4721-ab74-a38fa30e0401.png → eb56ba19-433e-4bab-9e47-7a2702c83954.png} +0 -0
  153. /kotonebot/kaa/sprites/{fffa0118-dd3a-4d01-8c4e-d43182778391.png → ebef3530-94ab-4ba7-b43e-5b3249286d51.png} +0 -0
  154. /kotonebot/kaa/sprites/{5d5db2d4-2648-40fe-bd17-05aea9afbc7d.png → edcb7ca8-9e3f-4232-b6c9-b7189a62d2ec.png} +0 -0
  155. /kotonebot/kaa/sprites/{acd01a53-c689-4ffd-ae45-744a37c70197.png → ee7c3730-b678-4ffe-a7e5-5637016ce5b4.png} +0 -0
  156. /kotonebot/kaa/sprites/{e87f0760-4bc9-4d7f-91e2-5452ba0fcd9d.png → f270ddb2-fabc-4dd6-818a-c818a44893ed.png} +0 -0
  157. /kotonebot/kaa/sprites/{f26d4e09-2511-48e4-9c69-ba413ddf65e1.png → f2b784ee-eeca-4633-9083-4cb996c26f66.png} +0 -0
  158. /kotonebot/kaa/sprites/{76f43a30-b76d-4648-91b6-49f2786e668d.png → f621f114-11c3-4957-a86c-cb474721d660.png} +0 -0
  159. /kotonebot/kaa/sprites/{5587551f-011c-4f94-86e8-7e81d08c4be2.png → f85c9e53-870d-46e4-9963-c5245d0c5628.png} +0 -0
  160. /kotonebot/kaa/sprites/{5efa51e6-5cb7-4843-9397-8d71c6175fcf.png → f88ee970-84ea-46b2-99e0-d3fe1cde908e.png} +0 -0
  161. /kotonebot/kaa/sprites/{51eac702-ca23-4aba-b75a-cdb03a93a117.png → fa8ee7e4-ee13-497e-856b-e210f6b1f114.png} +0 -0
  162. /kotonebot/kaa/sprites/{6a45398a-4240-4fb7-8926-fa1254125bbf.png → fb00d537-d921-4a5f-9bc7-8aac1b68a71d.png} +0 -0
  163. /kotonebot/kaa/sprites/{2d4001e6-137e-40b2-94b0-ba3ae9e397e4.png → fc23b108-7717-4b16-9e91-aacd5ddcc2ce.png} +0 -0
  164. /kotonebot/kaa/sprites/{d108794a-60b8-4637-bced-84f46140eaac.png → fd3b7b22-7011-4267-8365-64a4933073a4.png} +0 -0
  165. /kotonebot/kaa/sprites/{774ca489-09c2-414e-b27b-f32d3bf6894d.png → fd7ce00d-d45c-468b-a918-f5ded551a17d.png} +0 -0
  166. /kotonebot/kaa/sprites/{e93a983d-b869-45e4-8a5c-cd1c9d511b11.png → ffd7676f-6b57-42d2-9631-bc758d2e0a31.png} +0 -0
  167. {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.13.0.dist-info}/WHEEL +0 -0
  168. {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.13.0.dist-info}/entry_points.txt +0 -0
  169. {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.13.0.dist-info}/licenses/LICENSE +0 -0
  170. {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.13.0.dist-info}/top_level.txt +0 -0
@@ -50,7 +50,7 @@ from kotonebot.backend.ocr import (
50
50
  from kotonebot.config.manager import load_config, save_config
51
51
  from kotonebot.config.base_config import UserConfig
52
52
  from kotonebot.backend.core import Image, HintBox
53
- from kotonebot.errors import KotonebotWarning
53
+ from kotonebot.errors import ContextNotInitializedError, KotonebotWarning
54
54
  from kotonebot.backend.preprocessor import PreprocessorProtocol
55
55
  from kotonebot.primitives import Rect
56
56
 
@@ -285,11 +285,17 @@ class ContextOcr:
285
285
  self.context = context
286
286
  self.__engine = jp()
287
287
 
288
- def raw(self, lang: OcrLanguage = 'jp') -> Ocr:
288
+ def _get_engine(self, lang: OcrLanguage | None = None) -> Ocr:
289
+ """获取指定语言的OCR引擎,如果lang为None则使用默认引擎。"""
290
+ return self.__engine if lang is None else self.raw(lang)
291
+
292
+ def raw(self, lang: OcrLanguage | None = None) -> Ocr:
289
293
  """
290
294
  返回 `kotonebot.backend.ocr` 中的 Ocr 对象。\n
291
295
  Ocr 对象与此对象(ContextOcr)的区别是,此对象会自动截图,而 Ocr 对象需要手动传入图像参数。
292
296
  """
297
+ if lang is None:
298
+ lang = 'jp'
293
299
  match lang:
294
300
  case 'jp':
295
301
  return jp()
@@ -301,9 +307,11 @@ class ContextOcr:
301
307
  def ocr(
302
308
  self,
303
309
  rect: Rect | None = None,
310
+ lang: OcrLanguage | None = None,
304
311
  ) -> OcrResultList:
305
312
  """OCR 当前设备画面或指定图像。"""
306
- return self.__engine.ocr(ContextStackVars.ensure_current().screenshot, rect=rect)
313
+ engine = self._get_engine(lang)
314
+ return engine.ocr(ContextStackVars.ensure_current().screenshot, rect=rect)
307
315
 
308
316
  def find(
309
317
  self,
@@ -311,9 +319,11 @@ class ContextOcr:
311
319
  *,
312
320
  hint: HintBox | None = None,
313
321
  rect: Rect | None = None,
322
+ lang: OcrLanguage | None = None,
314
323
  ) -> OcrResult | None:
315
324
  """检查当前设备画面是否包含指定文本。"""
316
- ret = self.__engine.find(
325
+ engine = self._get_engine(lang)
326
+ ret = engine.find(
317
327
  ContextStackVars.ensure_current().screenshot,
318
328
  pattern,
319
329
  hint=hint,
@@ -328,9 +338,10 @@ class ContextOcr:
328
338
  *,
329
339
  hint: HintBox | None = None,
330
340
  rect: Rect | None = None,
331
-
341
+ lang: OcrLanguage | None = None,
332
342
  ) -> list[OcrResult | None]:
333
- return self.__engine.find_all(
343
+ engine = self._get_engine(lang)
344
+ return engine.find_all(
334
345
  ContextStackVars.ensure_current().screenshot,
335
346
  list(patterns),
336
347
  hint=hint,
@@ -343,6 +354,7 @@ class ContextOcr:
343
354
  *,
344
355
  rect: Rect | None = None,
345
356
  hint: HintBox | None = None,
357
+ lang: OcrLanguage | None = None,
346
358
  ) -> OcrResult:
347
359
 
348
360
  """
@@ -350,7 +362,8 @@ class ContextOcr:
350
362
 
351
363
  与 `find()` 的区别在于,`expect()` 未找到时会抛出异常。
352
364
  """
353
- ret = self.__engine.expect(ContextStackVars.ensure_current().screenshot, pattern, rect=rect, hint=hint)
365
+ engine = self._get_engine(lang)
366
+ ret = engine.expect(ContextStackVars.ensure_current().screenshot, pattern, rect=rect, hint=hint)
354
367
  self.context.device.last_find = ret.original_rect if ret else None
355
368
  return ret
356
369
 
@@ -706,14 +719,14 @@ class Forwarded:
706
719
  if name.startswith('_FORWARD_'):
707
720
  return object.__getattribute__(self, name)
708
721
  if self._FORWARD_getter is None:
709
- raise ValueError(f"Forwarded object {self._FORWARD_name} called before initialization.")
722
+ raise ContextNotInitializedError(f"Forwarded object {self._FORWARD_name} called before initialization.")
710
723
  return getattr(self._FORWARD_getter(), name)
711
724
 
712
725
  def __setattr__(self, name: str, value: Any):
713
726
  if name.startswith('_FORWARD_'):
714
727
  return object.__setattr__(self, name, value)
715
728
  if self._FORWARD_getter is None:
716
- raise ValueError(f"Forwarded object {self._FORWARD_name} called before initialization.")
729
+ raise ContextNotInitializedError(f"Forwarded object {self._FORWARD_name} called before initialization.")
717
730
  setattr(self._FORWARD_getter(), name, value)
718
731
 
719
732
 
@@ -961,7 +974,7 @@ def inject_context(
961
974
  ):
962
975
  global _c
963
976
  if _c is None:
964
- raise RuntimeError('Context not initialized')
977
+ raise ContextNotInitializedError('Context not initialized')
965
978
  _c.inject(device=device, ocr=ocr, image=image, color=color, vars=vars, debug=debug, config=config)
966
979
 
967
980
  class ManualContextManager:
kotonebot/errors.py CHANGED
@@ -30,4 +30,8 @@ class UnscalableResolutionError(KotonebotError):
30
30
  self.target_resolution = target_resolution
31
31
  self.screen_size = screen_size
32
32
  super().__init__(f'Cannot scale to target resolution {target_resolution}. '
33
- f'Screen size: {screen_size}')
33
+ f'Screen size: {screen_size}')
34
+
35
+ class ContextNotInitializedError(KotonebotError):
36
+ def __init__(self, msg: str = 'Context not initialized'):
37
+ super().__init__(msg)