本文最后更新于105 天前,其中的信息可能已经过时,如有错误请发送邮件到skyfutu@qq.com
注:该插件半年前完成,我写这个是因为我没事可以做了凑篇文章LOL
自完成SkyBot后就开始朝着扩展方向开发,在跟群友吹水时发现群内有个机器人通过响应”签到“指令后就会发送一张涩图并返回签到次数,这个功能挺有意思,就萌生了想实现在SkyBot的想法。后面开始玩BA后,就想着做一个插件,这样就可以天天看的我的学生了。
找图床
这部分没什么好讲的,你去bing或者Google一搜一大把,不过我更推荐Jitsuの随机涩图API | API Docs,嘎嘎方便,方法简单。当然还有很多优秀的图床,这里就不一一举例了。
请求图片示例
根据plugin的示例,完成import和插件注册后就可以制作请求图片的函数了。
# 函数定义,定义get_pixiv_image方法
def get_pixiv_image(self):
while True:
try:
# 发送GET请求获取图床图片
resp = requests.get(url="填你自己的图床接口",
# 将图片转为base64编码
img_base64 = base64.b64encode(resp.content).decode()
# 本人使用的是mirai框架,经供参考
image_msg = mirai.Image(base64=img_base64)
# 返回消息
return [image_msg]
完成该部分后制作指令响应的部分。
# 当收到群消息时触发(照抄开源的,经供参考)
@on(GroupNormalMessageReceived)
def group_normal_message_received(self, event: EventContext, **kwargs):
msg = kwargs['text_message']
if msg == "ba": # 如果消息为ba
# 调用获取随机图片的方法
reply = self.get_pixiv_image()
# 回复消息,包含图片
event.add_return("reply", reply)
上述为核心代码,完成后就可以载入投入使用啦,给大家看看成品。
结尾
首先本篇只是闲得慌写的,觉得文笔差就建议使用ALT+F4,其次实现这个功能不难,没什么技术含量。而且除了转base64编码,还可以直接二进制返回,效率更快,但我技术一般,懒得看也看不懂mirai的Docs,更何况有开源的等着我ctrl+c。有更高效的方法欢迎在评论区指出,大佬轻点喷。在此祝大家新年快乐!