浏览代码

Merge pull request #151 from icewind1991/chapter-recognition-fallback

Fix infinite loop when no chapter number is parsed
inorichi 9 年之前
父节点
当前提交
ff46c61f63

+ 9 - 6
app/src/main/java/eu/kanade/tachiyomi/util/ChapterRecognition.java

@@ -111,12 +111,15 @@ public class ChapterRecognition {
         }
 
         // Strip anything after "part xxx" and try that
-        name = pPart.matcher(name).replaceAll("$1");
-        dummyChapter.name = name;
-        parseChapterNumber(dummyChapter, manga);
-        if (dummyChapter.chapter_number >= 0) {
-            chapter.chapter_number = dummyChapter.chapter_number;
-            return;
+        matcher = pPart.matcher(name);
+        if (matcher.find()) {
+            name = pPart.matcher(name).replaceAll("$1");
+            dummyChapter.name = name;
+            parseChapterNumber(dummyChapter, manga);
+            if (dummyChapter.chapter_number >= 0) {
+                chapter.chapter_number = dummyChapter.chapter_number;
+                return;
+            }
         }
     }
 

+ 7 - 0
app/src/test/java/eu/kanade/tachiyomi/ChapterRecognitionTest.java

@@ -172,4 +172,11 @@ public class ChapterRecognitionTest {
         ChapterRecognition.parseChapterNumber(c, randomManga);
         assertThat(c.chapter_number).isEqualTo(027f);
     }
+
+    @Test
+    public void testUnparsable() {
+        Chapter c = createChapter("Foo");
+        ChapterRecognition.parseChapterNumber(c, randomManga);
+        assertThat(c.chapter_number).isEqualTo(-1f);
+    }
 }