fix(eh): 标题不再带 " - Tags",并附批量改名脚本
meta description 的真实格式是 "Free Hentai Misc Gallery: <title> - Tags: a, b, c" 旧正则 `Gallery:\s*([^:]+):` 里的 [^:]+ 是贪婪的, 一路吃到标签段自己的冒号为止,把 " - Tags" 也吞进了标题, 导致下载目录/文件名结尾凭空多出 " - Tags"。 改为显式认 " - Tags:" 这个分隔符(Tags 段可选,无标签时认行尾), reTitleSuffix 同时认 Tags 结尾,提取后再兜底剥一次。 线上实测(g/4239272):标题由 "Hinata l Boruto (CriticalHAI) [AI Generated] - Tags" 变为 "Hinata l Boruto (CriticalHAI) [AI Generated]" 附带 remove-tags-suffix.bat/.ps1:递归去掉已有压缩包文件名结尾的 " - Tags",覆盖 zip/rar/7z/cbz/cbr/cb7/tar/gz,幂等。
This commit is contained in:
+8
-3
@@ -156,7 +156,7 @@ type Gallery struct {
|
||||
var (
|
||||
reTitleTag = regexp.MustCompile(`(?is)<title>(.*?)</title>`)
|
||||
reMetaDesc = regexp.MustCompile(`(?i)<meta\s+name="description"\s+content="([^"]*)"`)
|
||||
reTitleSuffix = regexp.MustCompile(`(?i)\s*-\s*E-Hentai Galleries\s*$`)
|
||||
reTitleSuffix = regexp.MustCompile(`(?i)\s*-\s*(?:E-Hentai Galleries|Tags)\s*$`)
|
||||
reTotal = regexp.MustCompile(`(?i)Showing\s+\d+\s*-\s*\d+\s+of\s+(\d+)\s+images`)
|
||||
// <a href="/s/xxx"><div title="Page 1: 原名"
|
||||
reThumbLink = regexp.MustCompile(`(?is)<a\s+href="((?:https://e-hentai\.org)?/s/[^"]+)"[^>]*>\s*<div\s+title="Page\s+(\d+):\s*([^"]*)"`)
|
||||
@@ -164,7 +164,11 @@ var (
|
||||
reArtistBracket = regexp.MustCompile(`^\s*\[([^\]]{1,60})\]\s*`)
|
||||
reGroupParen = regexp.MustCompile(`\(([^)]{1,60})\)`)
|
||||
reCatFromDesc = regexp.MustCompile(`(?i)Hentai\s+([A-Za-z]+)\s+Gallery`)
|
||||
reTitleFromDesc = regexp.MustCompile(`Gallery:\s*([^:]+):`)
|
||||
// meta description 形如:
|
||||
// "Free Hentai Misc Gallery: <title> - Tags: a, b, c"
|
||||
// 标题的结束边界优先认 " - Tags:"(标签段);没有 Tags 段时认行尾。
|
||||
// ⚠️ 别用 `Gallery:\s*([^:]+):` —— 那个会把 " - Tags" 一起吞进标题。
|
||||
reTitleFromDesc = regexp.MustCompile(`(?is)Gallery:\s*(.*?)(?:\s*-\s*Tags\s*:|\s*$|[.:]\s+\d+\s+images\b)`)
|
||||
reRestricted = regexp.MustCompile(`(?i)Login Required|restricted|Sad Panda`)
|
||||
|
||||
// #taglist 的每一行:<td class="tc">artist:</td><td><div class="gtl"><a ...>Noxe</a>...</td>
|
||||
@@ -545,7 +549,8 @@ func (c *Client) FetchGalleryPage(ctx context.Context, gid, token string, onProg
|
||||
}
|
||||
if m := reMetaDesc.FindStringSubmatch(html); m != nil {
|
||||
if nm := reTitleFromDesc.FindStringSubmatch(DecodeEntities(m[1])); nm != nil {
|
||||
title = strings.TrimSpace(nm[1])
|
||||
// 保险:再剥一次尾部 " - Tags"(有些页面 desc 里 Tags 前无空格)
|
||||
title = strings.TrimSpace(reTitleSuffix.ReplaceAllString(nm[1], ""))
|
||||
}
|
||||
}
|
||||
if m := reTotal.FindStringSubmatch(html); m != nil {
|
||||
|
||||
Reference in New Issue
Block a user