Browse Source

fallback to parsing parts to handle arc numbers

Robin Appelman 9 years ago
parent
commit
bc1ddd4379

+ 13 - 0
app/src/main/java/eu/kanade/tachiyomi/util/ChapterRecognition.java

@@ -94,6 +94,19 @@ public class ChapterRecognition {
 
         // TODO more checks (maybe levenshtein?)
 
+        // try splitting the name in parts an pick the first valid one
+        String[] nameParts = chapter.name.split("-");
+        if (nameParts.length > 1) {
+            Chapter dummyChapter = Chapter.create();
+            for (String part : nameParts) {
+                dummyChapter.name = part;
+                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

@@ -158,4 +158,11 @@ public class ChapterRecognitionTest {
         ChapterRecognition.parseChapterNumber(c, randomManga);
         assertThat(c.chapter_number).isEqualTo(19.2f);
     }
+
+    @Test
+    public void testChapterWithArcNumber() {
+        Chapter c = createChapter("Manga title 123 - Vol 016 Arc title 002");
+        ChapterRecognition.parseChapterNumber(c, randomManga);
+        assertThat(c.chapter_number).isEqualTo(123f);
+    }
 }