Skip to content

Commit ccee3a0

Browse files
committed
up
1 parent 2c9d378 commit ccee3a0

File tree

4 files changed

+62
-17
lines changed

4 files changed

+62
-17
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ Telegram:[@lgc2333](https://t.me/lgc2333)
231231
### 0.5.0
232232

233233
- 重构适配 meme-generator-rs
234+
- 换用 `nonebot-plugin-uninfo`
234235

235236
### 0.4.0
236237

nonebot_plugin_random_stereotypes/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ConfigModel(BaseModel):
4343
stereotypes_memes: list[MemeConfig] = Field(
4444
default_factory=lambda: [
4545
MemeConfig(name="kiss"),
46-
MemeConfig(name="bite"),
46+
MemeConfig(name="suck"),
4747
MemeConfig(name="rub"),
4848
MemeConfig(name="little_angel"),
4949
],

nonebot_plugin_random_stereotypes/meme/impl/api.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ def transform_meme_info(info: MemeInfo) -> MemeMetadata:
3838

3939
@override
4040
async def get_meme(self, name: str) -> MemeMetadata:
41-
return self.transform_meme_info(await get_meme_info(name))
41+
try:
42+
return self.transform_meme_info(await get_meme_info(name))
43+
except Exception as e:
44+
raise ValueError(f"Meme '{name}' not found") from e
4245

4346
@override
4447
async def generate(

nonebot_plugin_random_stereotypes/meme/impl/embed.py

Lines changed: 56 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
from typing import Any, Optional
1+
from typing import Any, Optional, Union
22
from typing_extensions import override
33

4-
from meme_generator import Image, Meme, get_meme
5-
from nonebot import get_available_plugin_names, get_driver
4+
from meme_generator import (
5+
DeserializeError,
6+
Image,
7+
ImageAssetMissing,
8+
ImageDecodeError,
9+
ImageEncodeError,
10+
ImageNumberMismatch,
11+
Meme,
12+
MemeFeedback,
13+
TextNumberMismatch,
14+
TextOverLength,
15+
get_meme,
16+
)
617

718
from ..base import BaseMemeGenerator, MemeMetadata
819

@@ -21,9 +32,49 @@ def transform_meme(meme: Meme):
2132
),
2233
)
2334

35+
@staticmethod
36+
def format_error(
37+
e: Union[
38+
ImageDecodeError,
39+
ImageEncodeError,
40+
ImageAssetMissing,
41+
DeserializeError,
42+
ImageNumberMismatch,
43+
TextNumberMismatch,
44+
TextOverLength,
45+
MemeFeedback,
46+
],
47+
) -> str:
48+
if isinstance(e, ImageDecodeError):
49+
return f"Image decode error: {e.error}"
50+
if isinstance(e, ImageEncodeError):
51+
return f"Image encode error: {e.error}"
52+
if isinstance(e, ImageAssetMissing):
53+
return f"Image asset missing: {e.path}"
54+
if isinstance(e, DeserializeError):
55+
return f"Deserialize error: {e.error}"
56+
if isinstance(e, ImageNumberMismatch):
57+
return (
58+
f"Image number mismatch: expected between {e.min} and {e.max}, "
59+
f"got {e.actual}"
60+
)
61+
if isinstance(e, TextNumberMismatch):
62+
return (
63+
f"Text number mismatch: expected between {e.min} and {e.max}, "
64+
f"got {e.actual}"
65+
)
66+
if isinstance(e, TextOverLength):
67+
return f"Text over length: '{e.text}'"
68+
if isinstance(e, MemeFeedback):
69+
return f"Meme feedback: {e.feedback}"
70+
return str(e)
71+
2472
@override
2573
async def get_meme(self, name: str) -> MemeMetadata:
26-
return self.transform_meme(get_meme(name))
74+
meme = get_meme(name)
75+
if not meme:
76+
raise ValueError(f"Meme '{name}' not found")
77+
return self.transform_meme(meme)
2778

2879
@override
2980
async def generate(
@@ -40,17 +91,7 @@ async def generate(
4091
)
4192
if isinstance(r, bytes):
4293
return r
43-
raise RuntimeError(f"{type(r).__name__}: {r}")
44-
45-
46-
if "nonebot_plugin_memes" not in get_available_plugin_names():
47-
from meme_generator.resources import check_resources_in_background
48-
49-
driver = get_driver()
50-
51-
@driver.on_startup
52-
async def _():
53-
check_resources_in_background()
94+
raise RuntimeError(self.format_error(r))
5495

5596

5697
meme_generator = MemeGenerator()

0 commit comments

Comments
 (0)