qqbot 是一个用 python 实现的、基于腾讯 SmartQQ 协议的 QQ 机器人框架,可运行在 Linux 、 Windows 和 Mac OSX 平台下。

你可以通过扩展 qqbot 来实现:

监控、收集 QQ 消息

自动消息推送

聊天机器人

通过 QQ 远程控制你的设备

# -*- coding: utf-8 -*-

import qqbot

from qqbot import QQBotSlot as qqbotslot, RunBot

from qqbot import _bot as bot

import time

import json

import urllib

keyList = ['捡', '丢', '饭卡', ] # 匹配关键字

def check(keylist, str):

for key in keyList:

if (key in str):

return True

return False

@qqbot.QQBotSlot

def onQQMessage(bot, contact, member, content):

# bot: QQBot对象,提供List / SendTo / Stop / Restart等接口

# contact: QContact对象,消息的发送者,具有ctype / qq / uin / nick / mark / card / name等属性

# member: QContact对象,仅当本消息为群消息或讨论组消息时有效,代表实际发消息的成员

# content: str对象,消息内容

if '@ME' in content: # 如果有人艾特的机器人

message = content.replace('[@ME] ', '')

# 添加名字的ASCII码,能够进行语义的连贯,而不是突兀的开启另外一段对话

asciistr = ''

for i in range(len(member.name)):

asciistr += (str(ord(member.name[i]))) # 组装名字的字符编码,尽量的是唯一的

if i > 3:

break

# 调用图灵机器人,进行对话的回复,如果出现图灵机器人,替换为浮沉沉

bot.SendTo(contact, get_message(message, int(asciistr)).replace('图灵机器人', '浮沉沉'))

elif content == '-stop':

bot.SendTo(contact, 'QQ机器人已关闭')

bot.Stop()

elif check(keyList, content) and member.name != '静默':

# bot.SendTo(contact, '您发送的消息是' + content)

datatime = time.strftime('%Y.%m.%d %H:%M:%S', time.localtime(time.time()))

print('member =', member.name + '', 'contact =', contact.name)

strzz = contact.name + ':' + datatime + " " + member.name + "发送消息:" + content # 组装消息

sendMsgToGroup(strzz, ['测试数据群'], bot)

print(strzz + " contact.mark" + contact.mark)

def sendMsgToGroup(msg, groupList, bot):

# print('向群里发送消息')

for group in groupList:

print('group =', group)

bg = bot.List('group', group)

if bg:

b = bg[0]

bot.SendTo(b, msg)

def sendMsgToBuddy(msg, buddyList, bot):

# print('向好友发送消息')

for buddy in buddyList:

print('buddy', type(buddy), buddy)

bb = bot.List('buddy', buddy)

if bb:

b = bb[0]

bot.SendTo(b, msg)

def main(bot):

groupMsg = '测试消息是发送到群里面的'

buddyMsg = '测试消息是发送给好友的'

# print('os.getcwd()', os.getcwd())

with open('./qq.txt', 'r', encoding='UTF-8') as fr:

qqGroup = fr.readline().strip()

qqBuddy = fr.readline().strip()

print('fr', fr, '\nqqGroup =', qqGroup, '\nqqBuddy', qqBuddy)

qqGroupList = qqGroup.split(',')

qqBuddyList = qqBuddy.split(',')

# sendMsgToGroup(groupMsg, qqGroupList, bot)

# sendMsgToBuddy(buddyMsg, qqBuddyList, bot)

def get_message(message, userid):

tuling = '2581f443bf364fd8a927fe87832e3d33' # 图灵机器人的id(用户自己创建的)

api_url = "http://openapi.tuling123.com/openapi/api/v2" # API接口调用

req = {

"perception":

{

"inputText":

{

"text": message

},

"selfInfo":

{

"location":

{

"city": "深圳",

"province": "广州",

"street": "XXX"

}

}

},

"userInfo":

{

"apiKey": tuling,

"userId": userid

}

}

req = json.dumps(req).encode('utf8')

http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'})

response = urllib.request.urlopen(http_post) # 得到网页HTML代码

response_str = response.read().decode('utf8') # 将网页的代码转化为UTF-8 处理 避免乱码

response_dic = json.loads(response_str) # 将得到的json格式的信息转换为Python的字典格式

results_text = response_dic['results'][0]['values']['text']

return results_text

if __name__=='__main__':

bot.Login(['-q', '710469775'])

# main(bot)

RunBot()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python开发qq聊天机器人_Python qqbot 实现qq机器人的示例代码相关推荐

  1. python中case的用法_python中Switch/Case实现的示例代码

    python 的 python中Switch/Case实现的示例代码 学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现 ...

  2. python合并音频和视频_ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码

    安装 官网下载 选择需要的版本 将解压后得到的以下几个文件放置在E:\FFmpeg下 环境变量 此电脑--属性--高级系统设置--环境变量 在系统变量(也就是下面那一半)处找到新建,按如下所示的方法填 ...

  3. python qq聊天机器人_Python QQBot库的QQ聊天机器人

    本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下 1.安装 pip install qqbot 2.主动发出消息 from qqbot import ...

  4. python开发工程师岗位简介_python开发工程师是什么

    第86页-Python教程_Python图文教程-php中文网  https://www.php.cn/python-tutorials.html?p=86 python开发工程师是指运用Python ...

  5. python实现微信自动发信息_Python实现企业微信机器人每天定时发消息实例

    1.背景 由于办公需要"每天定时推送某消息用来提醒群里面所有人",于是决定用企业微信自带的机器人来实现此功能.具体方法我来一一讲述. 2.企业微信API 3.想法 想到几种方式: ...

  6. python开发网络小工具_Python集成网络诊断小工具(含有ping,tracert,tcping等小工具)...

    之前在一家IDC公司实习,负责服务器售后方面的,经常要使用ping,tracert,tcping等命令做些初步的诊断,判断服务器问题出在哪方面.于是就想集成这些常用的命令或工具到一个GUI界面中,实现 ...

  7. python开发环境比较好_python开发环境比较好,python 集成开发环境哪个好

    python 集成开发环境哪个好 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提 ...

  8. python开发专属表情包_Python开发个人专属表情包网站

    "表情包"是一种利用图片来表示感情的一种方式.表情包是在社交软件活跃之后,形成的一种流行文化,表情包流行于互联网上面,基本人人都会发表情. 曾经你是否也有过找不到表情包去应对别人的 ...

  9. python多人聊天室_Python基于Socket实现简易多人聊天室

    前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...

最新文章

  1. WKWebView免登陆,配置cookie
  2. change事件判断ajax,jquery中change事件里面if语句失效
  3. 将session维护在客户端
  4. .NET Core 如何判断程序是否在远程桌面(RDP)下运行
  5. 一文讲清数据治理、数据管理、数据资产管理区别,数据专家必看
  6. 一篇图像识别的科普文
  7. Git和Github实现代码同步
  8. Oracle Dataguard 管理命令
  9. Maven安装与配置
  10. 电梯新时达系统服务器密码,国内主要电梯主板密码及变频器密码
  11. 使用软件测试路由器性能报告,路由器软件测试报告.doc
  12. visio如何改变折线箭头拐弯方向
  13. 连接计算机和网线之间的设备,网线的制作及双绞线与设备之间的连接方法
  14. 元数据管理实践数据血缘
  15. 公有云Docker镜像P2P加速之路:安全篇
  16. 计算机伦理问题论文,仲伟民:论文写作中的学术伦理问题
  17. 在蚂蚁金服上班是一种什么体验?分享一下我的蚂蚁保险面经,以及我的面试感悟。
  18. 智华计算机终端无法卸载,智华天成V1.0计算机终端保密检查系统软件 国密装备目录**...
  19. 2020上海ICPC现场赛 C Sum of Log
  20. 【毕设教程】单片机RFID模块的使用 - 物联网 嵌入式 毕业设计 stm32

热门文章

  1. 企业为什么要做软文营销
  2. 编译原理第一个项目——个人所得税PersonalTax
  3. JavaScript百炼成仙 1.15 天秀
  4. 关于LCD1602单独清除某一行的问题
  5. opencvjs 磨皮美颜
  6. Python-Opencv中高斯噪点和高斯模糊
  7. 利用 sqlplus spool 实现oracle 导出 csv 文件
  8. 适合大学生浏览的网站
  9. 有效的沟通,如忍者的最后一击!
  10. 《代码整洁之道》阅读笔记——第12章:迭进