nonebot-plugin-osubot 6.18.1__tar.gz → 6.20.0__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.
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/PKG-INFO +1 -1
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/api.py +85 -39
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/score.py +11 -1
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/utils.py +40 -12
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/bp.py +8 -8
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/beatmap.py +6 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/pyproject.toml +2 -2
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/README.md +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/beatmap_stats_moder.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/config.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/database/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/database/models.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/bmap.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/bp.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/css/style.css +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/beatmap.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/hitobject.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/point.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/scroll.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/beatmap/timingpoint.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/LegacyRandom.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/PalpableCatchHitObject.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/bananashower.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/catch.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/fruit.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/catch/juicestream.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/fakeaudio.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/preview.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/bezier2.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/catmullcurve.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/centripetalcatmullrom.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/circumstancedcircle.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/curve.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/curvetype.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/equaldistancemulticurve.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/curve/linearbezier.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/hitcircle.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/slider.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/standard/spinner.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/util.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/viewbox.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/js/zip.min.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/catch_preview_templates/pic.html +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/echarts.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/info.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/map.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/match_history.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/rating.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/static.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/taiko_preview.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/templates/bpa_chart.html +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/templates/echarts.min.js +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/templates/mod_chart.html +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/templates/pp_rank_line_chart.html +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/exceptions.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/file.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/info/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/info/bg.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/info/bind.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/mania/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/bind.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/bp_analyze.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/getbg.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/guess.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/history.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/info.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/map.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/map_convert.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/match.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/medal.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/mu.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/osu_help.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/osudl.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/pr.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/preview.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/rank.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/rating.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/recommend.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/score.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/update.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/update_mode.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/url_match.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/utils.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/mods.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/network/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/network/auto_retry.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/network/first_response.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/Best Performance.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/History Score.jpg +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/beatmapinfo.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/convert.jpg +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/detail.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AQ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AX.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/AZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BB.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BJ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BQ (1).png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BQ (2).png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BV.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/BZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CV.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CX.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/CZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/DE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/DJ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/DK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/DM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/DO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/DZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/EC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/EE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/EG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/EH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ER.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ES.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ET.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/FI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/FJ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/FK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/FO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/FR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GB.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GP.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GQ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/GY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/HK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/HM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/HN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/HR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/HT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/HU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ID.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IQ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/IT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/JE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/JM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/JO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/JP.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KP.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/KZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LB.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LV.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/LY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ME.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ML.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MP.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MQ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MV.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MX.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/MZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NP.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/NZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/OM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/PY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/QA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/RE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/RO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/RS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/RU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/RW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SB.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SJ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ST.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SV.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/SZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TJ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TK.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TV.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/TZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/UA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/UG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/UM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/US.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/UY.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/UZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VG.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VN.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/VU.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/WF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/WS.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/YE.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/YT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ZA.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ZM.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/flags/ZW.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/fonts/Extra.otf +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/fonts/Torus Regular.otf +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/fonts/Torus SemiBold.otf +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/fonts/Venera.otf +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/help.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/info.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/maniabeatmapinfo.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/match/mplink.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/match/mplink_map.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/match/team_blue.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/match/team_red.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/medals/medals.json +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/4K.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/5K.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/6K.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/7K.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/8K.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/9K.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/AP.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/CL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/DT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/EZ.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/FI.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/FL.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/HD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/HR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/HT.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/MR.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/NC.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/NF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/PF.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/RX.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/SD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/SO.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/TD.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/mods/V2.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/pfm_ctb.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/pfm_mania.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/pfm_std.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/pfm_taiko.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-A.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-B.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-C.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-D.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-F.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-S.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-SH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-X.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/ranking/ranking-XH.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/bmap.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/center.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/left.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/right.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/stars.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/stars_expertplus.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/osufile/work/suppoter.png +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/pp.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/alphaosu.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/basemodel.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/match.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/ppysb/__init__.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/sayo_beatmap.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/score.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/schema/user.py +0 -0
- {nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/utils/__init__.py +0 -0
|
@@ -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,47 +134,40 @@ 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 =
|
|
137
|
+
limit: int = 200,
|
|
85
138
|
) -> list[UnifiedScore]:
|
|
86
139
|
if source == "osu":
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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":
|
|
127
173
|
url = f"https://api.ppy.sb/v1/get_player_scores?scope={scope}&id={uid}&mode={FGM[mode]}&limit={limit}&include_failed={int(include_failed)}"
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/score.py
RENAMED
|
@@ -27,6 +27,7 @@ from .utils import (
|
|
|
27
27
|
get_modeimage,
|
|
28
28
|
open_user_icon,
|
|
29
29
|
filter_scores_with_regex,
|
|
30
|
+
trim_text_with_ellipsis,
|
|
30
31
|
)
|
|
31
32
|
from .static import (
|
|
32
33
|
Image,
|
|
@@ -398,9 +399,18 @@ async def draw_score_pic(score_info: UnifiedScore, info: UnifiedUser, map_json,
|
|
|
398
399
|
anchor="lm",
|
|
399
400
|
)
|
|
400
401
|
# 谱面版本,mapper
|
|
402
|
+
if mapinfo.owners:
|
|
403
|
+
owner_names = [owner.username for owner in mapinfo.owners]
|
|
404
|
+
owners_str = ", ".join(owner_names)
|
|
405
|
+
mapper = f"{mapinfo.version} | 谱师: {owners_str}"
|
|
406
|
+
|
|
407
|
+
else:
|
|
408
|
+
mapper = f"{mapinfo.version} | 谱师: {mapinfo.beatmapset.creator}"
|
|
409
|
+
mapper = trim_text_with_ellipsis(mapper, 1000, Torus_SemiBold_20)
|
|
410
|
+
|
|
401
411
|
draw.text(
|
|
402
412
|
(225, 90),
|
|
403
|
-
|
|
413
|
+
mapper,
|
|
404
414
|
font=Torus_SemiBold_20,
|
|
405
415
|
anchor="lm",
|
|
406
416
|
)
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/utils.py
RENAMED
|
@@ -267,18 +267,18 @@ async def update_icon(info: UnifiedUser):
|
|
|
267
267
|
user_icon = await get_projectimg(info.avatar_url)
|
|
268
268
|
with open(path / f"icon.{info.avatar_url.split('.')[-1]}", "wb") as f:
|
|
269
269
|
f.write(user_icon.getvalue())
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
270
|
+
if info.team:
|
|
271
|
+
team_path = team_cache_path / f"{info.team.id}.png"
|
|
272
|
+
if team_path.exists():
|
|
273
|
+
modified_time = team_path.stat().st_mtime
|
|
274
|
+
modified_datetime = datetime.datetime.fromtimestamp(modified_time)
|
|
275
|
+
time_diff = datetime.datetime.now() - modified_datetime
|
|
276
|
+
# 判断文件是否创建超过一天
|
|
277
|
+
if time_diff > datetime.timedelta(days=1):
|
|
278
|
+
team_path.unlink()
|
|
279
|
+
team_icon = await get_projectimg(info.team.flag_url)
|
|
280
|
+
with open(team_path, "wb") as f:
|
|
281
|
+
f.write(team_icon.getvalue())
|
|
282
282
|
|
|
283
283
|
|
|
284
284
|
async def update_map(set_id, map_id):
|
|
@@ -410,3 +410,31 @@ def filter_scores_with_regex(scores_with_index, conditions):
|
|
|
410
410
|
score for score in scores_with_index if matches_condition_with_regex(score, key, operator, value)
|
|
411
411
|
]
|
|
412
412
|
return scores_with_index
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
def trim_text_with_ellipsis(text, max_width, font):
|
|
416
|
+
# 初始检查:空字符串或无需处理
|
|
417
|
+
bbox = font.getbbox(text)
|
|
418
|
+
text_width = bbox[2] - bbox[0]
|
|
419
|
+
if not text or text_width <= max_width:
|
|
420
|
+
return text
|
|
421
|
+
# 逐字符检查
|
|
422
|
+
ellipsis_symbol = "…"
|
|
423
|
+
ellipsis_width = font.getbbox("…")[2] - font.getbbox("…")[0]
|
|
424
|
+
# 确保最大宽度能至少容纳一个字符+省略号
|
|
425
|
+
if max_width < font.getbbox("A")[2] - font.getbbox("A")[0] + ellipsis_width:
|
|
426
|
+
return ellipsis_symbol
|
|
427
|
+
|
|
428
|
+
truncated_text = ""
|
|
429
|
+
current_width = 0
|
|
430
|
+
|
|
431
|
+
for char in text:
|
|
432
|
+
# 检查当前字符宽度 + 省略号宽度是否超标
|
|
433
|
+
char_width = font.getbbox(char)[2] - font.getbbox(char)[0]
|
|
434
|
+
if current_width + char_width + ellipsis_width > max_width:
|
|
435
|
+
break
|
|
436
|
+
truncated_text += char
|
|
437
|
+
current_width += char_width
|
|
438
|
+
|
|
439
|
+
# 返回截断后的字符串 + 省略号
|
|
440
|
+
return truncated_text + ellipsis_symbol if truncated_text else ellipsis_symbol
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/bp.py
RENAMED
|
@@ -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 >
|
|
29
|
-
await UniMessage.text("只允许查询bp 1-
|
|
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-
|
|
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 <=
|
|
59
|
-
await UniMessage.text("仅支持查询bp1-
|
|
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-
|
|
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 <=
|
|
91
|
-
await UniMessage.text("仅支持查询bp1-
|
|
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",
|
|
@@ -11,6 +11,11 @@ class Covers(Base):
|
|
|
11
11
|
slimcover: str
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
class Gds(Base):
|
|
15
|
+
id: int
|
|
16
|
+
username: str
|
|
17
|
+
|
|
18
|
+
|
|
14
19
|
class BeatmapsetCompact(Base):
|
|
15
20
|
artist: str
|
|
16
21
|
artist_unicode: str
|
|
@@ -78,6 +83,7 @@ class Beatmap(BeatmapCompact):
|
|
|
78
83
|
playcount: int
|
|
79
84
|
ranked: int
|
|
80
85
|
url: str
|
|
86
|
+
owners: Optional[list[Gds]] = None
|
|
81
87
|
|
|
82
88
|
|
|
83
89
|
class BackgroundsAttributes(Base):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "nonebot-plugin-osubot"
|
|
3
|
-
version = "6.
|
|
3
|
+
version = "6.20.0"
|
|
4
4
|
description = "OSUbot in NoneBot2"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "yaowan233", email = "572473053@qq.com" },
|
|
@@ -15,7 +15,7 @@ dependencies = [
|
|
|
15
15
|
"nonebot-plugin-apscheduler>=0.4.0",
|
|
16
16
|
"tortoise-orm>=0.20.0",
|
|
17
17
|
"nonebot-plugin-tortoise-orm>=0.1.4",
|
|
18
|
-
"rosu-pp-py==
|
|
18
|
+
"rosu-pp-py==3.0.0",
|
|
19
19
|
"reamber>=0.2.1",
|
|
20
20
|
"httpx>=0.23.3",
|
|
21
21
|
"typing_extensions>=4.11.0",
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/__init__.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/bmap.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/bp.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/echarts.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/info.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/map.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/rating.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/draw/static.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/info/__init__.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/info/bg.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/info/bind.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/bind.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/getbg.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/guess.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/info.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/map.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/match.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/medal.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/mu.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/osudl.py
RENAMED
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/pr.py
RENAMED
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/rank.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/score.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot-plugin-osubot-6.18.1 → nonebot-plugin-osubot-6.20.0}/nonebot_plugin_osubot/matcher/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|