nonebot-plugin-bililive 2.1.1__tar.gz → 2.1.3__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 (53) hide show
  1. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/PKG-INFO +1 -1
  2. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/__init__.py +3 -10
  3. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/config.py +1 -8
  4. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/utils/__init__.py +11 -3
  5. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/version.py +1 -1
  6. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/pyproject.toml +1 -3
  7. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/tests/test_maintenance.py +11 -10
  8. nonebot_plugin_bililive-2.1.1/nonebot-plugin-bililive/__init__.py +0 -3
  9. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/LICENSE +0 -0
  10. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/README.md +0 -0
  11. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/__main__.py +0 -0
  12. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/bilibili_api.py +0 -0
  13. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/cli/__init__.py +0 -0
  14. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/cli/bot.py +0 -0
  15. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/cli/utils.py +0 -0
  16. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/database/__init__.py +0 -0
  17. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/database/db.py +0 -0
  18. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/database/models.py +0 -0
  19. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/__init__.py +0 -0
  20. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/dynamic/__init__.py +0 -0
  21. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/dynamic/card.py +0 -0
  22. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/dynamic/desc.py +0 -0
  23. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/dynamic/display.py +0 -0
  24. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/dynamic/user_profile.py +0 -0
  25. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/libs/dynamic/web.py +0 -0
  26. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/__init__.py +0 -0
  27. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/at/__init__.py +0 -0
  28. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/at/at_off.py +0 -0
  29. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/at/at_on.py +0 -0
  30. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/auto_agree.py +0 -0
  31. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/auto_delete.py +0 -0
  32. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/dynamic/__init__.py +0 -0
  33. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/dynamic/dynamic_off.py +0 -0
  34. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/dynamic/dynamic_on.py +0 -0
  35. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/help.py +0 -0
  36. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/live/__init__.py +0 -0
  37. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/live/live_now.py +0 -0
  38. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/live/live_off.py +0 -0
  39. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/live/live_on.py +0 -0
  40. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/permission/__init__.py +0 -0
  41. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/permission/permission_off.py +0 -0
  42. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/permission/permission_on.py +0 -0
  43. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/pusher/__init__.py +0 -0
  44. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/pusher/dynamic_pusher.py +0 -0
  45. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/pusher/live_pusher.py +0 -0
  46. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/sub/__init__.py +0 -0
  47. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/sub/add_sub.py +0 -0
  48. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/sub/delete_sub.py +0 -0
  49. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/plugins/sub/sub_list.py +0 -0
  50. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/utils/browser.py +0 -0
  51. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/utils/captcha_solver.py +0 -0
  52. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/utils/fonts_provider.py +0 -0
  53. {nonebot_plugin_bililive-2.1.1 → nonebot_plugin_bililive-2.1.3}/nonebot_plugin_bililive/utils/mobile.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-plugin-bililive
3
- Version: 2.1.1
3
+ Version: 2.1.3
4
4
  Summary: Push bilibili dynamics and live notifications to QQ with NoneBot2.
5
5
  Keywords: nonebot,nonebot2,nonebot-plugin,bilibili,onebot,onebot-v11
6
6
  Author-Email: Akiyy_Lab <2806578374@qq.com>
@@ -1,6 +1,5 @@
1
1
  from nonebot import require
2
2
  from nonebot.plugin import PluginMetadata
3
- from nonebot.plugin.manager import PluginLoader
4
3
 
5
4
  from .config import Config, plugin_config
6
5
  from .version import VERSION, __version__
@@ -8,17 +7,11 @@ from .version import VERSION, __version__
8
7
  require("nonebot_plugin_localstore")
9
8
  require("nonebot_plugin_apscheduler")
10
9
 
10
+ from .utils import on_startup
11
11
 
12
- def bootstrap_plugin(force: bool = False):
13
- if force or isinstance(globals()["__loader__"], PluginLoader):
14
- from .utils import on_startup
12
+ on_startup()
15
13
 
16
- on_startup()
17
-
18
- from . import plugins # noqa: F401
19
-
20
-
21
- bootstrap_plugin()
14
+ from . import plugins # noqa: F401
22
15
 
23
16
  __plugin_meta__ = PluginMetadata(
24
17
  name="BiliLive",
@@ -3,19 +3,12 @@ from collections.abc import Mapping
3
3
  from typing import Any
4
4
 
5
5
  from nonebot import get_plugin_config, logger
6
- from nonebot.compat import PYDANTIC_V2, ConfigDict, field_validator, model_validator
6
+ from nonebot.compat import field_validator, model_validator
7
7
  from pydantic import BaseModel
8
8
 
9
9
 
10
10
  # 其他地方出现的类似 from .. import config,均是从 __init__.py 导入的 Config 实例
11
11
  class Config(BaseModel):
12
- if PYDANTIC_V2:
13
- model_config = ConfigDict(extra="ignore")
14
- else:
15
-
16
- class Config:
17
- extra = "ignore"
18
-
19
12
  fastapi_reload: bool = False
20
13
  bililive_to_me: bool = True
21
14
  bililive_live_off_notify: bool = False
@@ -28,10 +28,12 @@ from nonebot.rule import Rule
28
28
 
29
29
  from ..config import plugin_config
30
30
 
31
+ DATA_DIR = store.get_plugin_data_dir()
32
+
31
33
 
32
34
  def get_data_dir():
33
35
  """获取插件数据目录。"""
34
- return store.get_plugin_data_dir()
36
+ return DATA_DIR
35
37
 
36
38
 
37
39
  def get_path(*other):
@@ -294,8 +296,14 @@ def on_startup():
294
296
 
295
297
  check_proxy()
296
298
  install()
297
- asyncio.get_event_loop().run_until_complete(check_playwright_env())
298
- get_data_dir().mkdir(parents=True, exist_ok=True)
299
+ try:
300
+ asyncio.get_event_loop().run_until_complete(check_playwright_env())
301
+ except ImportError as err:
302
+ logger.warning(
303
+ "Playwright 运行环境不完整,已跳过启动时强校验;"
304
+ f"涉及截图/浏览器能力时可能不可用。错误:{err}"
305
+ )
306
+ DATA_DIR.mkdir(parents=True, exist_ok=True)
299
307
 
300
308
 
301
309
  def on_command(cmd, *args, **kwargs):
@@ -1,4 +1,4 @@
1
1
  from packaging.version import Version
2
2
 
3
- __version__ = "2.1.1"
3
+ __version__ = "2.1.3"
4
4
  VERSION = Version(__version__)
@@ -39,7 +39,7 @@ dependencies = [
39
39
  "msvc-runtime>=14.34.31931; sys_platform == \"win32\"",
40
40
  ]
41
41
  dynamic = []
42
- version = "2.1.1"
42
+ version = "2.1.3"
43
43
 
44
44
  [project.license]
45
45
  text = "AGPL-3.0-or-later"
@@ -52,7 +52,6 @@ Issues = "https://github.com/Akiyy-dev/nonebot-plugin-bililive/issues"
52
52
 
53
53
  [project.entry-points."nonebot.plugin"]
54
54
  nonebot-plugin-bililive = "nonebot_plugin_bililive"
55
- nonebot_plugin_bililive = "nonebot_plugin_bililive"
56
55
 
57
56
  [project.scripts]
58
57
  bililive = "nonebot_plugin_bililive.__main__:main"
@@ -77,7 +76,6 @@ path = "nonebot_plugin_bililive/version.py"
77
76
  [tool.pdm.build]
78
77
  includes = [
79
78
  "nonebot_plugin_bililive",
80
- "nonebot-plugin-bililive",
81
79
  ]
82
80
 
83
81
  [tool.pdm.dev-dependencies]
@@ -6,6 +6,8 @@ from pathlib import Path
6
6
  from types import ModuleType, SimpleNamespace
7
7
  from unittest.mock import AsyncMock, patch
8
8
 
9
+ import nonebot
10
+
9
11
 
10
12
  class DummyDriver:
11
13
  config = {}
@@ -22,6 +24,12 @@ fake_localstore = ModuleType("nonebot_plugin_localstore")
22
24
 
23
25
 
24
26
  class DummyScheduler:
27
+ def scheduled_job(self, *args, **kwargs):
28
+ def decorator(func):
29
+ return func
30
+
31
+ return decorator
32
+
25
33
  def add_listener(self, *args, **kwargs):
26
34
  return None
27
35
 
@@ -41,6 +49,8 @@ def _get_plugin_data_dir() -> Path:
41
49
 
42
50
  fake_localstore.get_plugin_data_dir = _get_plugin_data_dir
43
51
 
52
+ nonebot.init(driver="~none", log_level="ERROR")
53
+
44
54
 
45
55
  with patch("nonebot.get_driver", return_value=DummyDriver()), patch(
46
56
  "nonebot.get_plugin_config", side_effect=lambda cls: cls()
@@ -56,7 +66,6 @@ with patch("nonebot.get_driver", return_value=DummyDriver()), patch(
56
66
  db_module = import_module("nonebot_plugin_bililive.database.db")
57
67
  web_dynamic = import_module("nonebot_plugin_bililive.libs.dynamic.web")
58
68
  plugin_entry = import_module("nonebot_plugin_bililive")
59
- hyphen_plugin_entry = import_module("nonebot-plugin-bililive")
60
69
  DB = db_module.DB
61
70
  models = import_module("nonebot_plugin_bililive.database.models")
62
71
  Group = models.Group
@@ -103,7 +112,6 @@ class PluginEntryTests(unittest.TestCase):
103
112
  self.assertEqual(plugin_entry.__plugin_meta__.config, Config)
104
113
  self.assertEqual(plugin_entry.__plugin_meta__.extra["author"], "Akiyy_Lab")
105
114
  self.assertEqual(plugin_entry.__version__, core_version.__version__)
106
- self.assertIs(hyphen_plugin_entry.__plugin_meta__, plugin_entry.__plugin_meta__)
107
115
 
108
116
  def test_default_data_dir_uses_localstore(self):
109
117
  expected = _get_plugin_data_dir() / "data.sqlite3"
@@ -117,15 +125,8 @@ class PluginEntryTests(unittest.TestCase):
117
125
  'nonebot-plugin-bililive = "nonebot_plugin_bililive"',
118
126
  pyproject,
119
127
  )
120
- self.assertIn(
121
- 'nonebot_plugin_bililive = "nonebot_plugin_bililive"',
122
- pyproject,
123
- )
124
128
  self.assertIn('bililive = "nonebot_plugin_bililive.__main__:main"', pyproject)
125
- self.assertIn(
126
- 'includes = ["nonebot_plugin_bililive", "nonebot-plugin-bililive"]',
127
- pyproject,
128
- )
129
+ self.assertIn('includes = ["nonebot_plugin_bililive"]', pyproject)
129
130
  self.assertNotIn('nonebot2[fastapi]>=', pyproject)
130
131
  self.assertNotIn('bilireq>=', pyproject)
131
132
 
@@ -1,3 +0,0 @@
1
- from nonebot_plugin_bililive import VERSION, __plugin_meta__, __version__, plugin_config
2
-
3
- __all__ = ["__plugin_meta__", "__version__", "VERSION", "plugin_config"]