-
Notifications
You must be signed in to change notification settings - Fork 8
/
chatlog.py
91 lines (78 loc) · 3.62 KB
/
chatlog.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# -*- coding: utf-8 -*-
import pymysql
import datetime
# 如果不希望加载本插件,可以在配置文件中的 plugins 选项中删除 qqbot.plugins.chatlog
from qqbot.utf8logger import DEBUG
def onInit(bot):
# 初始化时被调用
# 注意 : 此时 bot 尚未启动,因此请勿在本函数中调用 bot.List/SendTo/GroupXXX/Stop/Restart 等接口
# 只可以访问配置信息 bot.conf
# bot : QQBot 对象
DEBUG('ON-INIT : qqbot.plugins.sampleslots')
def onQrcode(bot, pngPath, pngContent):
# 获取到二维码时被调用
# 注意 : 此时 bot 尚未启动,因此请勿在本函数中调用 bot.List/SendTo/GroupXXX/Stop/Restart 等接口
# 只可以访问配置信息 bot.conf
# bot : QQBot 对象
# pngPath : 二维码图片路径
# pngContent : 二维码图片内容
DEBUG('ON-QRCODE: %s (%d bytes)', pngPath, len(pngContent))
def onQQMessage(bot, contact, member, content):
# 当收到 QQ 消息时被调用
# bot : QQBot 对象,提供 List/SendTo/GroupXXX/Stop/Restart 等接口,详见文档第五节
# contact : QContact 对象,消息的发送者
# member : QContact 对象,仅当本消息为 群或讨论组 消息时有效,代表实际发消息的成员
# content : str 对象,消息内容
if contact.ctype == 'group':
insertChatContent(bot,contact,member,content)
def onInterval(bot):
# 每隔 5 分钟被调用
# bot : QQBot 对象,提供 List/SendTo/GroupXXX/Stop/Restart 等接口,详见文档第五节
DEBUG('INTERVAL')
def onStartupComplete(bot):
# 启动完成时被调用
# bot : QQBot 对象,提供 List/SendTo/GroupXXX/Stop/Restart 等接口,详见文档第五节
DEBUG('START-UP-COMPLETE')
def onUpdate(bot, tinfo):
# 某个联系人列表更新时被调用
# bot : QQBot 对象,提供 List/SendTo/GroupXXX/Stop/Restart 等接口,详见文档第五节
# tinfo : 联系人列表的代号,详见文档中关于 bot.List 的第一个参数的含义解释
DEBUG('ON-UPDATE: %s', tinfo)
def onPlug(bot):
# 本插件被加载时被调用,提供 List/SendTo/GroupXXX/Stop/Restart 等接口,详见文档第五节
# 提醒:如果本插件设置为启动时自动加载,则本函数将延迟到登录完成后被调用
# bot : QQBot 对象
DEBUG('ON-PLUG : qqbot.plugins.sampleslots')
def onUnplug(bot):
# 本插件被卸载时被调用
# bot : QQBot 对象,提供 List/SendTo/GroupXXX/Stop/Restart 等接口,详见文档第五节
DEBUG('ON-UNPLUG : qqbot.plugins.sampleslots')
def onExpire(bot):
# 登录过期时被调用
# 注意 : 此时登录已过期,因此请勿在本函数中调用 bot.List/SendTo/GroupXXX/Stop/Restart 等接口
# 只可以访问配置信息 bot.conf
# bot : QQBot 对象
DEBUG('ON-EXPIRE')
def insertChatContent(bot,contact,member,content):
# 连接数据库
connect = pymysql.Connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='qq_data',
charset='utf8'
)
# 获取游标
cursor = connect.cursor()
now = datetime.datetime.now()
createtime=now.strftime('%Y-%m-%d %H:%M:%S')
# 插入数据
sql = "INSERT INTO chat_logs (group_number,group_name,qq,nickname,mark,content,create_time) VALUES ( '%s', '%s', '%s','%s','%s', '%s', '%s')"
name = pymysql.escape_string(contact.name)
nickname = pymysql.escape_string(member.name)
mark = pymysql.escape_string(member.name)
data = (contact.qq,name,member.qq,nickname,mark,content,createtime)
cursor.execute(sql % data)
connect.commit()
print('insert success', cursor.rowcount, ' record')