Compare commits

...

11 Commits

Author SHA1 Message Date
627a29f57e 使用 Discord Proxy 选项来下载图片 2025-11-06 00:12:08 +08:00
650c500f47 Merge pull request '监听更广泛的 Discord 消息' (#38) from bugfix/discord-image-download into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #38
2025-11-06 00:06:49 +08:00
86acbe51e9 Merge remote-tracking branch 'origin/master' into bugfix/discord-image-download 2025-11-06 00:05:20 +08:00
4900a7e0ad Merge branch 'bugfix/discord-image-download' of ssh://gitea.service.jazzwhom.top:2221/mttu-developers/konabot into bugfix/discord-image-download 2025-11-06 00:05:08 +08:00
34da08126b 监听更广泛的 event 2025-11-06 00:04:57 +08:00
00f416c8bc Merge pull request '改为使用 proxy url' (#37) from bugfix/discord-image-download into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #37
2025-11-05 23:59:54 +08:00
9c7d0a4486 Merge branch 'master' into bugfix/discord-image-download 2025-11-05 23:59:43 +08:00
e3b9d6723f 改为使用 proxy url 2025-11-05 23:58:55 +08:00
ef80399a90 Merge pull request '尝试解决 Discord 无法读取图片的问题' (#30) from bugfix/discord-image-download into master
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #30
2025-11-05 23:17:25 +08:00
bfbfa9d9be 尝试解决这个问题 2025-11-05 23:15:30 +08:00
6b7be4d3b0 Merge pull request '添加基础的 LLM 支持' (#29) from feature/LLM-base into master
Reviewed-on: #29
2025-11-05 20:40:40 +08:00

View File

@ -8,6 +8,8 @@ import nonebot
from nonebot.matcher import Matcher
from nonebot.adapters import Bot, Event, Message
from nonebot.adapters.discord import Bot as DiscordBot
from nonebot.adapters.discord import MessageEvent as DiscordMessageEvent
from nonebot.adapters.discord.config import Config as DiscordConfig
from nonebot.adapters.onebot.v11 import Bot as OnebotV11Bot
from nonebot.adapters.onebot.v11 import Message as OnebotV11Message
from nonebot.adapters.onebot.v11 import MessageEvent as OnebotV11MessageEvent
@ -17,11 +19,14 @@ from PIL import UnidentifiedImageError
from returns.result import Failure, Result, Success
async def download_image_bytes(url: str) -> Result[bytes, str]:
discordConfig = nonebot.get_plugin_config(DiscordConfig)
async def download_image_bytes(url: str, proxy: str | None = None) -> Result[bytes, str]:
# if "/matcha/cache/" in url:
# url = url.replace('127.0.0.1', '10.126.126.101')
logger.debug(f"开始从 {url} 下载图片")
async with httpx.AsyncClient() as c:
async with httpx.AsyncClient(proxy=proxy) as c:
try:
response = await c.get(url)
except (httpx.ConnectError, httpx.RemoteProtocolError) as e:
@ -121,6 +126,14 @@ async def extract_image_from_message(
logger.debug('获取图片的路径 Fallback 到 QQ 模块')
return await extract_image_from_qq_message(msg, evt, bot, allow_reply)
if isinstance(evt, DiscordMessageEvent):
logger.debug('获取图片的路径方式走 Discord')
for a in evt.attachments:
if "image/" not in a.content_type:
continue
url = a.proxy_url
return (await download_image_bytes(url, discordConfig.discord_proxy)).bind(bytes_to_pil)
for seg in UniMessage.of(msg, bot):
logger.info(seg)
if isinstance(seg, Image):