mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2026-05-09 18:27:56 +08:00
🎨 按ruff的检查调整程序代码
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
from .post import Post
|
||||
|
||||
__all__ = ["Post", "CustomPost"]
|
||||
__all__ = ["Post"]
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from abc import abstractmethod
|
||||
from dataclasses import dataclass, field
|
||||
from functools import reduce
|
||||
from typing import Optional
|
||||
from abc import abstractmethod
|
||||
from dataclasses import field, dataclass
|
||||
|
||||
from nonebot_plugin_saa import MessageFactory, MessageSegmentFactory
|
||||
|
||||
@@ -25,12 +24,12 @@ class BasePost:
|
||||
class OptionalMixin:
|
||||
# Because of https://stackoverflow.com/questions/51575931/class-inheritance-in-python-3-7-dataclasses
|
||||
|
||||
override_use_pic: Optional[bool] = None
|
||||
override_use_pic: bool | None = None
|
||||
compress: bool = False
|
||||
extra_msg: list[MessageFactory] = field(default_factory=list)
|
||||
|
||||
def _use_pic(self):
|
||||
if not self.override_use_pic is None:
|
||||
if self.override_use_pic is not None:
|
||||
return self.override_use_pic
|
||||
return plugin_config.bison_use_pic
|
||||
|
||||
@@ -44,13 +43,9 @@ class AbstractPost(OptionalMixin, BasePost):
|
||||
msg_segments = await self.generate_text_messages()
|
||||
if msg_segments:
|
||||
if self.compress:
|
||||
msgs = [
|
||||
reduce(lambda x, y: x.append(y), msg_segments, MessageFactory([]))
|
||||
]
|
||||
msgs = [reduce(lambda x, y: x.append(y), msg_segments, MessageFactory([]))]
|
||||
else:
|
||||
msgs = list(
|
||||
map(lambda msg_segment: MessageFactory([msg_segment]), msg_segments)
|
||||
)
|
||||
msgs = [MessageFactory([msg_segment]) for msg_segment in msg_segments]
|
||||
else:
|
||||
msgs = []
|
||||
msgs.extend(self.extra_msg)
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Optional
|
||||
from dataclasses import field, dataclass
|
||||
|
||||
from nonebot.adapters.onebot.v11 import MessageSegment
|
||||
from nonebot.log import logger
|
||||
from nonebot.plugin import require
|
||||
from nonebot_plugin_saa import Image, MessageFactory, MessageSegmentFactory, Text
|
||||
from nonebot.adapters.onebot.v11 import MessageSegment
|
||||
from nonebot_plugin_saa import Text, Image, MessageSegmentFactory
|
||||
|
||||
from .abstract_post import AbstractPost, BasePost
|
||||
from .abstract_post import BasePost, AbstractPost
|
||||
|
||||
|
||||
@dataclass
|
||||
class _CustomPost(BasePost):
|
||||
|
||||
ms_factories: list[MessageSegmentFactory] = field(default_factory=list)
|
||||
css_path: Optional[str] = None # 模板文件所用css路径
|
||||
css_path: str | None = None # 模板文件所用css路径
|
||||
|
||||
async def generate_text_messages(self) -> list[MessageSegmentFactory]:
|
||||
return self.ms_factories
|
||||
@@ -31,15 +29,13 @@ class _CustomPost(BasePost):
|
||||
for message_segment in self.ms_factories:
|
||||
match message_segment:
|
||||
case Text(data={"text": text}):
|
||||
md += "{}<br>".format(text)
|
||||
md += f"{text}<br>"
|
||||
case Image(data={"image": image}):
|
||||
# use onebot v11 to convert image into url
|
||||
ob11_image = MessageSegment.image(image)
|
||||
md += "\n".format(ob11_image.data["file"])
|
||||
case _:
|
||||
logger.warning(
|
||||
"custom_post不支持处理类型:{}".format(type(message_segment))
|
||||
)
|
||||
logger.warning(f"custom_post不支持处理类型:{type(message_segment)}")
|
||||
continue
|
||||
|
||||
return md
|
||||
|
||||
+20
-34
@@ -1,30 +1,27 @@
|
||||
from dataclasses import dataclass, field
|
||||
from functools import reduce
|
||||
from io import BytesIO
|
||||
from typing import Optional, Union
|
||||
from dataclasses import field, dataclass
|
||||
|
||||
import nonebot_plugin_saa as saa
|
||||
from nonebot.log import logger
|
||||
from nonebot_plugin_saa.utils import MessageFactory, MessageSegmentFactory
|
||||
from PIL import Image
|
||||
from nonebot.log import logger
|
||||
import nonebot_plugin_saa as saa
|
||||
from nonebot_plugin_saa.utils import MessageSegmentFactory
|
||||
|
||||
from ..utils import http_client, parse_text
|
||||
from .abstract_post import AbstractPost, BasePost, OptionalMixin
|
||||
from ..utils import parse_text, http_client
|
||||
from .abstract_post import BasePost, AbstractPost
|
||||
|
||||
|
||||
@dataclass
|
||||
class _Post(BasePost):
|
||||
|
||||
target_type: str
|
||||
text: str
|
||||
url: Optional[str] = None
|
||||
target_name: Optional[str] = None
|
||||
pics: list[Union[str, bytes]] = field(default_factory=list)
|
||||
url: str | None = None
|
||||
target_name: str | None = None
|
||||
pics: list[str | bytes] = field(default_factory=list)
|
||||
|
||||
_message: Optional[list[MessageSegmentFactory]] = None
|
||||
_pic_message: Optional[list[MessageSegmentFactory]] = None
|
||||
_message: list[MessageSegmentFactory] | None = None
|
||||
_pic_message: list[MessageSegmentFactory] | None = None
|
||||
|
||||
async def _pic_url_to_image(self, data: Union[str, bytes]) -> Image.Image:
|
||||
async def _pic_url_to_image(self, data: str | bytes) -> Image.Image:
|
||||
pic_buffer = BytesIO()
|
||||
if isinstance(data, str):
|
||||
async with http_client() as client:
|
||||
@@ -101,22 +98,19 @@ class _Post(BasePost):
|
||||
self.pics.insert(0, target_io.getvalue())
|
||||
|
||||
async def generate_text_messages(self) -> list[MessageSegmentFactory]:
|
||||
|
||||
if self._message is None:
|
||||
await self._pic_merge()
|
||||
msg_segments: list[MessageSegmentFactory] = []
|
||||
text = ""
|
||||
if self.text:
|
||||
text += "{}".format(
|
||||
self.text if len(self.text) < 500 else self.text[:500] + "..."
|
||||
)
|
||||
text += "{}".format(self.text if len(self.text) < 500 else self.text[:500] + "...")
|
||||
if text:
|
||||
text += "\n"
|
||||
text += "来源: {}".format(self.target_type)
|
||||
text += f"来源: {self.target_type}"
|
||||
if self.target_name:
|
||||
text += " {}".format(self.target_name)
|
||||
text += f" {self.target_name}"
|
||||
if self.url:
|
||||
text += " \n详情: {}".format(self.url)
|
||||
text += f" \n详情: {self.url}"
|
||||
msg_segments.append(saa.Text(text))
|
||||
for pic in self.pics:
|
||||
msg_segments.append(saa.Image(pic))
|
||||
@@ -124,17 +118,16 @@ class _Post(BasePost):
|
||||
return self._message
|
||||
|
||||
async def generate_pic_messages(self) -> list[MessageSegmentFactory]:
|
||||
|
||||
if self._pic_message is None:
|
||||
await self._pic_merge()
|
||||
msg_segments: list[MessageSegmentFactory] = []
|
||||
text = ""
|
||||
if self.text:
|
||||
text += "{}".format(self.text)
|
||||
text += f"{self.text}"
|
||||
text += "\n"
|
||||
text += "来源: {}".format(self.target_type)
|
||||
text += f"来源: {self.target_type}"
|
||||
if self.target_name:
|
||||
text += " {}".format(self.target_name)
|
||||
text += f" {self.target_name}"
|
||||
msg_segments.append(await parse_text(text))
|
||||
if not self.target_type == "rss" and self.url:
|
||||
msg_segments.append(saa.Text(self.url))
|
||||
@@ -149,14 +142,7 @@ class _Post(BasePost):
|
||||
self.target_name,
|
||||
self.text if len(self.text) < 500 else self.text[:500] + "...",
|
||||
self.url,
|
||||
", ".join(
|
||||
map(
|
||||
lambda x: "b64img"
|
||||
if isinstance(x, bytes) or x.startswith("base64")
|
||||
else x,
|
||||
self.pics,
|
||||
)
|
||||
),
|
||||
", ".join("b64img" if isinstance(x, bytes) or x.startswith("base64") else x for x in self.pics),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user