nonebot-plugin-rikka 2.2.0__tar.gz → 2.2.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.
Files changed (70) hide show
  1. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/PKG-INFO +4 -4
  2. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/README.md +3 -3
  3. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/__init__.py +1 -2
  4. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/database/crud.py +12 -2
  5. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/providers/maimai.py +1 -1
  6. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/updater/songs.py +2 -0
  7. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/pyproject.toml +1 -1
  8. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/LICENSE +0 -0
  9. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/alconna.py +0 -0
  10. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/browser.py +0 -0
  11. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/config.py +0 -0
  12. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/constants.py +0 -0
  13. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/database/__init__.py +0 -0
  14. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/database/orm_models.py +0 -0
  15. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/extra_proxy.py +0 -0
  16. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/__init__.py +0 -0
  17. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/analysis.py +0 -0
  18. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/fortunate.py +0 -0
  19. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/location.py +0 -0
  20. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/lxns.py +0 -0
  21. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/maistatus.py +0 -0
  22. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/n50.py +0 -0
  23. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/process.py +0 -0
  24. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/recommend_songs.py +0 -0
  25. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/functions/song_tags.py +0 -0
  26. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/09e00213edc6_add_song_alias_table.py +0 -0
  27. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/37e7fa94eaec_add_chunithm_friend_code.py +0 -0
  28. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/4df3c316faf7_add_locationsubscription.py +0 -0
  29. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/5c791c303fe1_add_maimaipy_identifier.py +0 -0
  30. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/82115b280b5c_first_revision.py +0 -0
  31. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/bedbe89effbb_migration_to_oauth.py +0 -0
  32. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/d07c88373fbd_add_chunithm_table.py +0 -0
  33. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/dc59349a578a_add_play_count.py +0 -0
  34. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/de4344fd6e4c_add_defalut_provider_column.py +0 -0
  35. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/f273db8f9707_add_song_table.py +0 -0
  36. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/migrations/fb6275585c59_add_divingfish_support.py +0 -0
  37. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/models/chu_song.py +0 -0
  38. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/models/song.py +0 -0
  39. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/__init__.py +0 -0
  40. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/chunithm/__init__.py +0 -0
  41. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/chunithm/_base.py +0 -0
  42. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/chunithm/_config.py +0 -0
  43. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/chunithm/b30.py +0 -0
  44. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/chunithm/score.py +0 -0
  45. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/chunithm/song.py +0 -0
  46. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/LICENSE +0 -0
  47. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/__init__.py +0 -0
  48. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/_base.py +0 -0
  49. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/_config.py +0 -0
  50. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/analysis.py +0 -0
  51. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/b50.py +0 -0
  52. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/score.py +0 -0
  53. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/song.py +0 -0
  54. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/maimai/trend.py +0 -0
  55. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/painters/utils.py +0 -0
  56. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/renderer.py +0 -0
  57. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/__init__.py +0 -0
  58. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/chunithm/__init__.py +0 -0
  59. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/chunithm/_schema.py +0 -0
  60. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/chunithm/providers/__init__.py +0 -0
  61. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/chunithm/providers/lxns.py +0 -0
  62. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/__init__.py +0 -0
  63. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/_base.py +0 -0
  64. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/_schema.py +0 -0
  65. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/providers/__init__.py +0 -0
  66. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/providers/diving_fish.py +0 -0
  67. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/score/maimai/providers/lxns.py +0 -0
  68. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/updater/__init__.py +0 -0
  69. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/updater/resources.py +0 -0
  70. {nonebot_plugin_rikka-2.2.0 → nonebot_plugin_rikka-2.2.1}/nonebot_plugin_rikka/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-plugin-rikka
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: 一个简单的舞萌成绩查询Bot插件,同时支持落雪咖啡屋和水鱼查分器
5
5
  Requires-Python: <4.0,>=3.10
6
6
  Requires-Dist: nonebot2>=2.4.0
@@ -30,6 +30,8 @@ Description-Content-Type: text/markdown
30
30
  <source media="(prefers-color-scheme: dark)" srcset="https://erika.snowy.moe/v1/banner/Moemu/Nonebot-Plugin-Rikka.webp?accent=auto&amp;meta=full_name%2Cstars%2Cforks%2Cissues%2Crelease%2Clast_updated" />
31
31
  <img width="100%" src="https://erika.snowy.moe/v1/banner/Moemu/Nonebot-Plugin-Rikka.webp?accent=auto&amp;iconPath=assets%2Fgrokbot-icon-transparent.png&amp;theme=light&amp;meta=full_name%2Cstars%2Cforks%2Cissues%2Crelease%2Clast_updated" alt="Nonebot-Plugin-Rikka Banner" />
32
32
  </picture>
33
+ <h1 align="center">Nonebot-Plugin-Rikka</h1>
34
+ <p align="center">NoneBot2 舞萌DX / 中二节奏查询成绩插件</p>
33
35
  </div>
34
36
 
35
37
  <div align=center>
@@ -41,8 +43,6 @@ Description-Content-Type: text/markdown
41
43
  <a href="https://qm.qq.com/q/y1gC9PU4IU"><img src="https://img.shields.io/badge/QQ群-Nightcord-purple" alt="QQ Group"></a>
42
44
  </div>
43
45
 
44
- 基于 [Nonebot2](https://nonebot.dev/) 的舞萌DX / 中二节奏查分插件
45
-
46
46
  ## 功能🪄
47
47
 
48
48
  ✅ 支持游戏: 舞萌DX(Ver.CN 1.55+), 中二节奏
@@ -184,7 +184,7 @@ Description-Content-Type: text/markdown
184
184
 
185
185
  本项目的渲染逻辑 ([painters](./nonebot_plugin_rikka/painters/)) 和资源修改或引用自 [Yuri-YuzuChaN/maimaiDX](https://github.com/Yuri-YuzuChaN/maimaiDX),感谢上游项目的代码实现和游戏资源整理
186
186
 
187
- 本项目的分数查询功能基于 [TrueRou/maimai.py](https://github.com/TrueRou/maimai.py) 提供的框架进行开发,部分机台通信功能参考了某个w开头的我不知道能不能说但是它是开源的如果需要可以私下来找我更新的神秘项目。
187
+ 本项目的分数查询功能基于 [TrueRou/maimai.py](https://github.com/TrueRou/maimai.py) 提供的框架进行开发,部分机台通信功能参考了某些神秘项目 ~~(我不知道能不能说但是它是开源的如果需要可以私下来找我更新反正阿里嘎多)~~。
188
188
 
189
189
  <a href="https://www.afdian.com/a/Moemu" target="_blank"><img src="https://pic1.afdiancdn.com/static/img/welcome/button-sponsorme.png" alt="afadian" style="height: 45px !important;width: 163px !important;"></a>
190
190
 
@@ -3,6 +3,8 @@
3
3
  <source media="(prefers-color-scheme: dark)" srcset="https://erika.snowy.moe/v1/banner/Moemu/Nonebot-Plugin-Rikka.webp?accent=auto&amp;meta=full_name%2Cstars%2Cforks%2Cissues%2Crelease%2Clast_updated" />
4
4
  <img width="100%" src="https://erika.snowy.moe/v1/banner/Moemu/Nonebot-Plugin-Rikka.webp?accent=auto&amp;iconPath=assets%2Fgrokbot-icon-transparent.png&amp;theme=light&amp;meta=full_name%2Cstars%2Cforks%2Cissues%2Crelease%2Clast_updated" alt="Nonebot-Plugin-Rikka Banner" />
5
5
  </picture>
6
+ <h1 align="center">Nonebot-Plugin-Rikka</h1>
7
+ <p align="center">NoneBot2 舞萌DX / 中二节奏查询成绩插件</p>
6
8
  </div>
7
9
 
8
10
  <div align=center>
@@ -14,8 +16,6 @@
14
16
  <a href="https://qm.qq.com/q/y1gC9PU4IU"><img src="https://img.shields.io/badge/QQ群-Nightcord-purple" alt="QQ Group"></a>
15
17
  </div>
16
18
 
17
- 基于 [Nonebot2](https://nonebot.dev/) 的舞萌DX / 中二节奏查分插件
18
-
19
19
  ## 功能🪄
20
20
 
21
21
  ✅ 支持游戏: 舞萌DX(Ver.CN 1.55+), 中二节奏
@@ -157,7 +157,7 @@
157
157
 
158
158
  本项目的渲染逻辑 ([painters](./nonebot_plugin_rikka/painters/)) 和资源修改或引用自 [Yuri-YuzuChaN/maimaiDX](https://github.com/Yuri-YuzuChaN/maimaiDX),感谢上游项目的代码实现和游戏资源整理
159
159
 
160
- 本项目的分数查询功能基于 [TrueRou/maimai.py](https://github.com/TrueRou/maimai.py) 提供的框架进行开发,部分机台通信功能参考了某个w开头的我不知道能不能说但是它是开源的如果需要可以私下来找我更新的神秘项目。
160
+ 本项目的分数查询功能基于 [TrueRou/maimai.py](https://github.com/TrueRou/maimai.py) 提供的框架进行开发,部分机台通信功能参考了某些神秘项目 ~~(我不知道能不能说但是它是开源的如果需要可以私下来找我更新反正阿里嘎多)~~。
161
161
 
162
162
  <a href="https://www.afdian.com/a/Moemu" target="_blank"><img src="https://pic1.afdiancdn.com/static/img/welcome/button-sponsorme.png" alt="afadian" style="height: 45px !important;width: 163px !important;"></a>
163
163
 
@@ -18,8 +18,7 @@ init_logger()
18
18
  from nonebot import get_driver # noqa: E402
19
19
  from nonebot_plugin_orm import get_scoped_session # noqa: E402
20
20
 
21
- from . import alconna # noqa: E402, F401
22
- from . import database # noqa: E402, F401
21
+ from . import alconna, database # noqa: E402, F401
23
22
  from .database import ChuSongORM, MaiSongORM # noqa: E402
24
23
 
25
24
 
@@ -20,9 +20,14 @@ from ..models.song import (
20
20
  SongNotes,
21
21
  )
22
22
  from .orm_models import ChuSong as ChuSongORMModel
23
- from .orm_models import ChuSongAlias, LocationSubscription, MaiPlayCount
23
+ from .orm_models import (
24
+ ChuSongAlias,
25
+ LocationSubscription,
26
+ MaiPlayCount,
27
+ MaiSongAlias,
28
+ UserBindInfo,
29
+ )
24
30
  from .orm_models import MaiSong as MaiSongORMModel
25
- from .orm_models import MaiSongAlias, UserBindInfo
26
31
 
27
32
  if TYPE_CHECKING:
28
33
  from ..updater.songs import MusicAliasResponseItem
@@ -219,6 +224,8 @@ class MaiSongORM:
219
224
  map=row.map,
220
225
  version=row.version,
221
226
  difficulties=SongDifficulties(standard=standard_difficulties, dx=dx_difficulties, utage=utage_difficulties),
227
+ locked=bool(row.locked),
228
+ disabled=bool(row.disabled),
222
229
  )
223
230
 
224
231
  @staticmethod
@@ -239,6 +246,7 @@ class MaiSongORM:
239
246
  bpm=song.bpm,
240
247
  map=song.map,
241
248
  version=song.version,
249
+ locked=bool(song.locked),
242
250
  # ORM 列为 String,这里序列化为 JSON 字符串
243
251
  difficulties=json.dumps(difficulties_dict, ensure_ascii=False),
244
252
  )
@@ -276,6 +284,7 @@ class MaiSongORM:
276
284
  existing_obj.bpm = song.bpm
277
285
  existing_obj.map = song.map
278
286
  existing_obj.version = song.version
287
+ existing_obj.locked = bool(song.locked)
279
288
  existing_obj.difficulties = difficulties_json # type: ignore
280
289
  else:
281
290
  # 插入新记录
@@ -287,6 +296,7 @@ class MaiSongORM:
287
296
  bpm=song.bpm,
288
297
  map=song.map,
289
298
  version=song.version,
299
+ locked=bool(song.locked),
290
300
  # ORM 列为 String,这里序列化为 JSON 字符串
291
301
  difficulties=difficulties_json,
292
302
  )
@@ -18,9 +18,9 @@ from maimai_py import (
18
18
  Player,
19
19
  PlayerIdentifier,
20
20
  ScoreExtend,
21
+ current_version,
21
22
  )
22
23
  from maimai_py import SongType as MaimaiPySongType
23
- from maimai_py import current_version
24
24
  from nonebot import logger
25
25
  from nonebot.internal.matcher import current_event
26
26
  from nonebot_plugin_alconna import At, UniMessage
@@ -158,6 +158,7 @@ async def fetch_song_info(song_id: int, interval: float = 0.3) -> MaiSong:
158
158
  song_info_fields = {f.name for f in fields(MaiSong)}
159
159
  song_info_dict = {k: v for k, v in content.items() if k in song_info_fields}
160
160
  song_info_dict["difficulties"] = SongDifficulties.init_from_dict(content.get("difficulties", {}))
161
+ song_info_dict["locked"] = bool(song_info_dict.get("locked"))
161
162
 
162
163
  await _update_song_fit_diff(song_info_dict["difficulties"], song_id)
163
164
 
@@ -205,6 +206,7 @@ async def update_maimai_song_database(db_session: async_scoped_session) -> int:
205
206
  for song in songs:
206
207
  song_info_dict = {k: v for k, v in song.items() if k in song_info_fields}
207
208
  song_info_dict["difficulties"] = SongDifficulties.init_from_dict(song.get("difficulties", {}))
209
+ song_info_dict["locked"] = bool(song_info_dict.get("locked"))
208
210
 
209
211
  # 获取拟合定数
210
212
  await _update_song_fit_diff(song_info_dict["difficulties"], song_info_dict["id"])
@@ -21,7 +21,7 @@ dependencies = [
21
21
  "nonebot-plugin-session>=0.3.2",
22
22
  "nonebot-plugin-apscheduler>=0.5.0",
23
23
  ]
24
- version = "2.2.0"
24
+ version = "2.2.1"
25
25
 
26
26
  [project.optional-dependencies]
27
27
  dev = [