基於NoneBot的圖片消息


aiocqhttp庫中自帶了個MessageSegment的類,很多可以直接調用,具體可以點開MessageSegment的類中,這里是把本地文件讀取變成圖片發送消息返回給CQ機器人。

直接上源代碼:

from nonebot import on_command, CommandSession from nonebot import on_natural_language, NLPSession, IntentCommand from jieba import posseg import requests import time import urllib from lxml import etree from aiocqhttp import MessageSegment import requests from config import IMAGE_LOCAL class GetPic: def __init__(self): self.session = requests.session() def get_Pic(self): res = self.session.get("http://api.mtyqx.cn/api/random.php", verify=False) # 保存圖片
        with open(IMAGE_LOCAL.format('8531'), "wb") as f: f.write(res.content) return True @on_command('setu', aliases=('富婆','色圖', '老婆', '老婆圖', '蘿莉')) async def setu(session: CommandSession): Pic = GetPic() if Pic.get_Pic(): seq = MessageSegment.image("{}.png".format('8531')) await session.send(seq) @on_natural_language(keywords={'富婆','色圖', '老婆', '老婆圖', '蘿莉'},only_to_me=False) async def _(session: NLPSession): # 去掉消息首尾的空白符
    stripped_msg = session.msg_text.strip() # 對消息進行分詞和詞性標注
    words = posseg.lcut(stripped_msg) pic = None # 遍歷 posseg.lcut 返回的列表
    for word in words: # 每個元素是一個 pair 對象,包含 word 和 flag 兩個屬性,分別表示詞和詞性
        if word.flag == 'st': pic = word.word break

    # 返回意圖命令,前兩個參數必填,分別表示置信度和意圖命令名
    return IntentCommand(90.0, 'setu', current_arg=pic)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM