JimHans / bgm.res

A Bangumi Based Light, Functional and Modern Local Anime Manager | 基于bangumi数据库的本地番剧管理、播放与进度同步客户端
GNU General Public License v3.0
39 stars 0 forks source link

关于使用默认刮削器自动收集初始数据 #3

Open skytree2181301 opened 3 months ago

skytree2181301 commented 3 months ago

MainpageArchiveScanner.js 的 183 行

let WorkTempName = store.get("WorkSaveNo"+(Number(LocalStorageMediaBaseNumber)+Number(ScanCounter)).toString()+".Name").toString().match(/(?<=\])(.+?)(?=\[)/g);

使用正则

/(?<=\])(.+?)(?=\[)/g

时可能出现的一些问题。

匹配结果可能不符合预期

例:文件夹名称:[DMG&RoxyLib] 無職転生 [BDRip][1080P][CHS][MP4] 预期匹配结果:無職転生 实际匹配结果: 無職転生 ;[1080P];[CHS]

可能的改进

使用正则

/(?<=\])([^\[]+?)(?=\[)/g

或者

/(?<=\])(.+?)(?!\[)(?=\[)/g

只匹配 ']' 后面跟着非 '[' 字符的字符串。

匹配结果无法用来搜索

例1: 文件夹名称:为美好的世界献上爆炎! 结果:正确搜索 文件夹名称:为美好的世界献上爆炎! //"!"换为"!" 结果:搜索无结果

例2: 文件夹名称:BanG Dream! It’s MyGO!!!!! 结果:搜索无结果 文件夹名称:BanG Dream! It’s MyGO!!!!! //"!"换为"!" 结果:正确搜索 文件夹名称:BanG Dream! It's MyGO!!!!! //"’"换为"'" 结果:正确搜索

可能的改进

可能把半角标点换成全角标点可以解决?

JimHans commented 3 months ago

好主意,我改进一下看看:) 话说上一个问题应该解决了吧,解决了的话我就关闭issue了

skytree2181301 commented 3 months ago

上个问题解决了,重新全局扫描一下就正常了(扫描完之前手动修改的信息没了,又要重新编辑:()。 这个问题把文件夹名称中的标点去掉的话,

1、结果更准确

例(使用作品编辑中的作品数据匹配): 搜索字段:ノーゲーム・ノーライフ 结果:1. ノーゲーム・ノーライフ ゼロ 2. ノーゲーム・ノーライフ 搜索字段:ノーゲームノーライフ 结果:1. ノーゲーム・ノーライフ 2. ノーゲーム・ノーライフ ゼロ

2、搜索无结果

搜索字段:BanG Dream Its MyGO 结果:搜索无结果 搜索字段:BanG Dream It’s MyGO 结果:正确搜索

JimHans commented 3 months ago

上个问题解决了,重新全局扫描一下就正常了(扫描完之前手动修改的信息没了,又要重新编辑:()。 这个问题把文件夹名称中的标点去掉的话,

1、结果更准确

例(使用作品编辑中的作品数据匹配): 搜索字段:ノーゲーム・ノーライフ 结果:1. ノーゲーム・ノーライフ ゼロ 2. ノーゲーム・ノーライフ 搜索字段:ノーゲームノーライフ 结果:1. ノーゲーム・ノーライフ 2. ノーゲーム・ノーライフ ゼロ

2、搜索无结果

搜索字段:BanG Dream Its MyGO 结果:搜索无结果 搜索字段:BanG Dream It’s MyGO 结果:正确搜索

可以,我改一下匹配逻辑