# 小苦瓜-基于Django的QQ机器人 **Repository Path**: jixiaob/xiaokugua ## Basic Information - **Project Name**: 小苦瓜-基于Django的QQ机器人 - **Description**: 基于Django和cqhttp的机器人 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-10-08 - **Last Updated**: 2023-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小苦瓜-基于Django的QQ机器人 #### 介绍 基于Django和cqhttp的机器人 发现cqhttp可以设置反向post接收信息,刚好当时学习了部分django,于是一时兴起就写了小苦瓜。 第一个功能就是戳一戳名言板(hitokoto) 很多功能都是实验性的,瞎写着玩的,随便一看就好。 #### 安装教程 基础功能仅需要Django,不过我在robot_plugins里面写了好多拓展插件,每一个插件都以一个函数的形式写在了里面,如果用不到的话可以注释掉防止他说你没这库没那库你又不想下( #### 使用说明 1. 克隆项目到本地 2. 修改views.py和robot_plugins.py的内容,注释掉用到不想安装的库的功能 3. 配置cqhttp ```yaml # 添加方式,同一连接方式可添加多个,具体配置说明请查看文档 #- http: # http 通信 #- ws: # 正向 Websocket #- ws-reverse: # 反向 Websocket #- pprof: #性能分析服务器 # HTTP 通信设置 - http: # 服务端监听地址 host: 0.0.0.0 # 服务端监听端口 port: 2333 # 反向HTTP超时时间, 单位秒 # 最小值为5,小于5将会忽略本项设置 timeout: 20 middlewares: <<: *default # 引用默认中间件 # 反向HTTP POST地址列表 post: - url: 'http://127.0.0.1:8000/request_test/' # 地址 # secret: '' # 密钥 #- url: 127.0.0.1:2223 # 地址 # secret: '' # 密钥 ``` 4. 配置views里面的cqhttp地址和大群群号(用于一键生成名单) #### 功能介绍 ##### 1.接口1【一键踢人】 接口地址: /kick_off 必选参数: 单个踢人: q_card:群名片 批量踢人: q_card_list:群名片列表,两边用方括号,中间群名片用英文逗号隔开 调用例子:/robot/kick_off?q_card=开发-数科2105-小明 或/robot/kick_off?q_card_list=[Python-张三-数科2004,Python-李四-航空2001,Python-王五-软件2029] 返回示例: ```json {"code": 200, "msg": "Success", "data": {"success_list": [], "failed_list": ["开发-数科2105-小明"], "blank_card_list": [123456,1234566,4564564,475815]}} ``` 或 ```json {"code": 200, "msg": "Success", "data": {"success_list": ["Python-张三-数科2004", "Python-李四-软件2029"], "failed_list": ["Python-王五-航空2001"], "blank_card_list": [123456, 1234567, 123145578]}} ``` >success_list:成功的列表。failed_list:失败的列表。blank_card_list:没有群名片的QQ号列表。 >失败一般是由于群名片未设置或者群名片输入错误导致 错误返回: ```json {"code": 400, "msg": "Bad Request", "info": "参数错误。q_card参数缺失。"} {"code": 500, "msg": "Server Error", "info": "群聊不存在,请检查群号设置和机器人是否已加群!"} ``` ##### 2.接口2【一键获取大群成员数据】 可以正则匹配群名片,一键查看格式是否正确 接口地址: /get_info 可选参数: 生成未改群名片的一键艾特连接: cq:是否生成艾特的cq码链接 保存为csv表格文件: file:将数据保存为csv表哥五年级 调用例子:/get_info /get_info?cq=1 或/get_info?file=1 ##### 3.交互功能1【戳一戳名言板】 对应代码的def poke_hitokoto(text) 使用唧唧的名言板接口,当机器人接收到戳一戳的消息时就会自动请求这个接口并发送。 ##### 4.交互功能2【迎新群反广告】 对应代码def auto_ban_ad(text) 自动根据关键词检测迎新群的广告,会自动撤回,禁言发广告的人,还会通知管理员一键踢出 ##### 5.交互功能3【生成国庆头像】 对应代码def get_red_head(text) 采用腾讯的头像接口获取当前qq的头像 然后使用pillow库合成头像 ##### 6.交互功能4【私聊闪照】 对应代码def show_flash_image(text) 现在在PC版QQ上可以转发闪照消息(你看着那条消息是“请使用手机QQ查看闪照”,但是实际上那条消息是可以转发的) 可以在PC上把闪照消息私聊转发给小苦瓜,小苦瓜会自动解析出来闪照图片然后发给你 ##### 7.交互功能5【群聊闪照提醒】 对应代码def show_group_flash_image(text, mode=2) mode三种模式,模式1直接发图,模式2不发图只发图片的文件名、大小、链接等详细信息,模式3两个都发 ##### 8.交互功能6【随机图】 对应代码def get_random_setu(text) 已实现白名单、关键词限制、指定标签等多种功能,并且接入了数个接口。 ##### 9.交互功能7【太理bot】 对应代码def tyut_bot(text) 基于[pytyut](https://gitee.com/jixiaob/pytyut)实现,可以登录、查询近期考试安排、查询近期考试成绩等。 ##### 10.交互功能8【原神私服状态查看】 对应代码def game_server_info(text) 可以获取当前原神私服的状态信息,内存占用、CPU占用、在线人数、当前版本等。 ##### 11.交互功能9【入群欢迎、退群提醒】 对应代码def group_in_out_plugin(text) 可以自定义每个群不同的入群欢迎文本或者退群提醒文本,支持cq码。 ##### 12.交互功能10【logo生成】 对应代码def logo_create(text) 可以生成youtube风格、p站风格、谷歌风格的自定义文本的图片