Files
fortern-sql-data/MySQL/qqnt/qqnt.sql
2025-08-29 12:36:30 +08:00

295 lines
11 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
create database fortern_qqnt;
-- https://docs.aaqwq.top/view/db_file_analysis/nt_msg.db.html
-- group_msg_table
create table fortern_qqnt.group_msg_table
(
-- 40001 消息ID具有唯一性
id bigint not null
primary key,
-- 40002 消息随机值,用于对消息去重
msg_random bigint not null,
-- 40003 群聊消息ID在每个聊天中依次递增
msg_seq integer not null,
-- 40010 聊天类型私聊为1群聊为2频道为4公众号为103企业客服为102临时会话为100
chat_type integer not null,
-- 40011 消息类型,详见下表
msg_type integer not null,
-- 40012 pb消息类型详见下表
sub_msg_type integer not null,
-- 40013 发送标志本机发送的消息为1其他客户端发送的为2别人发的消息为0 转发消息为5在已退出或被封禁的消息中为当日整点时间戳
send_type integer not null,
-- 40020 nt_uid, 对应 nt_uid_mapping_table
sender_uid varchar(200) not null,
-- 40026 未知
q40026 integer,
-- 40021 会话ID
peer_uid varchar(200) not null,
-- 40027 会话ID
peer_uin bigint not null,
-- 40040 未知
q40040 integer,
-- 40041 发送状态2为成功0为发送被阻止如不是对方好友1为尚未发送成功比如网络问题3为消息被和谐
send_status integer not null,
-- 40050 发送消息时的时间戳(精确到秒)
msg_time integer not null,
-- 40052 未知
q40052 integer,
-- 40090 发送者群名片,旧版 QQ 迁移数据中格式为 name(12345) 或 name<i@example.com> QQNT 中为群名片
send_member_name varchar(200),
-- 40093 发送者昵称,旧版 QQ 此字段为空QQNT 中未设置群名片时才有此字段
send_nick_name varchar(200) not null,
-- 40800 聊天消息,最为复杂
msg_content mediumblob,
-- 40900 不同情况下存在不一样的数据以列40011为区分。 值为8时列40900存贮转发聊天的缓存值为9时列40900存贮引用的消息
msg_quote mediumblob,
-- 40105 未知
q40105 integer,
-- 40005 只知道自己发的消息一定概率存在数值正常情况为0
q40005 integer,
-- 40058 当日 0 时整的时间戳格式,精确到秒,时区为 UTC+08:00
midnight_timestamp integer not null,
-- 40006 未知
elem_id bigint not null,
-- 40100 @状态
at_status integer,
-- 40600 十六进制。值为 14 00 时,为回复消息,为 6 代表有人回复自己为2代表他人回复他人值为c2e91304a8d114****时(不唯一),为撤回消息
msg_status blob,
-- 40060 已退出或已解散的群聊标志
disband_flag integer,
-- 40850 该消息所回复的消息的序号,默认为 0 或 NULL
reply_to bigint,
-- 40851 未知,默认为 0
q40851 integer,
-- 40601 未知,默认为 NULL
q40601 blob,
-- 40801 未知,默认为 NULL
q40801 blob,
-- 40605 未知,默认为 NULL
q40605 blob,
-- 40030 群号
group_no bigint not null,
-- 40033 消息发送者QQ号
qq_no bigint not null,
-- 40062 存贮详细表态信息(包括表态表情和表态数量),其数字与 QQBOT 中表情编号对应(超级表情不在此列表中)
emoji blob,
-- 40083 表态表情数量总和?
emoji_num integer,
-- 40084 表态表情数量总和?
emoji_num_2 integer not null,
-- 发送者QQ号索引
index qq_no_index (qq_no),
-- 群号与QQ号联合索引
index group_no_index (group_no, qq_no),
-- 时间索引
index msg_time_index (msg_time),
-- 群号与时间的联合索引
index group_msg_time_index (group_no, msg_time),
-- 群号与消息类型的联合索引
index group_msg_type_index (group_no, msg_type, sub_msg_type)
);
-- 40011 msg_type 消息类型
-- 无消息消息损坏多见于已退出群聊且时间久远0
-- 消息空白msgid存在应该是没加载出来1
-- text文本消息2
-- 群文件3
-- 我的聊天记录里没有4~大佬带带>︿<
-- 系统灰字消息5
-- 语音消息6
-- 视频文件7
-- 合并转发消息8
-- 回复类型消息9
-- 红包10
-- 应用消息11
-- 40012 sub_msg_type 区分pb消息类型
-- 非常规text消息0
-- 普通文本消息1
-- 群文件其他类型消息1
-- 图片消息2
-- 群文件图片消息2
-- 群公告3
-- 群文件视频消息4
-- 撤回消息提醒4
-- 群文件音频消息8
-- 原创表情包8
-- 射精消息11
-- 拍一拍消息12
-- 群文件docx消息16
-- 平台文本消息32
-- 群文件pptx消息32
-- 回复类型消息33
-- 群文件xlsx消息64
-- 存在链接161
-- 群文件zip消息512
-- 群文件exe消息2048
-- 表情消息4096
-- msg_type(40011) 与 sub_msg_type(40012) 组合可判断消息类型
-- 由于优先级问题特别是2类别的信息部分消息不满足以下规则
-- 空消息00
-- 已撤回消息10
-- 普通文本类消息21
-- 图片消息22
-- 只带图片的纯文本消息23
-- 纯表情消息216
-- 带表情的纯文本消息217
-- 带图片带表情的纯文本消息219
-- 纯链接消息2129
-- 带表情链接消息2145
-- 机器人消息2577
-- 机器人Markdown消息265
-- @消息235
-- 回复引用消息不带表情233
-- 回复引用消息带表情249
-- 收藏表情22
-- 收藏表情包24096
-- 群文件其他类型消息31
-- 群文件图片pngjpg消息32
-- 群文件视频消息34
-- 群文件音频mp3flac消息38
-- 群文件docx消息316
-- 群文件pptx消息332
-- 群文件xlsx消息364
-- 群文件zip消息3512
-- 群文件exe消息32048
-- 拍一拍消息512
-- 撤回消息提醒54
-- amr语音文件消息60
-- 视频文件消息70
-- 合并转发消息80
-- 回复消息933
-- 回复带图片消息(无@934
-- 回复带图片消息(有@935
-- 回复带图片带@935
-- 回复卡片引用消息949
-- 带表情回复949
-- 带表情带图片带@951
-- 回复存在链接的消息9161
-- 红包100
-- 应用消息如小程序110
-- 群公告113
-- 表情包178
-- 原创表情178
-- c2c_msg_table
create table fortern_qqnt.c2c_msg_table
(
-- 40001 消息ID具有唯一性
id bigint not null
primary key,
-- 40002 消息随机值,用于对消息去重
msg_random bigint not null,
-- 40003 位置
q40003 integer not null,
-- 40010 聊天类型私聊为1群聊为2频道为4公众号为103企业客服为102临时会话为100
chat_type integer not null,
-- 40011 消息类型,详见上表
msg_type integer not null,
-- 40012 pb消息类型详见上表
sub_msg_type integer not null,
-- 40013 发送标志,可能?
send_type integer not null,
-- 40020 未知
q40020 varchar(200) not null,
-- 40026 未知
q40026 integer not null,
-- 40021 未知
q40021 varchar(200) not null,
-- 40027 未知
q40027 integer not null,
-- 40040 未知
q40040 integer not null,
-- 40041 未知
q40041 integer not null,
-- 40050 发送消息时的时间戳(精确到秒)
msg_time integer not null,
-- 40052 未知
q40052 integer not null,
-- 40090 未知
q40090 text,
-- 40093 消息发送者的 QQ 昵称或是备注名
q40093 varchar(200) not null,
-- 40080 消息内容
q40800 mediumblob,
-- 40900 未知
q40900 mediumblob,
-- 40105 未知
q40105 integer not null,
-- 40005 未知
q40005 integer not null,
-- 40058 当日 0 时整的时间戳格式,精确到秒,时区为 UTC+08:00
midnight_timestamp integer not null,
-- 40006 未知
q40006 bigint not null,
-- 40010 未知
q40100 integer not null,
-- 40600 未知
q40600 mediumblob,
-- 40060 未知
q40060 integer not null,
-- 40850 未知
q40850 integer not null,
-- 40851 未知
q40851 integer not null,
-- 40601 未知
q40601 mediumblob,
-- 40801 未知
q40801 mediumblob,
-- 40605 未知
q40605 mediumblob,
-- 40030 对方 QQ 号(无论是对方还是自己发送的消息)
peer_qq_no bigint not null,
-- 40033 发送者的 QQ 号
sender_qq_no bigint not null,
-- 40062 未知
q40062 mediumblob,
-- 40083 未知
q40083 integer not null,
-- 40084 未知
q40084 integer not null,
-- 时间索引
index msg_time_index (msg_time),
-- 私聊者 QQ 号与时间的索引
index qq_no_msg_time_index (peer_qq_no, msg_time)
);
-- group_msg_fts
create table fortern_qqnt.group_msg_fts
(
-- 主键id
id bigint primary key,
-- 消息内容
msg_text mediumtext,
-- 文件名
file_name varchar(250),
-- 41703 未知
q41703 varchar(50),
-- 41704 未知
q41704 varchar(50),
-- 41705 未知
q41705 varchar(50),
-- 41706 未知
q41706 varchar(50),
-- 41707 未知
q41707 varchar(50),
-- 41701 group_msg_table的id的外键
msg_id bigint unique,
-- 40050 发送消息时的时间戳(精确到秒)
msg_time integer not null,
-- 40003 群聊消息ID在每个聊天中依次递增
msg_seq integer not null,
-- 40010 聊天类型私聊为1群聊为2频道为4公众号为103企业客服为102临时会话为100
chat_type integer not null,
-- 40021 会话ID
peer_uid varchar(200) not null,
-- 40027 会话ID
peer_uin bigint not null,
-- 40020 nt_uid, 对应 nt_uid_mapping_table
sender_uid varchar(200) not null,
-- 时间索引
index msg_time_index (msg_time),
-- 群号与时间的联合索引
index group_msg_time_index (peer_uin, msg_time)
);