Skip to content

Commit 0eb61d1

Browse files
committed
🐛 fix telegram file build
resolve #79
1 parent 2c46c4d commit 0eb61d1

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

src/nonebot_plugin_alconna/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
from .uniseg import SupportAdapterModule as SupportAdapterModule
138138
from .extension import add_global_extension as add_global_extension
139139

140-
__version__ = "0.54.0"
140+
__version__ = "0.54.1"
141141

142142
__plugin_meta__ = PluginMetadata(
143143
name="Alconna 插件",

src/nonebot_plugin_alconna/uniseg/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
from .constraint import SupportAdapterModule as SupportAdapterModule
5959
from .adapters import alter_get_builder, alter_get_fetcher, alter_get_exporter
6060

61-
__version__ = "0.54.0"
61+
__version__ = "0.54.1"
6262

6363
__plugin_meta__ = PluginMetadata(
6464
name="Universal Segment 插件",

src/nonebot_plugin_alconna/uniseg/adapters/telegram/builder.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from nonebot.adapters import Bot, Event
44
from nonebot.adapters.telegram.message import Entity
55
from nonebot.adapters.telegram.event import MessageEvent
6+
from nonebot.adapters.telegram.message import UnCombinFile
67
from nonebot.adapters.telegram.message import File as FileSegment
78
from nonebot.adapters.telegram.message import Reply as ReplySegment
89

@@ -34,19 +35,27 @@ def photo(self, seg: FileSegment):
3435

3536
@build("video", "animation")
3637
def video(self, seg: FileSegment):
37-
return Video(id=seg.data["file_id"])
38+
return Video(id=seg.data["file"])
39+
40+
@build("sticker")
41+
def sticker(self, seg: UnCombinFile):
42+
return Image(id=seg.data["file"])
43+
44+
@build("video_note")
45+
def video_note(self, seg: UnCombinFile):
46+
return Video(id=seg.data["file"])
3847

3948
@build("voice")
4049
def voice(self, seg: FileSegment):
41-
return Voice(id=seg.data["file_id"])
50+
return Voice(id=seg.data["file"])
4251

4352
@build("audio")
4453
def audio(self, seg: FileSegment):
45-
return Audio(id=seg.data["file_id"])
54+
return Audio(id=seg.data["file"])
4655

4756
@build("document")
4857
def document(self, seg: FileSegment):
49-
return File(seg.data["file_id"], name=seg.data["file_name"])
58+
return File(seg.data["file"], name=seg.data.get("file_name", "file. bin"))
5059

5160
@build("reply")
5261
def reply(self, seg: ReplySegment):

src/nonebot_plugin_alconna/uniseg/tools.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ async def reply_fetch(event: Event, bot: Bot):
2727

2828

2929
async def image_fetch(event: Event, bot: Bot, state: T_State, img: Image, **kwargs) -> Optional[bytes]:
30+
if img.raw:
31+
return img.raw_bytes
32+
if img.path:
33+
return Path(img.path).read_bytes()
3034
adapter_name = bot.adapter.get_name()
3135
if adapter_name == "RedProtocol":
3236
origin = img.origin

0 commit comments

Comments
 (0)