nonebot-plugin-osubot 6.19.0__tar.gz → 6.20.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nonebot-plugin-osubot might be problematic. Click here for more details.

Files changed (408) hide show
  1. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/PKG-INFO +1 -1
  2. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/api.py +86 -39
  3. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/PalpableCatchHitObject.js +21 -2
  4. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/bananashower.js +1 -0
  5. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/catch.js +62 -11
  6. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/juicestream.js +6 -1
  7. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/curve.js +21 -1
  8. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/slider.js +2 -0
  9. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/utils.py +6 -4
  10. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/bp.py +8 -8
  11. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/pyproject.toml +1 -1
  12. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/README.md +0 -0
  13. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/__init__.py +0 -0
  14. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/beatmap_stats_moder.py +0 -0
  15. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/config.py +0 -0
  16. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/database/__init__.py +0 -0
  17. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/database/models.py +0 -0
  18. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/__init__.py +0 -0
  19. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/bmap.py +0 -0
  20. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/bp.py +0 -0
  21. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview.py +0 -0
  22. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/css/style.css +0 -0
  23. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/beatmap.js +0 -0
  24. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/hitobject.js +0 -0
  25. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/point.js +0 -0
  26. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/scroll.js +0 -0
  27. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/timingpoint.js +0 -0
  28. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/LegacyRandom.js +0 -0
  29. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/fruit.js +0 -0
  30. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/fakeaudio.js +0 -0
  31. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/preview.js +0 -0
  32. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/bezier2.js +0 -0
  33. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/catmullcurve.js +0 -0
  34. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/centripetalcatmullrom.js +0 -0
  35. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/circumstancedcircle.js +0 -0
  36. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/curvetype.js +0 -0
  37. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/equaldistancemulticurve.js +0 -0
  38. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/linearbezier.js +0 -0
  39. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/hitcircle.js +0 -0
  40. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/spinner.js +0 -0
  41. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/util.js +0 -0
  42. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/viewbox.js +0 -0
  43. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/js/zip.min.js +0 -0
  44. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/catch_preview_templates/pic.html +0 -0
  45. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/echarts.py +0 -0
  46. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/info.py +0 -0
  47. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/map.py +0 -0
  48. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/match_history.py +0 -0
  49. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/rating.py +0 -0
  50. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/score.py +0 -0
  51. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/static.py +0 -0
  52. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/taiko_preview.py +0 -0
  53. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/templates/bpa_chart.html +0 -0
  54. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/templates/echarts.min.js +0 -0
  55. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/templates/mod_chart.html +0 -0
  56. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/draw/templates/pp_rank_line_chart.html +0 -0
  57. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/exceptions.py +0 -0
  58. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/file.py +0 -0
  59. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/info/__init__.py +0 -0
  60. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/info/bg.py +0 -0
  61. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/info/bind.py +0 -0
  62. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/mania/__init__.py +0 -0
  63. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/__init__.py +0 -0
  64. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/bind.py +0 -0
  65. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/bp_analyze.py +0 -0
  66. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/getbg.py +0 -0
  67. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/guess.py +0 -0
  68. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/history.py +0 -0
  69. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/info.py +0 -0
  70. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/map.py +0 -0
  71. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/map_convert.py +0 -0
  72. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/match.py +0 -0
  73. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/medal.py +0 -0
  74. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/mu.py +0 -0
  75. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/osu_help.py +0 -0
  76. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/osudl.py +0 -0
  77. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/pr.py +0 -0
  78. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/preview.py +0 -0
  79. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/rank.py +0 -0
  80. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/rating.py +0 -0
  81. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/recommend.py +0 -0
  82. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/score.py +0 -0
  83. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/update.py +0 -0
  84. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/update_mode.py +0 -0
  85. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/url_match.py +0 -0
  86. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/matcher/utils.py +0 -0
  87. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/mods.py +0 -0
  88. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/network/__init__.py +0 -0
  89. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/network/auto_retry.py +0 -0
  90. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/network/first_response.py +0 -0
  91. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/Best Performance.png +0 -0
  92. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/History Score.jpg +0 -0
  93. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/beatmapinfo.png +0 -0
  94. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/convert.jpg +0 -0
  95. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/detail.png +0 -0
  96. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AD.png +0 -0
  97. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AE.png +0 -0
  98. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AF.png +0 -0
  99. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AG.png +0 -0
  100. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AI.png +0 -0
  101. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AL.png +0 -0
  102. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AM.png +0 -0
  103. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AO.png +0 -0
  104. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AQ.png +0 -0
  105. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AR.png +0 -0
  106. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AS.png +0 -0
  107. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AT.png +0 -0
  108. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AU.png +0 -0
  109. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AW.png +0 -0
  110. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AX.png +0 -0
  111. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/AZ.png +0 -0
  112. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BA.png +0 -0
  113. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BB.png +0 -0
  114. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BD.png +0 -0
  115. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BE.png +0 -0
  116. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BF.png +0 -0
  117. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BG.png +0 -0
  118. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BH.png +0 -0
  119. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BI.png +0 -0
  120. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BJ.png +0 -0
  121. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BL.png +0 -0
  122. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BM.png +0 -0
  123. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BN.png +0 -0
  124. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BO.png +0 -0
  125. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BQ (1).png +0 -0
  126. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BQ (2).png +0 -0
  127. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BR.png +0 -0
  128. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BS.png +0 -0
  129. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BT.png +0 -0
  130. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BV.png +0 -0
  131. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BW.png +0 -0
  132. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BY.png +0 -0
  133. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/BZ.png +0 -0
  134. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CA.png +0 -0
  135. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CD.png +0 -0
  136. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CF.png +0 -0
  137. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CG.png +0 -0
  138. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CH.png +0 -0
  139. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CI.png +0 -0
  140. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CK.png +0 -0
  141. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CL.png +0 -0
  142. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CM.png +0 -0
  143. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CN.png +0 -0
  144. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CO.png +0 -0
  145. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CR.png +0 -0
  146. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CU.png +0 -0
  147. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CV.png +0 -0
  148. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CX.png +0 -0
  149. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CY.png +0 -0
  150. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/CZ.png +0 -0
  151. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/DE.png +0 -0
  152. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/DJ.png +0 -0
  153. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/DK.png +0 -0
  154. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/DM.png +0 -0
  155. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/DO.png +0 -0
  156. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/DZ.png +0 -0
  157. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/EC.png +0 -0
  158. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/EE.png +0 -0
  159. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/EG.png +0 -0
  160. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/EH.png +0 -0
  161. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ER.png +0 -0
  162. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ES.png +0 -0
  163. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ET.png +0 -0
  164. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/FI.png +0 -0
  165. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/FJ.png +0 -0
  166. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/FK.png +0 -0
  167. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/FO.png +0 -0
  168. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/FR.png +0 -0
  169. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GA.png +0 -0
  170. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GB.png +0 -0
  171. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GD.png +0 -0
  172. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GE.png +0 -0
  173. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GF.png +0 -0
  174. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GG.png +0 -0
  175. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GH.png +0 -0
  176. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GI.png +0 -0
  177. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GL.png +0 -0
  178. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GM.png +0 -0
  179. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GN.png +0 -0
  180. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GP.png +0 -0
  181. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GQ.png +0 -0
  182. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GR.png +0 -0
  183. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GS.png +0 -0
  184. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GT.png +0 -0
  185. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GU.png +0 -0
  186. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GW.png +0 -0
  187. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/GY.png +0 -0
  188. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/HK.png +0 -0
  189. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/HM.png +0 -0
  190. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/HN.png +0 -0
  191. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/HR.png +0 -0
  192. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/HT.png +0 -0
  193. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/HU.png +0 -0
  194. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ID.png +0 -0
  195. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IE.png +0 -0
  196. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IL.png +0 -0
  197. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IM.png +0 -0
  198. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IN.png +0 -0
  199. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IO.png +0 -0
  200. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IQ.png +0 -0
  201. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IR.png +0 -0
  202. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IS.png +0 -0
  203. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/IT.png +0 -0
  204. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/JE.png +0 -0
  205. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/JM.png +0 -0
  206. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/JO.png +0 -0
  207. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/JP.png +0 -0
  208. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KE.png +0 -0
  209. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KG.png +0 -0
  210. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KH.png +0 -0
  211. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KI.png +0 -0
  212. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KM.png +0 -0
  213. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KN.png +0 -0
  214. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KP.png +0 -0
  215. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KR.png +0 -0
  216. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KW.png +0 -0
  217. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KY.png +0 -0
  218. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/KZ.png +0 -0
  219. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LA.png +0 -0
  220. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LB.png +0 -0
  221. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LC.png +0 -0
  222. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LI.png +0 -0
  223. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LK.png +0 -0
  224. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LR.png +0 -0
  225. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LS.png +0 -0
  226. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LT.png +0 -0
  227. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LU.png +0 -0
  228. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LV.png +0 -0
  229. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/LY.png +0 -0
  230. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MA.png +0 -0
  231. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MC.png +0 -0
  232. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MD.png +0 -0
  233. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ME.png +0 -0
  234. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MF.png +0 -0
  235. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MG.png +0 -0
  236. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MH.png +0 -0
  237. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MK.png +0 -0
  238. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ML.png +0 -0
  239. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MM.png +0 -0
  240. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MN.png +0 -0
  241. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MO.png +0 -0
  242. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MP.png +0 -0
  243. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MQ.png +0 -0
  244. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MR.png +0 -0
  245. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MS.png +0 -0
  246. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MT.png +0 -0
  247. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MU.png +0 -0
  248. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MV.png +0 -0
  249. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MW.png +0 -0
  250. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MX.png +0 -0
  251. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MY.png +0 -0
  252. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/MZ.png +0 -0
  253. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NA.png +0 -0
  254. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NC.png +0 -0
  255. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NE.png +0 -0
  256. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NF.png +0 -0
  257. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NG.png +0 -0
  258. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NI.png +0 -0
  259. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NL.png +0 -0
  260. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NO.png +0 -0
  261. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NP.png +0 -0
  262. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NR.png +0 -0
  263. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NU.png +0 -0
  264. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/NZ.png +0 -0
  265. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/OM.png +0 -0
  266. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PA.png +0 -0
  267. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PE.png +0 -0
  268. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PF.png +0 -0
  269. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PG.png +0 -0
  270. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PH.png +0 -0
  271. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PK.png +0 -0
  272. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PL.png +0 -0
  273. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PM.png +0 -0
  274. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PN.png +0 -0
  275. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PR.png +0 -0
  276. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PS.png +0 -0
  277. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PT.png +0 -0
  278. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PW.png +0 -0
  279. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/PY.png +0 -0
  280. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/QA.png +0 -0
  281. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/RE.png +0 -0
  282. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/RO.png +0 -0
  283. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/RS.png +0 -0
  284. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/RU.png +0 -0
  285. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/RW.png +0 -0
  286. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SA.png +0 -0
  287. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SB.png +0 -0
  288. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SC.png +0 -0
  289. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SD.png +0 -0
  290. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SE.png +0 -0
  291. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SG.png +0 -0
  292. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SH.png +0 -0
  293. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SI.png +0 -0
  294. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SJ.png +0 -0
  295. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SK.png +0 -0
  296. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SL.png +0 -0
  297. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SM.png +0 -0
  298. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SN.png +0 -0
  299. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SO.png +0 -0
  300. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SR.png +0 -0
  301. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SS.png +0 -0
  302. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ST.png +0 -0
  303. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SV.png +0 -0
  304. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SY.png +0 -0
  305. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/SZ.png +0 -0
  306. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TC.png +0 -0
  307. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TD.png +0 -0
  308. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TF.png +0 -0
  309. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TG.png +0 -0
  310. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TH.png +0 -0
  311. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TJ.png +0 -0
  312. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TK.png +0 -0
  313. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TL.png +0 -0
  314. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TM.png +0 -0
  315. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TN.png +0 -0
  316. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TO.png +0 -0
  317. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TR.png +0 -0
  318. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TT.png +0 -0
  319. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TV.png +0 -0
  320. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TW.png +0 -0
  321. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/TZ.png +0 -0
  322. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/UA.png +0 -0
  323. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/UG.png +0 -0
  324. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/UM.png +0 -0
  325. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/US.png +0 -0
  326. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/UY.png +0 -0
  327. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/UZ.png +0 -0
  328. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VA.png +0 -0
  329. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VC.png +0 -0
  330. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VE.png +0 -0
  331. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VG.png +0 -0
  332. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VI.png +0 -0
  333. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VN.png +0 -0
  334. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/VU.png +0 -0
  335. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/WF.png +0 -0
  336. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/WS.png +0 -0
  337. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/YE.png +0 -0
  338. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/YT.png +0 -0
  339. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ZA.png +0 -0
  340. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ZM.png +0 -0
  341. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/flags/ZW.png +0 -0
  342. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/fonts/Extra.otf +0 -0
  343. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/fonts/Torus Regular.otf +0 -0
  344. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/fonts/Torus SemiBold.otf +0 -0
  345. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/fonts/Venera.otf +0 -0
  346. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/help.png +0 -0
  347. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/info.png +0 -0
  348. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/maniabeatmapinfo.png +0 -0
  349. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/match/mplink.png +0 -0
  350. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/match/mplink_map.png +0 -0
  351. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/match/team_blue.png +0 -0
  352. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/match/team_red.png +0 -0
  353. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/medals/medals.json +0 -0
  354. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/4K.png +0 -0
  355. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/5K.png +0 -0
  356. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/6K.png +0 -0
  357. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/7K.png +0 -0
  358. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/8K.png +0 -0
  359. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/9K.png +0 -0
  360. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/AP.png +0 -0
  361. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/CL.png +0 -0
  362. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/DT.png +0 -0
  363. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/EZ.png +0 -0
  364. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/FI.png +0 -0
  365. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/FL.png +0 -0
  366. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/HD.png +0 -0
  367. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/HR.png +0 -0
  368. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/HT.png +0 -0
  369. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/MR.png +0 -0
  370. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/NC.png +0 -0
  371. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/NF.png +0 -0
  372. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/PF.png +0 -0
  373. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/RX.png +0 -0
  374. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/SD.png +0 -0
  375. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/SO.png +0 -0
  376. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/TD.png +0 -0
  377. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/mods/V2.png +0 -0
  378. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/pfm_ctb.png +0 -0
  379. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/pfm_mania.png +0 -0
  380. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/pfm_std.png +0 -0
  381. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/pfm_taiko.png +0 -0
  382. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-A.png +0 -0
  383. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-B.png +0 -0
  384. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-C.png +0 -0
  385. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-D.png +0 -0
  386. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-F.png +0 -0
  387. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-S.png +0 -0
  388. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-SH.png +0 -0
  389. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-X.png +0 -0
  390. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/ranking/ranking-XH.png +0 -0
  391. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/bmap.png +0 -0
  392. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/center.png +0 -0
  393. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/left.png +0 -0
  394. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/right.png +0 -0
  395. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/stars.png +0 -0
  396. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/stars_expertplus.png +0 -0
  397. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/osufile/work/suppoter.png +0 -0
  398. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/pp.py +0 -0
  399. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/__init__.py +0 -0
  400. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/alphaosu.py +0 -0
  401. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/basemodel.py +0 -0
  402. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/beatmap.py +0 -0
  403. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/match.py +0 -0
  404. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/ppysb/__init__.py +0 -0
  405. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/sayo_beatmap.py +0 -0
  406. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/score.py +0 -0
  407. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/schema/user.py +0 -0
  408. {nonebot-plugin-osubot-6.19.0 → nonebot-plugin-osubot-6.20.1}/nonebot_plugin_osubot/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-plugin-osubot
3
- Version: 6.19.0
3
+ Version: 6.20.1
4
4
  Summary: OSUbot in NoneBot2
5
5
  License: AGPL-3.0
6
6
  Author-email: yaowan233 <572473053@qq.com>
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import random
2
3
  from io import BytesIO
3
4
  from urllib.parse import urlencode
@@ -73,6 +74,58 @@ async def get_headers() -> dict[str, str]:
73
74
  return {"Authorization": f"Bearer {token}", "x-api-version": "20220705"}
74
75
 
75
76
 
77
+ async def fetch_score_batch(
78
+ uid: Union[int, str],
79
+ mode: str,
80
+ scope: str,
81
+ batch_size: int,
82
+ offset: int,
83
+ legacy_only: bool,
84
+ include_failed: bool,
85
+ ) -> list[UnifiedScore]:
86
+ """并发获取单次批次数据"""
87
+ url = (
88
+ f"{api}/users/{uid}/scores/{scope}?mode={mode}&limit={batch_size}"
89
+ f"&offset={offset}&legacy_only={int(legacy_only)}"
90
+ f"&include_fails={int(include_failed)}"
91
+ )
92
+ data = await make_request(url, await get_headers(), "未找到该玩家BP")
93
+ if not data:
94
+ return []
95
+ scores = [NewScore(**i) for i in data]
96
+ return [
97
+ UnifiedScore(
98
+ mods=i.mods,
99
+ ruleset_id=i.ruleset_id,
100
+ rank=i.rank,
101
+ accuracy=i.accuracy * 100,
102
+ total_score=i.total_score,
103
+ ended_at=datetime.strptime(i.ended_at.replace("Z", ""), "%Y-%m-%dT%H:%M:%S") + timedelta(hours=8),
104
+ max_combo=i.max_combo,
105
+ statistics=i.statistics,
106
+ legacy_total_score=i.legacy_total_score,
107
+ passed=i.passed,
108
+ beatmap=UnifiedBeatmap(
109
+ id=i.beatmap_id,
110
+ set_id=i.beatmapset.id,
111
+ artist=i.beatmapset.artist,
112
+ title=i.beatmapset.title,
113
+ version=i.beatmap.version,
114
+ creator=i.beatmapset.creator,
115
+ total_length=i.beatmap.total_length,
116
+ mode=i.beatmap.mode_int,
117
+ bpm=i.beatmap.bpm,
118
+ cs=i.beatmap.cs,
119
+ ar=i.beatmap.ar,
120
+ hp=i.beatmap.drain,
121
+ od=i.beatmap.accuracy,
122
+ stars=i.beatmap.difficulty_rating,
123
+ ),
124
+ )
125
+ for i in scores
126
+ ]
127
+
128
+
76
129
  async def get_user_scores(
77
130
  uid: Union[int, str],
78
131
  mode: str,
@@ -81,49 +134,43 @@ async def get_user_scores(
81
134
  legacy_only: bool = 0,
82
135
  include_failed: bool = True,
83
136
  offset: int = 0,
84
- limit: int = 100,
137
+ limit: int = 200,
85
138
  ) -> list[UnifiedScore]:
86
139
  if source == "osu":
87
- url = (
88
- f"{api}/users/{uid}/scores/{scope}?mode={mode}&limit={limit}&legacy_only={int(legacy_only)}"
89
- f"&offset={offset}&include_fails={int(include_failed)}"
90
- )
91
- data = await make_request(url, await get_headers(), "未找到该玩家BP")
92
- scores = [NewScore(**i) for i in data]
93
- unified_scores = [
94
- UnifiedScore(
95
- mods=i.mods,
96
- ruleset_id=i.ruleset_id,
97
- rank=i.rank,
98
- accuracy=i.accuracy * 100,
99
- total_score=i.total_score,
100
- ended_at=datetime.strptime(i.ended_at.replace("Z", ""), "%Y-%m-%dT%H:%M:%S") + timedelta(hours=8),
101
- max_combo=i.max_combo,
102
- statistics=i.statistics,
103
- legacy_total_score=i.legacy_total_score,
104
- passed=i.passed,
105
- beatmap=UnifiedBeatmap(
106
- id=i.beatmap_id,
107
- set_id=i.beatmapset.id,
108
- artist=i.beatmapset.artist,
109
- title=i.beatmapset.title,
110
- version=i.beatmap.version,
111
- creator=i.beatmapset.creator,
112
- total_length=i.beatmap.total_length,
113
- mode=i.beatmap.mode_int,
114
- bpm=i.beatmap.bpm,
115
- cs=i.beatmap.cs,
116
- ar=i.beatmap.ar,
117
- hp=i.beatmap.drain,
118
- od=i.beatmap.accuracy,
119
- stars=i.beatmap.difficulty_rating,
120
- ),
121
- )
122
- for i in scores
123
- ]
124
- return unified_scores
140
+ if limit <= 0:
141
+ return []
142
+
143
+ # 计算需要多少次请求
144
+ # 计算需要多少批次
145
+ batch_size = 100
146
+ total_batches = (limit + batch_size - 1) // batch_size # ceiling(limit/batch_size)
147
+ all_scores = []
148
+ # 分批并发请求
149
+ for batch_idx in range(0, total_batches, 2):
150
+ current_batches = range(batch_idx, min(batch_idx + 2, total_batches))
151
+
152
+ # 生成 tasks(并发执行)
153
+ tasks = []
154
+ for batch_n in current_batches:
155
+ offset = batch_n * batch_size
156
+ actual_batch_size = min(batch_size, limit - len(all_scores) - offset)
157
+
158
+ if actual_batch_size <= 0:
159
+ continue # 已获取足够数据
160
+
161
+ task = fetch_score_batch(uid, mode, scope, actual_batch_size, offset, legacy_only, include_failed)
162
+ tasks.append(task)
163
+ # 并发请求当前批次
164
+ batch_results = await asyncio.gather(*tasks)
165
+
166
+ for batch_scores in batch_results:
167
+ all_scores.extend(batch_scores)
168
+ if len(all_scores) >= limit:
169
+ return all_scores[:limit] # 提前终止
170
+ return all_scores[:limit]
125
171
 
126
172
  elif source == "ppysb":
173
+ limit = min(limit, 100)
127
174
  url = f"https://api.ppy.sb/v1/get_player_scores?scope={scope}&id={uid}&mode={FGM[mode]}&limit={limit}&include_failed={int(include_failed)}"
128
175
  data = await make_request(url, {}, "未找到该玩家BP")
129
176
  data = ScoresResponse(**data)
@@ -6,8 +6,24 @@ function PalpableCatchHitObject(data, beatmap) {
6
6
  this.color = data.color;
7
7
  this.radius = data.radius;
8
8
  this.hyperDash = false;
9
+ this.edge = false;
9
10
  this.XDistToNext = [1, 1, 1];
11
+ this.hitSound = data.hitSound || "0";
10
12
  }
13
+
14
+ PalpableCatchHitObject.prototype.getHitsoundLabel = function (){
15
+ let hsLabels = [];
16
+ if (this.hitSound == null || this.hitSound == undefined || !this.hitSound) // hs = null | undifined | "" | "0"
17
+ return null;
18
+ else {
19
+ if (this.hitSound & 2) hsLabels.push("W");
20
+ if (this.hitSound & 8) hsLabels.push("C");
21
+ if (this.hitSound & 4) hsLabels.push("F");
22
+ if (hsLabels.length === 0) return null;
23
+ return hsLabels.join("|");
24
+ }
25
+ };
26
+
11
27
  PalpableCatchHitObject.prototype.draw = function (time, ctx) {
12
28
  var dt = this.time - time;
13
29
  if (dt >= -this.beatmap.FALLOUT_TIME) {
@@ -24,7 +40,10 @@ PalpableCatchHitObject.prototype.draw2 = function (obj, SCALE, ctx, BORDER_WIDTH
24
40
  if (this.hyperDash) this.drawDashCircle2({ x: obj.x + BORDER_WIDTH, y: obj.y + BORDER_HEIGHT }, SCALE, ctx);
25
41
  this.drawCircle2({ x: obj.x + BORDER_WIDTH, y: obj.y + BORDER_HEIGHT }, SCALE, ctx);
26
42
  }
27
- if (combo) this.drawCombo2({ x: obj.x + BORDER_WIDTH, y: obj.y + BORDER_HEIGHT }, SCALE, combo, ctx);
43
+ if (combo) {
44
+ if (typeof(combo) === "number") this.drawCombo2({ x: obj.x + BORDER_WIDTH, y: obj.y + BORDER_HEIGHT }, SCALE, "x" + combo, ctx);
45
+ else this.drawCombo2({ x: obj.x + BORDER_WIDTH, y: obj.y + BORDER_HEIGHT }, SCALE, combo, ctx);
46
+ }
28
47
  }
29
48
  PalpableCatchHitObject.prototype.predraw2 = function (SCREENSHEIGHT, COLMARGIN, SCALE, offset) {
30
49
  // 去除offset
@@ -83,7 +102,7 @@ PalpableCatchHitObject.prototype.drawCombo2 = function (position, SCALE, combo,
83
102
  ctx.font = "normal 16px 'Segoe UI'";
84
103
  ctx.textBaseline = "middle";
85
104
  ctx.textAlign = "start";
86
- ctx.fillText("x" + combo, position.x + this.radius * SCALE * 2, position.y);
105
+ ctx.fillText(combo, position.x + this.radius * SCALE * 2, position.y);
87
106
  ctx.restore();
88
107
  };
89
108
  PalpableCatchHitObject.prototype.drawBanana = function (position, ctx) {
@@ -29,5 +29,6 @@ BananaShower.prototype.buildNested = function() {
29
29
  time += spacing;
30
30
  i++;
31
31
  }
32
+ this.nested[this.nested.length - 1].hitSound = this.hitSound;
32
33
  return this;
33
34
  };
@@ -150,6 +150,7 @@ function Catch(osu, mods) {
150
150
  x: hitObject.position.x,
151
151
  color: hitObject.color,
152
152
  radius: this.circleRadius,
153
+ hitSound: hitObject.hitSound,
153
154
  }, this);
154
155
 
155
156
  this.palpableObjects.push(pch);
@@ -289,6 +290,8 @@ function Catch(osu, mods) {
289
290
  else {
290
291
  lastExcess = Math.clamp(distanceToHyper, 0, this.halfCatcherWidth);
291
292
  //this.whiteDashes.push({ score: distanceToHyper, time: currentObject.time });
293
+ // 标注再加20像素就变红果的白果跳
294
+ if (distanceToNext > 2 * this.halfCatcherWidth && distanceToHyper < 20) currentObject.edge = true;
292
295
  }
293
296
 
294
297
  lastDirection = thisDirection;
@@ -357,7 +360,7 @@ Catch.prototype.draw = function (time, ctx) {
357
360
  /**
358
361
  * @param {number} SCALE 缩放大小(0.2=缩放为1/5)
359
362
  * @param {number} SPEED 播放速度 DT=1.5 HT=0.75 在ctb不影响谱面,只影响时间和BPM标注
360
- * @param {{showDistance: boolean, distanceStart: number, distanceEnd: number, distanceType: number}} params 其他参数
363
+ * @param {{showLabelType: number, distanceStart: number, distanceEnd: number, distanceType: number}} params 其他参数
361
364
  */
362
365
  Catch.prototype.draw2 = function (SCALE, SPEED = 1, params = {}) {
363
366
  // 初定每一列20个屏幕大小,不够换列
@@ -405,7 +408,7 @@ Catch.prototype.draw2 = function (SCALE, SPEED = 1, params = {}) {
405
408
  if (this.TimingPoints[i].kiai) lastKiaiStart = this.TimingPoints[i].time - offset;
406
409
  }
407
410
  // 绿线在ctb无关紧要,正常模式不用加,标注距离时只加变化的
408
- if (params.showDistance) {
411
+ if (params.showLabelType === 1) {
409
412
  if (this.TimingPoints[i].parent) {
410
413
  if (Math.abs(this.TimingPoints[i].sliderVelocity - lastSV) < 0.001) {
411
414
  lastSV = this.TimingPoints[i].sliderVelocity;
@@ -679,16 +682,59 @@ Catch.prototype.draw2 = function (SCALE, SPEED = 1, params = {}) {
679
682
  combo += 1;
680
683
  }
681
684
  // 借用combo位显示距离,省事!
682
- if (params.showDistance) {
685
+ if (params.showLabelType === 1) {
683
686
  if (objs[i].type === "Fruit" || objs[i].type === "Droplet") {
684
687
  let distanceType = params.distanceType;
685
688
  if (this.fullCatchObjects[i].XDistToNext[distanceType] >= params.distanceStart && this.fullCatchObjects[i].XDistToNext[distanceType] <= params.distanceEnd)
686
689
  showCombo = this.fullCatchObjects[i].XDistToNext[distanceType];
687
690
  }
688
691
  }
692
+ // 借用combo位显示音效,省事!
693
+ else if (params.showLabelType === 2) {
694
+ if (objs[i].type === "Fruit" || objs[i].type === "Banana") {
695
+ showCombo = this.fullCatchObjects[i].getHitsoundLabel();
696
+ }
697
+ }
689
698
 
690
- else if (combo > lastCombo && combo > 0 && combo % comboSplit === 0) showCombo = combo;
699
+ else if (combo > lastCombo && combo > 0 && (combo % comboSplit === 0 || this.fullCatchObjects[i].edge)) showCombo = combo;
691
700
  this.fullCatchObjects[i].draw2(objs[i], SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT, showCombo);
701
+
702
+ // 标注edge
703
+ if (this.fullCatchObjects[i].edge && i < this.fullCatchObjects.length - 1) {
704
+ ctx2.save();
705
+ ctx2.beginPath();
706
+ let _x1 = objs[i].x + BORDER_WIDTH;
707
+ let _y1 = objs[i].y + BORDER_HEIGHT;
708
+ let _x2 = objs[i+1].x + BORDER_WIDTH;
709
+ let _y2 = objs[i+1].y + BORDER_HEIGHT;
710
+ if (_y1 > _y2) {
711
+ ctx2.moveTo(_x1, _y1);
712
+ ctx2.lineTo(_x2, _y2);
713
+ }
714
+ // 不在同一轨道上
715
+ else if (_y1 < _y2) {
716
+ let line_end_x2 = _x2 - Beatmap.WIDTH * SCALE - 2 * COLMARGIN;
717
+ let line_end_y2 = _y2 + 2 * BORDER_HEIGHT - height;
718
+ let line_middle_y2 = BORDER_HEIGHT;
719
+ let line_middle_x2 = (line_end_x2 - _x1) * (line_end_y2 - line_middle_y2) / (_y1 - line_end_y2) + line_end_x2;
720
+ if (line_middle_x2) {
721
+ ctx2.moveTo(_x1, _y1);
722
+ ctx2.lineTo(line_middle_x2, line_middle_y2);
723
+ }
724
+ let line_start_x1 = _x1 + Beatmap.WIDTH * SCALE + 2 * COLMARGIN;
725
+ let line_start_y1 = _y1 + height - 2 * BORDER_HEIGHT;
726
+ let line_middle_y1 = height - BORDER_HEIGHT;
727
+ let line_middle_x1 = (_x2 - line_start_x1) * (_y2 - line_middle_y1) / (line_start_y1 - _y2) + _x2;
728
+ if (line_middle_x1) {
729
+ ctx2.moveTo(line_middle_x1, line_middle_y1);
730
+ ctx2.lineTo(_x2, _y2);
731
+ }
732
+ }
733
+ ctx2.strokeStyle = '#fff';
734
+ ctx2.lineWidth = 3;
735
+ ctx2.stroke();
736
+ }
737
+
692
738
  lastCombo = combo;
693
739
  }
694
740
 
@@ -698,18 +744,23 @@ Catch.prototype.draw2 = function (SCALE, SPEED = 1, params = {}) {
698
744
  extraBarTimes.map((_barTime) => {
699
745
  let _objs = objs.filter((obj) => Math.abs(obj.time - _barTime * 1000) < EDGE_OFFSET);
700
746
  _objs.map((_obj) => {
701
- let distanceType = params.distanceType;
702
- let _dist = this.fullCatchObjects[_obj.index].XDistToNext[distanceType];
703
- if (_dist < params.distanceStart || _dist > params.distanceEnd) _dist = null;
747
+ let label = null;
748
+ if (params.showLabelType === 1) {
749
+ let distanceType = params.distanceType;
750
+ label = this.fullCatchObjects[_obj.index].XDistToNext[distanceType];
751
+ if (label < params.distanceStart || label > params.distanceEnd) label = null;
752
+ }
753
+ else if (params.showLabelType === 2) {
754
+ label = this.fullCatchObjects[_obj.index].getHitsoundLabel();
755
+ }
756
+
704
757
  if (_obj.y > SCREENSHEIGHT * SCALE - 5) {
705
758
  // note靠近下边缘,在上一列的上边缘再画一个
706
- if (params.showDistance) this.fullCatchObjects[_obj.index].draw2({ time: _obj.time, type: _obj.type, x: _obj.x - (Beatmap.WIDTH * SCALE + 2 * COLMARGIN), y: 0, col: _obj.col - 1 }, SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT, _dist);
707
- else this.fullCatchObjects[_obj.index].draw2({ time: _obj.time, type: _obj.type, x: _obj.x - (Beatmap.WIDTH * SCALE + 2 * COLMARGIN), y: 0, col: _obj.col - 1 }, SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT);
759
+ this.fullCatchObjects[_obj.index].draw2({ time: _obj.time, type: _obj.type, x: _obj.x - (Beatmap.WIDTH * SCALE + 2 * COLMARGIN), y: 0, col: _obj.col - 1 }, SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT, label);
708
760
  }
709
761
  else if (_obj.y < 5) {
710
762
  // note靠近上边缘,在下一列的下边缘再画一个
711
- if (params.showDistance) this.fullCatchObjects[_obj.index].draw2({ time: _obj.time, type: _obj.type, x: _obj.x + (Beatmap.WIDTH * SCALE + 2 * COLMARGIN), y: SCREENSHEIGHT * SCALE, col: _obj.col + 1 }, SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT, _dist);
712
- else this.fullCatchObjects[_obj.index].draw2({ time: _obj.time, type: _obj.type, x: _obj.x + (Beatmap.WIDTH * SCALE + 2 * COLMARGIN), y: SCREENSHEIGHT * SCALE, col: _obj.col + 1 }, SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT);
763
+ this.fullCatchObjects[_obj.index].draw2({ time: _obj.time, type: _obj.type, x: _obj.x + (Beatmap.WIDTH * SCALE + 2 * COLMARGIN), y: SCREENSHEIGHT * SCALE, col: _obj.col + 1 }, SCALE, ctx2, BORDER_WIDTH, BORDER_HEIGHT, label);
713
764
  }
714
765
  });
715
766
  });
@@ -6,12 +6,14 @@ function JuiceStream(data, beatmap)
6
6
  this.sliderType = this.points[0];
7
7
  this.points[0] = this.position;
8
8
  for (var i = 1; i < this.points.length; i++)
9
- {
9
+ {
10
10
  this.points[i] = new Point(this.points[i].split(':'));
11
11
  }
12
12
  this.repeat = data[6] | 0;
13
13
  this.pixelLength = +data[7];
14
14
 
15
+ this.hitSounds = this.hitSoundString.split('|');
16
+
15
17
  this.timingPoint = this.beatmap.timingPointAt(this.time);
16
18
  this.beatLength = this.timingPoint.beatLength;
17
19
  this.timingPointStart = this.timingPoint.time;
@@ -99,6 +101,7 @@ JuiceStream.prototype.generateTicks = function(spanIndex, spanStartTime, spanDur
99
101
  JuiceStream.prototype.buildNested = function() {
100
102
  this.nested = [];
101
103
 
104
+ let nestedIndex = 0;
102
105
  let lastEvent = null;
103
106
  for(let i = 0; i < this.events.length; i++) {
104
107
  // generate tiny droplets since the last point
@@ -151,7 +154,9 @@ JuiceStream.prototype.buildNested = function() {
151
154
  x: this.curve.pointAt(this.events[i].pathProgress).x,
152
155
  color: this.color,
153
156
  radius: this.beatmap.circleRadius,
157
+ hitSound: this.hitSounds[nestedIndex] || "0",
154
158
  }, this.beatmap));
159
+ nestedIndex++;
155
160
  break;
156
161
  }
157
162
  }
@@ -21,5 +21,25 @@ Curve.parse = function(sliderType, points, pixelLength)
21
21
  }
22
22
  }
23
23
  catch(e) {}
24
- return new LinearBezier(points, pixelLength, sliderType == 'L');
24
+ try
25
+ {
26
+ return new LinearBezier(points, pixelLength, sliderType == 'L');
27
+ }
28
+ catch(e)
29
+ {
30
+ return new SingleNoteCurve(points[0]);
31
+ }
25
32
  }
33
+
34
+
35
+
36
+ function SingleNoteCurve(point)
37
+ {
38
+ this.path = [point];
39
+ };
40
+ SingleNoteCurve.prototype = Object.create(Curve.prototype);
41
+ SingleNoteCurve.prototype.constructor = SingleNoteCurve;
42
+ SingleNoteCurve.prototype.pointAt = function(t)
43
+ {
44
+ return this.path[0];
45
+ };
@@ -12,6 +12,8 @@ function Slider(data, beatmap)
12
12
  this.repeat = data[6] | 0;
13
13
  this.pixelLength = +data[7];
14
14
 
15
+ this.hitSoundString = data[8] || "";
16
+
15
17
  var sliderTime = this.beatmap.timingPointAt(this.time).beatLength * (
16
18
  this.pixelLength / this.beatmap.SliderMultiplier
17
19
  ) / 100;
@@ -414,13 +414,15 @@ def filter_scores_with_regex(scores_with_index, conditions):
414
414
 
415
415
  def trim_text_with_ellipsis(text, max_width, font):
416
416
  # 初始检查:空字符串或无需处理
417
- if not text or font.getbbox(text) <= max_width:
417
+ bbox = font.getbbox(text)
418
+ text_width = bbox[2] - bbox[0]
419
+ if not text or text_width <= max_width:
418
420
  return text
419
421
  # 逐字符检查
420
422
  ellipsis_symbol = "…"
421
- ellipsis_width = font.getbbox("…")
423
+ ellipsis_width = font.getbbox("…")[2] - font.getbbox("…")[0]
422
424
  # 确保最大宽度能至少容纳一个字符+省略号
423
- if max_width < font.getbbox("A") + ellipsis_width:
425
+ if max_width < font.getbbox("A")[2] - font.getbbox("A")[0] + ellipsis_width:
424
426
  return ellipsis_symbol
425
427
 
426
428
  truncated_text = ""
@@ -428,7 +430,7 @@ def trim_text_with_ellipsis(text, max_width, font):
428
430
 
429
431
  for char in text:
430
432
  # 检查当前字符宽度 + 省略号宽度是否超标
431
- char_width = font.getbbox(char)
433
+ char_width = font.getbbox(char)[2] - font.getbbox(char)[0]
432
434
  if current_width + char_width + ellipsis_width > max_width:
433
435
  break
434
436
  truncated_text += char
@@ -25,8 +25,8 @@ async def _bp(state: T_State):
25
25
  if not best.isdigit():
26
26
  await UniMessage.text("只能接受纯数字的bp参数").finish(reply_to=True)
27
27
  best = int(best)
28
- if best <= 0 or best > 100:
29
- await UniMessage.text("只允许查询bp 1-100 的成绩").finish(reply_to=True)
28
+ if best <= 0 or best > 200:
29
+ await UniMessage.text("只允许查询bp 1-200 的成绩").finish(reply_to=True)
30
30
  try:
31
31
  data = await draw_score(
32
32
  "bp",
@@ -52,11 +52,11 @@ async def _pfm(state: T_State):
52
52
  if "error" in state:
53
53
  await UniMessage.text(state["error"]).finish(reply_to=True)
54
54
  if not state["range"]:
55
- state["range"] = "1-100"
55
+ state["range"] = "1-200"
56
56
  ls = state["range"].split("-")
57
57
  low, high = int(ls[0]), int(ls[1])
58
- if not 0 < low < high <= 100:
59
- await UniMessage.text("仅支持查询bp1-100").finish(reply_to=True)
58
+ if not 0 < low < high <= 200:
59
+ await UniMessage.text("仅支持查询bp1-200").finish(reply_to=True)
60
60
  try:
61
61
  data = await draw_bp(
62
62
  "bp",
@@ -84,11 +84,11 @@ async def _tbp(state: T_State):
84
84
  if "error" in state:
85
85
  await UniMessage.text(state["error"]).finish(reply_to=True)
86
86
  if not state["range"]:
87
- state["range"] = "1-100"
87
+ state["range"] = "1-200"
88
88
  ls = state["range"].split("-")
89
89
  low, high = int(ls[0]), int(ls[1])
90
- if not 0 < low < high <= 100:
91
- await UniMessage.text("仅支持查询bp1-100").finish(reply_to=True)
90
+ if not 0 < low < high <= 200:
91
+ await UniMessage.text("仅支持查询bp1-200").finish(reply_to=True)
92
92
  try:
93
93
  data = await draw_bp(
94
94
  "tbp",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "nonebot-plugin-osubot"
3
- version = "6.19.0"
3
+ version = "6.20.1"
4
4
  description = "OSUbot in NoneBot2"
5
5
  authors = [
6
6
  { name = "yaowan233", email = "572473053@qq.com" },