From b0d2479f2591e081b24974dfd3a8356cd59f6a8a Mon Sep 17 00:00:00 2001 From: xMohnad Date: Sun, 8 Jun 2025 08:55:45 +0300 Subject: [PATCH] refactor(mmrcms): extract cover URL logic into guessCover helper --- dart/manga/multisrc/mmrcms/mmrcms.dart | 31 +++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/dart/manga/multisrc/mmrcms/mmrcms.dart b/dart/manga/multisrc/mmrcms/mmrcms.dart index e1e257c7..642db1e5 100644 --- a/dart/manga/multisrc/mmrcms/mmrcms.dart +++ b/dart/manga/multisrc/mmrcms/mmrcms.dart @@ -20,11 +20,8 @@ class MMRCMS extends MProvider { final urls = xpath(res, '//*[ @class="chart-title"]/@href'); final names = xpath(res, '//*[ @class="chart-title"]/text()'); List images = []; - for (var url in urls) { - String slug = substringAfterLast(url, '/'); - images.add( - "${source.baseUrl}/uploads/manga/${slug}/cover/cover_250x350.jpg", - ); + for (var mangaUrl in urls) { + images.add(guessCover(mangaUrl)); } for (var i = 0; i < names.length; i++) { @@ -48,11 +45,8 @@ class MMRCMS extends MProvider { final urls = xpath(res, '//*[@class="manga-item"]/h3/a/@href'); final names = xpath(res, '//*[@class="manga-item"]/h3/a/text()'); List images = []; - for (var url in urls) { - String slug = substringAfterLast(url, '/'); - images.add( - "${source.baseUrl}/uploads/manga/${slug}/cover/cover_250x350.jpg", - ); + for (var mangaurl in urls) { + images.add(guessCover(mangaUrl)); } for (var i = 0; i < names.length; i++) { @@ -121,14 +115,10 @@ class MMRCMS extends MProvider { } else { urls = xpath(res, '//div/div/div/a/@href'); names = xpath(res, '//div/div/div/a/text()'); - for (var url in urls) { - String slug = substringAfterLast(url, '/'); - images.add( - "${source.baseUrl}/uploads/manga/${slug}/cover/cover_250x350.jpg", - ); + for (var mangaUrl in urls) { + images.add(guessCover(mangaUrl)); } } - for (var i = 0; i < names.length; i++) { MManga manga = MManga(); manga.name = names[i]; @@ -319,6 +309,15 @@ class MMRCMS extends MProvider { } return "?"; } + + String guessCover(String mangaUrl, {String? url}) { + if (url == null || url?.endsWith("no-image.png")) { + String slug = substringAfterLast(mangaUrl, '/'); + return "${source.baseUrl}/uploads/manga/${slug}/cover/cover_250x350.jpg"; + } else { + return url; + } + } } MMRCMS main(MSource source) {