Skip to content

Commit 4762050

Browse files
committed
v3.4.7 修复当标题含有换行符时格式化异常的问题
1 parent 528da91 commit 4762050

File tree

5 files changed

+44
-49
lines changed

5 files changed

+44
-49
lines changed

changelog.en_US.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
# Change Logs
55

6+
## v3.4.7 2025-07-18
7+
8+
👻 Fix formatting exception when title contains line breaks
9+
610
## v3.4.6 2025-06-24
711

812
🆕 Add login toggle

changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33

44
# 变更日志
55

6+
## v3.4.7 2025-07-18
7+
8+
👻 修复当标题含有换行符时格式化异常的问题
9+
610
## v3.4.6 2025-06-24
711

812
🆕 新增登录开关

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<!-- 项目信息 -->
1212
<groupId>com.lckp</groupId>
1313
<artifactId>jproxy</artifactId>
14-
<version>3.4.6</version>
14+
<version>3.4.7</version>
1515
<name>JProxy</name>
1616
<description>介于 Sonarr/Radarr 和 Jackett/Prowlarr 之间的代理,主要用于优化查询和提升识别率</description>
1717
<!-- 依赖版本 -->

src/main/java/com/lckp/jproxy/service/impl/RadarrIndexerServiceImpl.java

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,30 @@
11
package com.lckp.jproxy.service.impl;
22

3-
import java.util.ArrayList;
4-
import java.util.Iterator;
5-
import java.util.List;
6-
import java.util.Map;
7-
import java.util.concurrent.ConcurrentHashMap;
8-
import java.util.regex.Matcher;
9-
import java.util.regex.Pattern;
10-
11-
import org.apache.commons.lang3.StringUtils;
12-
import org.dom4j.Document;
13-
import org.dom4j.DocumentException;
14-
import org.dom4j.DocumentHelper;
15-
import org.dom4j.Element;
16-
import org.springframework.cache.annotation.Cacheable;
17-
import org.springframework.stereotype.Service;
18-
19-
import com.lckp.jproxy.constant.ApiField;
20-
import com.lckp.jproxy.constant.CacheName;
21-
import com.lckp.jproxy.constant.SystemConfigKey;
22-
import com.lckp.jproxy.constant.TableField;
23-
import com.lckp.jproxy.constant.Token;
3+
import com.lckp.jproxy.constant.*;
244
import com.lckp.jproxy.entity.RadarrRule;
255
import com.lckp.jproxy.entity.RadarrTitle;
266
import com.lckp.jproxy.service.IRadarrIndexerService;
277
import com.lckp.jproxy.service.IRadarrRuleService;
288
import com.lckp.jproxy.service.IRadarrTitleService;
299
import com.lckp.jproxy.service.ISystemConfigService;
3010
import com.lckp.jproxy.util.FormatUtil;
31-
3211
import lombok.RequiredArgsConstructor;
3312
import lombok.extern.slf4j.Slf4j;
13+
import org.apache.commons.lang3.StringUtils;
14+
import org.dom4j.Document;
15+
import org.dom4j.DocumentException;
16+
import org.dom4j.DocumentHelper;
17+
import org.dom4j.Element;
18+
import org.springframework.cache.annotation.Cacheable;
19+
import org.springframework.stereotype.Service;
20+
21+
import java.util.ArrayList;
22+
import java.util.Iterator;
23+
import java.util.List;
24+
import java.util.Map;
25+
import java.util.concurrent.ConcurrentHashMap;
26+
import java.util.regex.Matcher;
27+
import java.util.regex.Pattern;
3428

3529
/**
3630
* <p>
@@ -127,6 +121,8 @@ public String executeFormatRule(String xml) {
127121
Element item = items.next();
128122
Element titleElement = item.element(ApiField.INDEXER_TITLE);
129123
String text = titleElement.getText();
124+
// 去除换行
125+
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
130126
String newText = radarrTitleService.formatTitle(text, format, cleanTitleRegex, tokenRuleMap,
131127
radarrTitleList);
132128
if (newText.contains("{" + Token.TITLE + "}")) {

src/main/java/com/lckp/jproxy/service/impl/SonarrIndexerServiceImpl.java

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.lckp.jproxy.service.impl;
22

3-
import java.util.ArrayList;
4-
import java.util.Iterator;
5-
import java.util.List;
6-
import java.util.Map;
7-
import java.util.concurrent.ConcurrentHashMap;
8-
import java.util.regex.Matcher;
9-
import java.util.regex.Pattern;
10-
3+
import com.lckp.jproxy.constant.*;
4+
import com.lckp.jproxy.entity.SonarrRule;
5+
import com.lckp.jproxy.entity.SonarrTitle;
6+
import com.lckp.jproxy.entity.TmdbTitle;
7+
import com.lckp.jproxy.service.*;
8+
import com.lckp.jproxy.util.FormatUtil;
9+
import lombok.RequiredArgsConstructor;
10+
import lombok.extern.slf4j.Slf4j;
1111
import org.apache.commons.lang3.StringUtils;
1212
import org.dom4j.Document;
1313
import org.dom4j.DocumentException;
@@ -17,24 +17,13 @@
1717
import org.springframework.cache.annotation.Cacheable;
1818
import org.springframework.stereotype.Service;
1919

20-
import com.lckp.jproxy.constant.ApiField;
21-
import com.lckp.jproxy.constant.CacheName;
22-
import com.lckp.jproxy.constant.SystemConfigKey;
23-
import com.lckp.jproxy.constant.TableField;
24-
import com.lckp.jproxy.constant.Token;
25-
import com.lckp.jproxy.entity.SonarrRule;
26-
import com.lckp.jproxy.entity.SonarrTitle;
27-
import com.lckp.jproxy.entity.TmdbTitle;
28-
import com.lckp.jproxy.service.ISonarrIndexerService;
29-
import com.lckp.jproxy.service.ISonarrRuleService;
30-
import com.lckp.jproxy.service.ISonarrTitleService;
31-
import com.lckp.jproxy.service.ISystemCacheService;
32-
import com.lckp.jproxy.service.ISystemConfigService;
33-
import com.lckp.jproxy.service.ITmdbTitleService;
34-
import com.lckp.jproxy.util.FormatUtil;
35-
36-
import lombok.RequiredArgsConstructor;
37-
import lombok.extern.slf4j.Slf4j;
20+
import java.util.ArrayList;
21+
import java.util.Iterator;
22+
import java.util.List;
23+
import java.util.Map;
24+
import java.util.concurrent.ConcurrentHashMap;
25+
import java.util.regex.Matcher;
26+
import java.util.regex.Pattern;
3827

3928
/**
4029
* <p>
@@ -123,6 +112,8 @@ public String executeFormatRule(String xml) {
123112
Element item = items.next();
124113
Element titleElement = item.element(ApiField.INDEXER_TITLE);
125114
String text = titleElement.getText();
115+
// 去除换行
116+
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
126117
String newText = sonarrTitleService.formatTitle(text, format, cleanTitleRegex,
127118
tokenRuleMap.get(Token.TITLE), sonarrTitleList);
128119
if (newText.contains("{" + Token.TITLE + "}")) {

0 commit comments

Comments
 (0)