Skip to content

Commit

Permalink
优化聊天记录带日期和群头衔的情况
Browse files Browse the repository at this point in the history
  • Loading branch information
LincZero committed Nov 11, 2022
1 parent 556cd64 commit 9c43d88
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ QQ
{self=自己的昵称 例如群友1 可选, width=要渲染的宽度 可选, max-height=最大渲染高度 超出会边滚动框 可选}
[群友1=群友1的QQ, 群友2=群友2的QQ, 群友3=群友3的QQ 可选 不选就就默认分配头像]
【话唠】云猫猫 2022-11-11 18:38:25
公猫?
群友1 10:38:43
语雀?
Expand Down Expand Up @@ -92,14 +95,19 @@ LincZero:

## 更新日志

### v0.4.1
### v0.4.2(beta)

修复了 QQ聊天记录中带有日期和群头衔情况的正则匹配错误问题

### v0.4.1(20211110)

新增了 支持微信聊天记录的复制

新增了 可以同时指定多个self(己方对象,但只能在设置菜单里设置)

修改了 项目结构,拆分出多个文件,更模块化,更利于后期维护


### v0.4.0(20221109)

新增了 全局设置,可以设置自己的昵称和常用的聊天对象的QQ头像。<br>支持全局设置和局部独立设置
Expand All @@ -108,12 +116,14 @@ LincZero:

修复了 多行信息不换行而是用空格间隔开的bug


### v0.3.6(20221107)

修复了 聊天记录中emoji的向左浮动的bug

新增了 指令:`{max-height:400}`(不要加px),默认值1000,当信息长度超出后会滚动显示,99999为不设置


### v0.3.5(20221105)

新增了 图片显示的支持
Expand All @@ -122,6 +132,7 @@ LincZero:

样式有细微改良


### v0.3.3(20221105)

新增了 根据主题切换样式
Expand All @@ -132,20 +143,24 @@ LincZero:

修复了 消息过短或过长时,样式会出现bug


### v0.3(20221104)

新增了 仿QQ样式。但为了适配样式,修改了html元素结构,不兼容旧版


### v0.2(20221104)

新增了 指令:`{slef:自己的名字}`,头像指定QQ,指定自己的功能


### v0.1(20221104)

修复了 发送的消息不能换行(原插件不支持多行信息)

初始版本,只有最基础的功能,能识别QQ复制过来的聊天记录


### 当前版本已知bug和待新增功能

待新增功能:
Expand Down
9 changes: 6 additions & 3 deletions src/codeBlock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,10 @@ class ChatPatterns {
.join("|")); // 不名正则?
static readonly voice = /<v\s+([^>]+)>([^<]+)<\/v>/; // chat-webvtt模式下的对话检测

static readonly qq_msg = /(.*?)(\s|&nbsp;)([0-2][0-9]:[0-6][0-9]:[0-6][0-9])(\s*?)$/; // 第一个匹配项是名字,第二个是时间(日期先不管),下一行是消息
static readonly qq_chehui = /(.*?)撤回了一条消息/;
// static readonly qq_msg = /(.*?)(\s|&nbsp;)([0-2][0-9]:[0-6][0-9]:[0-6][0-9])(\s*?)$/;
static readonly qq_msg = /(.*?)(\s|&nbsp;)(\d\d\d\d-\d\d-\d\d(\s|&nbsp;))?([0-2][0-9]:[0-6][0-9]:[0-6][0-9])(\s*?)$/; // 分别是:名字 空格 日期空格 时间
static readonly qq_qunTouXian = /【.*?】(.*?$)/
static readonly qq_chehui = /(.*?)撤回了一条消息/;
static readonly qq_jinqyun = /(.*?)加入本群。/;

static readonly wechat_msg = /(.*?)(:\s*?)$/
Expand Down Expand Up @@ -250,7 +252,8 @@ export function chat_qq (
else if (ChatPatterns.qq_msg.test(line)) {
/*el.createEl("p", {text: "===============", cls: ["chat-view-comment", "chat-view-qq-comment"]})
el.createEl("p", {text: line.trim(), cls: ["chat-view-comment", "chat-view-qq-comment"]})*/
const header = line.match(ChatPatterns.qq_msg)[1]
let header = line.match(ChatPatterns.qq_msg)[1]
if (ChatPatterns.qq_qunTouXian.test(header)) header = header.match(ChatPatterns.qq_qunTouXian)[1]; // 如果有群头衔则去除
const continued = index > 0 && line.charAt(0) === lines[index - 1].charAt(0);
const subtext = line.match(ChatPatterns.qq_msg)[2];
let prevHeader = "";
Expand Down

0 comments on commit 9c43d88

Please sign in to comment.