nonebot-plugin-bililive 2.1.7__tar.gz → 2.1.8__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.
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/PKG-INFO +1 -1
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/pusher/dynamic_pusher.py +33 -28
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/version.py +1 -1
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/pyproject.toml +1 -1
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/LICENSE +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/README.md +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/__main__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/bilibili_api.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/cli/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/cli/bot.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/cli/utils.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/config.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/database/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/database/db.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/database/models.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/dynamic/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/dynamic/card.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/dynamic/desc.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/dynamic/display.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/dynamic/user_profile.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/libs/dynamic/web.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/at/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/at/at_off.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/at/at_on.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/auto_agree.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/auto_delete.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/dynamic/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/dynamic/dynamic_off.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/dynamic/dynamic_on.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/help.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/live/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/live/live_now.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/live/live_off.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/live/live_on.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/permission/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/permission/permission_off.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/permission/permission_on.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/pusher/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/pusher/live_pusher.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/sub/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/sub/add_sub.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/sub/delete_sub.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/plugins/sub/sub_list.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/utils/__init__.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/utils/browser.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/utils/captcha_solver.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/utils/fonts_provider.py +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/utils/mobile.js +0 -0
- {nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/tests/test_maintenance.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nonebot-plugin-bililive
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.8
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
from datetime import datetime
|
|
2
|
+
from datetime import datetime, timedelta
|
|
3
3
|
from time import monotonic
|
|
4
4
|
|
|
5
5
|
from apscheduler.events import (
|
|
@@ -45,11 +45,7 @@ WEB_DYNAMIC_TYPE_MESSAGES = {
|
|
|
45
45
|
"DYNAMIC_TYPE_MUSIC": "发布了新音频",
|
|
46
46
|
}
|
|
47
47
|
DYNAMIC_FETCH_CONCURRENCY = 4
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
async def throttle_dynamic_loop():
|
|
51
|
-
if plugin_config.bililive_dynamic_interval == 0:
|
|
52
|
-
await asyncio.sleep(1)
|
|
48
|
+
DYNAMIC_THROTTLE_SECONDS = 1
|
|
53
49
|
|
|
54
50
|
|
|
55
51
|
def get_dynamic_id(dynamic, use_web_fallback: bool) -> int:
|
|
@@ -108,7 +104,6 @@ async def process_dynamic_uid(uid: int):
|
|
|
108
104
|
if retry_at is not None:
|
|
109
105
|
if retry_at > monotonic():
|
|
110
106
|
logger.debug(f"动态接口风控冷却中,跳过 {name}({uid})")
|
|
111
|
-
await throttle_dynamic_loop()
|
|
112
107
|
return
|
|
113
108
|
del dynamic_risk_control_until[uid]
|
|
114
109
|
|
|
@@ -191,36 +186,46 @@ async def process_dynamic_uid(uid: int):
|
|
|
191
186
|
|
|
192
187
|
async def dy_sched():
|
|
193
188
|
"""动态推送"""
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
189
|
+
try:
|
|
190
|
+
if not await db.wait_until_ready():
|
|
191
|
+
logger.debug("数据库尚未初始化完成,跳过本轮动态推送")
|
|
192
|
+
return
|
|
198
193
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
await throttle_dynamic_loop()
|
|
203
|
-
return
|
|
194
|
+
uids = await db.get_uid_list("dynamic")
|
|
195
|
+
if not uids:
|
|
196
|
+
return
|
|
204
197
|
|
|
205
|
-
|
|
206
|
-
|
|
198
|
+
logger.debug(f"爬取动态列表,总共 {len(uids)} 人")
|
|
199
|
+
semaphore = asyncio.Semaphore(DYNAMIC_FETCH_CONCURRENCY)
|
|
207
200
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
201
|
+
async def run_for_uid(uid: int):
|
|
202
|
+
async with semaphore:
|
|
203
|
+
await process_dynamic_uid(uid)
|
|
211
204
|
|
|
212
|
-
|
|
213
|
-
|
|
205
|
+
await asyncio.gather(*(run_for_uid(uid) for uid in uids))
|
|
206
|
+
except asyncio.CancelledError:
|
|
207
|
+
logger.debug("动态推送任务已取消")
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
def schedule_next_dynamic_job(*, immediate: bool = False):
|
|
211
|
+
if scheduler.get_job("dynamic_sched"):
|
|
212
|
+
return
|
|
213
|
+
delay = timedelta(0) if immediate else timedelta(seconds=DYNAMIC_THROTTLE_SECONDS)
|
|
214
|
+
scheduler.add_job(
|
|
215
|
+
dy_sched,
|
|
216
|
+
id="dynamic_sched",
|
|
217
|
+
next_run_time=datetime.now(scheduler.timezone) + delay,
|
|
218
|
+
)
|
|
214
219
|
|
|
215
220
|
|
|
216
221
|
def dynamic_lisener(event):
|
|
217
222
|
if hasattr(event, "job_id") and event.job_id != "dynamic_sched":
|
|
218
223
|
return
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
+
if event.code == EVENT_JOB_ERROR and isinstance(
|
|
225
|
+
getattr(event, "exception", None), asyncio.CancelledError
|
|
226
|
+
):
|
|
227
|
+
logger.debug("动态推送任务已取消,将重新调度")
|
|
228
|
+
schedule_next_dynamic_job(immediate=event.code == EVENT_SCHEDULER_STARTED)
|
|
224
229
|
|
|
225
230
|
|
|
226
231
|
if plugin_config.bililive_dynamic_interval == 0:
|
|
File without changes
|
|
File without changes
|
{nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/__init__.py
RENAMED
|
File without changes
|
{nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/cli/bot.py
RENAMED
|
File without changes
|
{nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/cli/utils.py
RENAMED
|
File without changes
|
{nonebot_plugin_bililive-2.1.7 → nonebot_plugin_bililive-2.1.8}/nonebot_plugin_bililive/config.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|