是否也像拥有自己的机器人呢?
不挨个展示了。
比如说你想实现一个夸人的功能:
""" 作者:川川 时间:2021/4/6 """ from nonebot.adapters.cqhttp import Message, PokeNotifyEvent,Bot from nonebot import on_notice import warnings from nonebot.permission import * import requests warnings.filterwarnings("ignore") from aiocqhttp.exceptions import Error as CQHttpError poke = on_notice() @poke.handle() async def _(bot: Bot, event: PokeNotifyEvent): if event.is_tome() and event.user_id != event.self_id: msg=await kua() chuo = f"[CQ:tts,text={msg}]" try: await poke.send(Message(f"{Message(chuo)}")) except CQHttpError: pass async def kua(): url = "https://chp.shadiao.app/api.php" resp = requests.get(url) return resp.text
或者你也想机器人发送美女图片:
""" 作者:川川 时间:2021/5/5 """ from nonebot.adapters.cqhttp import Message from nonebot import on_keyword,on_notice from nonebot.typing import T_State from nonebot.adapters import Bot, Event import requests, re from aiocqhttp.exceptions import Error as CQHttpError from nonebot.adapters.cqhttp import message,GroupMessageEvent,Message,MessageEvent from nonebot.typing import T_State from nonebot.permission import SUPERUSER yulu = on_keyword({"涩图"},priority=10) @yulu.handle() async def j(bot: Bot, event:message, state: T_State): msg = await mei() try: await yulu.send(Message(msg)) except CQHttpError: pass async def mei(): url = "https://api.66mz8.com/api/rand.img.php?type=美女&format=json" resp = requests.get(url) data = resp.json() ur = data.get("pic_url") tu = f"[CQ:image,file={ur}]" return tu
再或者你想要机器人每天定时给你发天气预报:
""" 作者:川川 时间:2021/5/10 """ from nonebot import require import nonebot import requests scheduler = require("nonebot_plugin_apscheduler").scheduler @scheduler.scheduled_job("cron", hour="12",minute="08", id="sleep4") async def co(): # d = time.strftime("%m-%d %H:%M:%S", time.localtime()) url = "http://apis.juhe.cn/simpleWeather/query?city=上海&key=a8b3dd5052f0e3e2dff14175165500d6" data = requests.get(url=url, timeout=5).json() # to=resp["result"]["future"][0] t = "时间:" + data["result"]["future"][0]["date"] w = "温度:" + data["result"]["future"][0]["temperature"] e = "天气:" + data["result"]["future"][0]["weather"] f = "风向:" + data["result"]["future"][0]["direct"] a = "时间:" + data["result"]["future"][1]["date"] b = "温度:" + data["result"]["future"][1]["temperature"] c = "天气:" + data["result"]["future"][1]["weather"] g = "风向:" + data["result"]["future"][1]["direct"] tu=str(t + " " + w + " " + e + " " + f + " " + a + " " + b + " " + c + " " + g) bot = nonebot.get_bots()["1786691956"] return await bot.call_api("send_msg", **{ "message": "天气预报: {}".format(tu), "user_id": "2835809579" })
当然也有bot源码:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import nonebot from nonebot.adapters.cqhttp import Bot as CQHTTPBot # Custom your logger # # from nonebot.log import logger, default_format # logger.add("error.log", # rotation="00:00", # diagnose=False, # level="ERROR", # format=default_format) # You can pass some keyword args config to init function nonebot.init() app = nonebot.get_asgi() driver = nonebot.get_driver() driver.register_adapter("cqhttp", CQHTTPBot) nonebot.load_builtin_plugins() nonebot.load_from_toml("pyproject.toml") # Modify some config / config depends on loaded configs # # config = driver.config # do something... if __name__ == "__main__": nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!") nonebot.run(app="__mp_main__:app")
当然还有一些配置文件源码,我觉得可能没有多的必要继续发,新手可能看不懂了。大概就
似乎群友玩得挺嗨!
到此这篇关于python制作机器人的实现方法的文章就介绍到这了,更多相关python 机器人内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/weixin_46211269/article/details/117921934