nonebot-plugin-bili-dynamic 0.2.2__tar.gz → 0.2.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.
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/PKG-INFO +1 -1
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/renderer.py +6 -3
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic.egg-info/PKG-INFO +1 -1
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/pyproject.toml +1 -1
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/LICENSE +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/README.md +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/__init__.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/api.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/commands.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/config.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/cookie_store.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/database.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/link_parser.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/models.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/monitor.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/qrcode_login.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic/translator.py +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic.egg-info/SOURCES.txt +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic.egg-info/dependency_links.txt +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic.egg-info/entry_points.txt +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic.egg-info/requires.txt +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/nonebot_plugin_bili_dynamic.egg-info/top_level.txt +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/setup.cfg +0 -0
- {nonebot_plugin_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/tests/test_dynamic_expire.py +0 -0
|
@@ -375,7 +375,8 @@ async def _download_image(url: str) -> Optional[skia.Image]:
|
|
|
375
375
|
client = await _client()
|
|
376
376
|
resp = await client.get(url)
|
|
377
377
|
if resp.status_code == 200 and resp.content:
|
|
378
|
-
|
|
378
|
+
# MakeWithCopy:MakeFromEncoded 零拷贝不持有数据,resp.content 释放后即成悬垂指针
|
|
379
|
+
img = skia.Image.MakeFromEncoded(skia.Data.MakeWithCopy(resp.content))
|
|
379
380
|
if img:
|
|
380
381
|
try:
|
|
381
382
|
img = img.makeRasterImage() or img
|
|
@@ -549,7 +550,8 @@ def _make_pil_processed_image(
|
|
|
549
550
|
pil = pil.convert("RGB")
|
|
550
551
|
buf = io.BytesIO()
|
|
551
552
|
pil.save(buf, format="PNG")
|
|
552
|
-
|
|
553
|
+
# MakeWithCopy:MakeFromEncoded 零拷贝不持有数据,防止临时 buffer 被 GC 后悬垂
|
|
554
|
+
return skia.Image.MakeFromEncoded(skia.Data.MakeWithCopy(buf.getvalue()))
|
|
553
555
|
except Exception as e:
|
|
554
556
|
logger.debug(f"[BiliDynamic] Pillow 图片预处理失败: {e}")
|
|
555
557
|
return None
|
|
@@ -687,7 +689,8 @@ def _draw_fake_qr(canvas: skia.Canvas, link: str, color: int, x: float, y: float
|
|
|
687
689
|
img = qr.make_image(fill_color="black", back_color="white").convert("RGB")
|
|
688
690
|
buf = io.BytesIO()
|
|
689
691
|
img.save(buf, format="PNG")
|
|
690
|
-
|
|
692
|
+
# MakeWithCopy:MakeFromEncoded 零拷贝不持有数据,防止临时 buffer 被 GC 后悬垂
|
|
693
|
+
qimg = skia.Image.MakeFromEncoded(skia.Data.MakeWithCopy(buf.getvalue()))
|
|
691
694
|
if qimg:
|
|
692
695
|
_draw_image_rrect(canvas, qimg, skia.RRect.MakeRectXY(skia.Rect.MakeXYWH(x, y, size, size), 0, 0))
|
|
693
696
|
except Exception:
|
|
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_bili_dynamic-0.2.2 → nonebot_plugin_bili_dynamic-0.2.3}/tests/test_dynamic_expire.py
RENAMED
|
File without changes
|