NoneBot总结
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
文章目录
NoneBot总结
1.自定义环境变量
呃,目前我用这个的作用就是方便管理。
比如我想设置一个全局的变量BOT_ID
表示当前机器人的qq号。
每次编写插件的时候都重写一遍qq号很不方便,考虑用一个变量代替。
在.env.dev
文件下(这里看你.env 使用的是那套环境配置,如果是prod,则在prod下)
BOT_ID=1548638709 #我的机器人qq号
引入该变量的时候,就可以如下面引用。
driver = get_driver()
BOT_ID = str(driver.config.bot_id)
bot = driver.bots[BOT_ID]
2.on_command
最简单的给机器人发送指定的消息,机器人回复指定的消息。
from nonebot import on_command
from nonebot.adapters.cqhttp import Bot, Event
test = on_command('hello', priority=2)
# 测试发送指定消息 机器人回复的内容 注意发送指令时要加/ /hello
@test.handle()
async def hello(bot: Bot, event: Event, state: dict):
await bot.send(
event=event,
message='hello',
)
3.发送图片消息
message = [
{
"type": "text",
"data": {
"text": '今天是' + week_now() + '~\n'
+ '美好的一天从刷题开始~\n'
}
},
{
"type": "image",
"data": {
"file": "https://img2.baidu.com/it/u=2957670248,2456554858&fm=26&fmt=auto&gp=0.jpg",
}
}
]
发送本地图片
基于windows
message=[
{
"type": "image",
"data": {
"file": 'file:///D:/PyProject/spider/qqbot/src/plugins/pic1.png'
}
}
]
利用os模块获取本地图片绝对路径。
file_path = os.path.abspath(__file__)
dir_path =os.path.dirname(file_path)
path = 'file:///' + dir_path + '\\resources\\menu.png'
path = path.replace('\\', '/')
os.path.abspath 获取文件绝对路径。
os.path.dirname 获取文件所在目录绝对路径。
注意如果是反斜杠读取不了,只能用正斜杠。
file:///D:\PyProject\spider\qqbot\src\plugins\resources\menu.png
随机图片的接口
https://source.unsplash.com #随机各种类型
https://api.ixiaowai.cn/ #支持json
https://api.lyiqk.cn/ #支持json 20000+图片
https://acg.yanwz.cn/ #随机动漫图片,无法返回json或跳转url,只能返回图片
https://img.paulzzh.com/ #东方project 支持302和json
https://random.52ecy.cn/ #二次元支持json & 302 有时会404
https://zhuanlan.zhihu.com/p/336053929 #知乎网站收集
使用request获取图片url
注意verify=False
,但是还是会有警告。
如果不喜欢看红色警告,可以加上这样一句话。
requests.packages.urllib3.disable_warnings()
requests.packages.urllib3.disable_warnings()
def get_mc():
url = 'https://api.ixiaowai.cn/mcapi/mcapi.php'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
res = requests.get(url, headers=headers, verify=False)
return res.url
获取图片api实例
web_url = 'https://api.ixiaowai.cn/api/api.php?return=json'
f = Factory.create()
requests.packages.urllib3.disable_warnings()
if __name__ == '__main__':
def fun(url):
headers = {
'user-agent': f.user_agent()
}
r = requests.get(web_url, headers=headers,verify=False)
c = r.text
if c.startswith(u'\ufeff'):
c = c.encode('utf8')[3:].decode('utf8')
j = json.loads(c)
return j['imgurl']
print(fun(web_url))
# {'code': '200', 'imgurl': 'https://tva2.sinaimg.cn/large/0072Vf1pgy1foxk6m2xufj31hc0u0aru.jpg', 'width': '1920', 'height': '1080'}
有趣的随机文本api
http://oddfar.com/archives/49/
4.降低qq风控
-
qq钱包实名认证
不知道我的手机qq实名认证的时候,获取地区失败,如果出现同样的问题,请先下载极速版qq。
-
修改密码
5.定时任务
实例:全天问候。
# 获取当前是星期几
week_list = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
word_list = ['美好的一周从周一开始~\n早上好呀~~\n',
'今天是周二~\n又是元气满满一天~~\n',
'每天起床第一句,先给自己打个气~\n周三早上好~~\n',
'今天是周四~\n不要忘记好好学习噢~~\n',
'今天是周五~\n宜: 学习和刷题~~'
'早上好~~\n周六快乐~~\n',
'今天是周日~\n不要忘记学习和刷题噢~\n']
def week_now():
return week_list[time.localtime().tm_wday]
def word_now():
return word_list[time.localtime().tm_wday]
# MC酱的表情包
url_mc = 'https://api.ixiaowai.cn/mcapi/mcapi.php'
# 风景壁纸
url_scenery = 'https://api.ixiaowai.cn/gqapi/gqapi.php'
requests.packages.urllib3.disable_warnings()
def get_mc(url):
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
}
res = requests.get(url, headers=headers, verify=False)
return res.url
# 定时消息 (全天)
@scheduler.scheduled_job('cron', day_of_week='0-6', hour=8, minute=30)
async def demo():
driver = get_driver()
BOT_ID = str(driver.config.bot_id)
bot = driver.bots[BOT_ID]
group_id = int(driver.config.group_id)
# group_id_1 = int(driver.config.group_id_1)
msg = word_now()
message = [
{
"type": "text",
"data": {
"text": msg
}
},
{
"type": "image",
"data": {
"file": get_mc(url_mc),
}
}
]
await bot.send_group_msg(group_id=group_id, message=message)
6.消息响应
1.群成员增加响应。
一个简单的实例。
# 群成员增加消息响应
GroupIncrease_CS = on_notice()
@GroupIncrease_CS.handle()
async def method(bot: Bot, event: GroupIncreaseNoticeEvent, state: dict):
if event.group_id == group_id_1:
message = [
{
"type": "text",
"data": {
"text": "\n"
}
},
{
"type": "face",
"data": {
"id": "49"
}
},
{
"type": "text",
"data": {
"text": '欢迎你来到CS-21新生群~~'
}
},
{
"type": "face",
"data": {
"id": "49"
}
},
{
"type": "text",
"data": {
"text": '\n入群修改备注:~~\n新生: 21新生xxx\n~~非新生: 班级+姓名'
}
}
]
await bot.send(
event=event,
message=message,
at_sender=True
)
7.linux下的 cqhttp 更新
cd qqbot # 进入到cqhttp对应的目录下
./go-cqhttp update [可指定镜像源]
# 如: ./go-cqhttp update https://github.rc1844.workers.dev
几个可用的镜像源
https://hub.fastgit.org
https://github.com.cnpmjs.org
https://github.bajins.com
https://github.rc1844.workers.dev
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献7条内容
所有评论(0)