mirror of
https://github.com/kodjodevf/mangayomi-extensions.git
synced 2026-02-14 10:51:17 +00:00
Merge branch 'feature/novel' into feature/light-novel
This commit is contained in:
@@ -7,7 +7,7 @@ Source _frenchanimeSource = Source(
|
|||||||
baseUrl: "https://french-anime.com",
|
baseUrl: "https://french-anime.com",
|
||||||
lang: "fr",
|
lang: "fr",
|
||||||
typeSource: "datalifeengine",
|
typeSource: "datalifeengine",
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
iconUrl:
|
iconUrl:
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/src/frenchanime/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/src/frenchanime/icon.png",
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Source _wiflixSource = Source(
|
|||||||
baseUrl: "https://wiflix-hd.vip",
|
baseUrl: "https://wiflix-hd.vip",
|
||||||
lang: "fr",
|
lang: "fr",
|
||||||
typeSource: "datalifeengine",
|
typeSource: "datalifeengine",
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
iconUrl:
|
iconUrl:
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/src/wiflix/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/datalifeengine/src/wiflix/icon.png",
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Source _dopeboxSource = Source(
|
|||||||
baseUrl: "https://dopebox.to",
|
baseUrl: "https://dopebox.to",
|
||||||
lang: "en",
|
lang: "en",
|
||||||
typeSource: "dopeflix",
|
typeSource: "dopeflix",
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
iconUrl:
|
iconUrl:
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/src/dopebox/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/src/dopebox/icon.png",
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Source _sflixSource = Source(
|
|||||||
baseUrl: "https://sflix.to",
|
baseUrl: "https://sflix.to",
|
||||||
lang: "en",
|
lang: "en",
|
||||||
typeSource: "dopeflix",
|
typeSource: "dopeflix",
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
iconUrl:
|
iconUrl:
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/src/sflix/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/dopeflix/src/sflix/icon.png",
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Source _aniwatchSource = Source(
|
|||||||
id: 814067600,
|
id: 814067600,
|
||||||
name: "HiAnime",
|
name: "HiAnime",
|
||||||
baseUrl: "https://hianime.to",
|
baseUrl: "https://hianime.to",
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
lang: "en",
|
lang: "en",
|
||||||
typeSource: "zorotheme",
|
typeSource: "zorotheme",
|
||||||
iconUrl:
|
iconUrl:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Source _kaidoSource = Source(
|
|||||||
name: "Kaido.to",
|
name: "Kaido.to",
|
||||||
baseUrl: "https://kaido.to",
|
baseUrl: "https://kaido.to",
|
||||||
lang: "en",
|
lang: "en",
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
typeSource: "zorotheme",
|
typeSource: "zorotheme",
|
||||||
iconUrl:
|
iconUrl:
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/zorotheme/src/kaido/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/multisrc/zorotheme/src/kaido/icon.png",
|
||||||
|
|||||||
@@ -28,6 +28,6 @@ List<Source> _animeworldindiaSourcesList = _languages
|
|||||||
typeSource: "multiple",
|
typeSource: "multiple",
|
||||||
iconUrl: _iconUrl,
|
iconUrl: _iconUrl,
|
||||||
version: _animeworldindiaVersion,
|
version: _animeworldindiaVersion,
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
sourceCodeUrl: _animeworldindiaSourceCodeUrl))
|
sourceCodeUrl: _animeworldindiaSourceCodeUrl))
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -15,5 +15,5 @@ Source _nyaaSource = Source(
|
|||||||
typeSource: "torrent",
|
typeSource: "torrent",
|
||||||
iconUrl: _iconUrl,
|
iconUrl: _iconUrl,
|
||||||
version: _nyaaVersion,
|
version: _nyaaVersion,
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
sourceCodeUrl: _nyaaSourceCodeUrl);
|
sourceCodeUrl: _nyaaSourceCodeUrl);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _okanimeSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/ar/okanime/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/ar/okanime/icon.png",
|
||||||
sourceCodeUrl: _okanimeSourceCodeUrl,
|
sourceCodeUrl: _okanimeSourceCodeUrl,
|
||||||
version: _okanimeVersion,
|
version: _okanimeVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _animetoast = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/de/animetoast/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/de/animetoast/icon.png",
|
||||||
sourceCodeUrl: _animetoastCodeUrl,
|
sourceCodeUrl: _animetoastCodeUrl,
|
||||||
version: _animetoastVersion,
|
version: _animetoastVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _animepaheSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/animepahe/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/animepahe/icon.png",
|
||||||
sourceCodeUrl: _animepaheSourceCodeUrl,
|
sourceCodeUrl: _animepaheSourceCodeUrl,
|
||||||
version: _animepaheVersion,
|
version: _animepaheVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _dramacoolSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/dramacool/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/dramacool/icon.png",
|
||||||
sourceCodeUrl: _dramacoolSourceCodeUrl,
|
sourceCodeUrl: _dramacoolSourceCodeUrl,
|
||||||
version: _dramacoolVersion,
|
version: _dramacoolVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _gogoanimeSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/gogoanime/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/gogoanime/icon.png",
|
||||||
sourceCodeUrl: _gogoanimeSourceCodeUrl,
|
sourceCodeUrl: _gogoanimeSourceCodeUrl,
|
||||||
version: _gogoanimeVersion,
|
version: _gogoanimeVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _kisskhSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/kisskh/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/kisskh/icon.png",
|
||||||
sourceCodeUrl: _kisskhSourceCodeUrl,
|
sourceCodeUrl: _kisskhSourceCodeUrl,
|
||||||
version: _kisskhVersion,
|
version: _kisskhVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _nineanimetv = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/nineanimetv/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/nineanimetv/icon.png",
|
||||||
sourceCodeUrl: _nineanimetvCodeUrl,
|
sourceCodeUrl: _nineanimetvCodeUrl,
|
||||||
version: _nineanimetvVersion,
|
version: _nineanimetvVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _uhdmoviesSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/uhdmovies/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/en/uhdmovies/icon.png",
|
||||||
sourceCodeUrl: _uhdmoviesSourceCodeUrl,
|
sourceCodeUrl: _uhdmoviesSourceCodeUrl,
|
||||||
version: _uhdmoviesVersion,
|
version: _uhdmoviesVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _animeonlineninjaSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/es/animeonlineninja/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/es/animeonlineninja/icon.png",
|
||||||
sourceCodeUrl: _animeonlineninjaSourceCodeUrl,
|
sourceCodeUrl: _animeonlineninjaSourceCodeUrl,
|
||||||
version: _animeonlineninjaVersion,
|
version: _animeonlineninjaVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _animesama = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesama/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesama/icon.png",
|
||||||
sourceCodeUrl: animesamaCodeUrl,
|
sourceCodeUrl: animesamaCodeUrl,
|
||||||
version: animesamaVersion,
|
version: animesamaVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,5 +13,5 @@ Source _animesultraSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesultra/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/animesultra/icon.png",
|
||||||
sourceCodeUrl: _animesultraSourceCodeUrl,
|
sourceCodeUrl: _animesultraSourceCodeUrl,
|
||||||
version: _animesultraVersion,
|
version: _animesultraVersion,
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
isFullData: false);
|
isFullData: false);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _aniZoneSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/anizone/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/anizone/icon.png",
|
||||||
sourceCodeUrl: _aniZoneSourceCodeUrl,
|
sourceCodeUrl: _aniZoneSourceCodeUrl,
|
||||||
version: _aniZoneVersion,
|
version: _aniZoneVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -14,5 +14,5 @@ Source _franimeSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/franime/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/franime/icon.png",
|
||||||
sourceCodeUrl: _franimeSourceCodeUrl,
|
sourceCodeUrl: _franimeSourceCodeUrl,
|
||||||
version: _franimeVersion,
|
version: _franimeVersion,
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
isFullData: true);
|
isFullData: true);
|
||||||
|
|||||||
@@ -13,5 +13,5 @@ Source _otakufr = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/otakufr/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/fr/otakufr/icon.png",
|
||||||
sourceCodeUrl: otakufrCodeUrl,
|
sourceCodeUrl: otakufrCodeUrl,
|
||||||
version: otakufrVersion,
|
version: otakufrVersion,
|
||||||
isManga: false,
|
itemType: ItemType.anime,
|
||||||
isFullData: false);
|
isFullData: false);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _yomoviesSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/hi/yomovies/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/hi/yomovies/icon.png",
|
||||||
sourceCodeUrl: _yomoviesSourceCodeUrl,
|
sourceCodeUrl: _yomoviesSourceCodeUrl,
|
||||||
version: _yomoviesVersion,
|
version: _yomoviesVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _nimegami = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/nimegami/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/nimegami/icon.png",
|
||||||
sourceCodeUrl: _nimegamiCodeUrl,
|
sourceCodeUrl: _nimegamiCodeUrl,
|
||||||
version: _nimegamiVersion,
|
version: _nimegamiVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _oploverz = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/oploverz/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/oploverz/icon.png",
|
||||||
sourceCodeUrl: _oploverzCodeUrl,
|
sourceCodeUrl: _oploverzCodeUrl,
|
||||||
version: _oploverzVersion,
|
version: _oploverzVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _otakudesu = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/otakudesu/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/id/otakudesu/icon.png",
|
||||||
sourceCodeUrl: _otakudesuCodeUrl,
|
sourceCodeUrl: _otakudesuCodeUrl,
|
||||||
version: _otakudesuVersion,
|
version: _otakudesuVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _animesaturn = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/it/animesaturn/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/it/animesaturn/icon.png",
|
||||||
sourceCodeUrl: _animesaturnCodeUrl,
|
sourceCodeUrl: _animesaturnCodeUrl,
|
||||||
version: _animesaturnVersion,
|
version: _animesaturnVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _animesvision = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/pt/animesvision/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/pt/animesvision/icon.png",
|
||||||
sourceCodeUrl: _animesvisionCodeUrl,
|
sourceCodeUrl: _animesvisionCodeUrl,
|
||||||
version: _animesvisionVersion,
|
version: _animesvisionVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _filma24 = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/sq/filma24/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/sq/filma24/icon.png",
|
||||||
sourceCodeUrl: _filma24CodeUrl,
|
sourceCodeUrl: _filma24CodeUrl,
|
||||||
version: _filma24Version,
|
version: _filma24Version,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ Source _diziwatchSource = Source(
|
|||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/tr/diziwatch/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/tr/diziwatch/icon.png",
|
||||||
sourceCodeUrl: _diziwatchSourceCodeUrl,
|
sourceCodeUrl: _diziwatchSourceCodeUrl,
|
||||||
version: _diziwatchVersion,
|
version: _diziwatchVersion,
|
||||||
isManga: false);
|
itemType: ItemType.anime);
|
||||||
|
|||||||
@@ -571,6 +571,7 @@ List<Source> _madaraSourcesList = [
|
|||||||
webtoonhattiSource,
|
webtoonhattiSource,
|
||||||
]
|
]
|
||||||
.map((e) => e
|
.map((e) => e
|
||||||
|
..itemType = ItemType.manga
|
||||||
..sourceCodeUrl = madaraSourceCodeUrl
|
..sourceCodeUrl = madaraSourceCodeUrl
|
||||||
..version = madaraVersion)
|
..version = madaraVersion)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ List<Source> _mangaboxSourcesList = [
|
|||||||
manganatoSource
|
manganatoSource
|
||||||
]
|
]
|
||||||
.map((e) => e
|
.map((e) => e
|
||||||
|
..itemType = ItemType.manga
|
||||||
..sourceCodeUrl = mangaboxSourceCodeUrl
|
..sourceCodeUrl = mangaboxSourceCodeUrl
|
||||||
..version = mangaboxVersion)
|
..version = mangaboxVersion)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -289,6 +289,7 @@ List<Source> _mangareaderSourcesList = [
|
|||||||
zenithscansSource
|
zenithscansSource
|
||||||
]
|
]
|
||||||
.map((e) => e
|
.map((e) => e
|
||||||
|
..itemType = ItemType.manga
|
||||||
..sourceCodeUrl = mangareaderSourceCodeUrl
|
..sourceCodeUrl = mangareaderSourceCodeUrl
|
||||||
..version = mangareaderVersion)
|
..version = mangareaderVersion)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ List<Source> _mmrcmsSourcesList = [
|
|||||||
mangafrSource,
|
mangafrSource,
|
||||||
]
|
]
|
||||||
.map((e) => e
|
.map((e) => e
|
||||||
|
..itemType = ItemType.manga
|
||||||
..sourceCodeUrl = mmrcmsSourceCodeUrl
|
..sourceCodeUrl = mmrcmsSourceCodeUrl
|
||||||
..version = mmrcmsVersion)
|
..version = mmrcmsVersion)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ List<Source> _nepnepSourcesList = [
|
|||||||
mangalifeSource,
|
mangalifeSource,
|
||||||
]
|
]
|
||||||
.map((e) => e
|
.map((e) => e
|
||||||
|
..itemType = ItemType.manga
|
||||||
..sourceCodeUrl = nepnepSourceCodeUrl
|
..sourceCodeUrl = nepnepSourceCodeUrl
|
||||||
..version = nepnepVersion)
|
..version = nepnepVersion)
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -67,5 +67,6 @@ List<Source> _comickSourcesList = _languages
|
|||||||
isNsfw: _isNsfw,
|
isNsfw: _isNsfw,
|
||||||
dateFormatLocale: "en",
|
dateFormatLocale: "en",
|
||||||
version: _comickVersion,
|
version: _comickVersion,
|
||||||
|
itemType: ItemType.manga,
|
||||||
sourceCodeUrl: _comickSourceCodeUrl))
|
sourceCodeUrl: _comickSourceCodeUrl))
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -70,5 +70,6 @@ List<Source> _mangaDexSourcesList = _languages
|
|||||||
isNsfw: _isNsfw,
|
isNsfw: _isNsfw,
|
||||||
dateFormatLocale: 'en_Us',
|
dateFormatLocale: 'en_Us',
|
||||||
version: _mangadexVersion,
|
version: _mangadexVersion,
|
||||||
|
itemType: ItemType.manga,
|
||||||
sourceCodeUrl: _mangadexSourceCodeUrl))
|
sourceCodeUrl: _mangadexSourceCodeUrl))
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Source _mangahereSource = Source(
|
|||||||
iconUrl:
|
iconUrl:
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/src/en/mangahere/icon.png",
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/manga/src/en/mangahere/icon.png",
|
||||||
sourceCodeUrl: _mangahereSourceCodeUrl,
|
sourceCodeUrl: _mangahereSourceCodeUrl,
|
||||||
|
itemType: ItemType.manga,
|
||||||
version: _mangahereVersion,
|
version: _mangahereVersion,
|
||||||
dateFormat: "MMM dd,yyyy",
|
dateFormat: "MMM dd,yyyy",
|
||||||
dateFormatLocale: "en",
|
dateFormatLocale: "en",
|
||||||
|
|||||||
4
dart/novel/novel_source_list.dart
Normal file
4
dart/novel/novel_source_list.dart
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import '../../model/source.dart';
|
||||||
|
|
||||||
|
List<Source> dartNovelSourceList = [
|
||||||
|
];
|
||||||
BIN
dart/novel/src/en/icon.png
Normal file
BIN
dart/novel/src/en/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
0
dart/novel/src/en/novelupdates.dart
Normal file
0
dart/novel/src/en/novelupdates.dart
Normal file
19
dart/novel/src/en/source.dart
Normal file
19
dart/novel/src/en/source.dart
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import '../../../../model/source.dart';
|
||||||
|
|
||||||
|
Source get novelUpdatesSource => _novelUpdatesSource;
|
||||||
|
const _novelUpdatesVersion = "0.0.1";
|
||||||
|
const _novelUpdatesSourceCodeUrl =
|
||||||
|
"https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/$branchName/dart/novel/src/en/novelupdates.dart";
|
||||||
|
Source _novelUpdatesSource = Source(
|
||||||
|
name: "NovelUpdates",
|
||||||
|
baseUrl: "https://www.novelupdates.com",
|
||||||
|
lang: "en",
|
||||||
|
typeSource: "single",
|
||||||
|
iconUrl:
|
||||||
|
"https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/$branchName/dart/manga/src/en/icon.png",
|
||||||
|
sourceCodeUrl: _novelUpdatesSourceCodeUrl,
|
||||||
|
itemType: ItemType.novel,
|
||||||
|
version: _novelUpdatesVersion,
|
||||||
|
dateFormat: "MMM dd,yyyy",
|
||||||
|
dateFormatLocale: "en",
|
||||||
|
);
|
||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/all.netflixmirror.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"version": "0.0.55",
|
"version": "0.0.55",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/de.aniworld.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/de.aniworld.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://s.to/favicon.ico",
|
"iconUrl": "https://s.to/favicon.ico",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.4",
|
"version": "0.0.4",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "https://api.allanime.day/api",
|
"apiUrl": "https://api.allanime.day/api",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.allanime.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.allanime.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.35",
|
"version": "0.0.35",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png",
|
"iconUrl": "https://www3.animefenix.tv/themes/fenix-neo/images/AveFenix.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"version": "0.1.13",
|
"version": "0.1.13",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/es.animeflv.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/es.animeflv.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://cdn.jkanime.net/logo_jk.png",
|
"iconUrl": "https://cdn.jkanime.net/logo_jk.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"version": "0.1.13",
|
"version": "0.1.13",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg",
|
"iconUrl": "https://tioanime.com/assets/img/tio_fb.jpg",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"version": "0.1.12",
|
"version": "0.1.12",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://360zy.com/favicon.ico",
|
"iconUrl": "https://360zy.com/favicon.ico",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "http://ffzy.tv/template/default/img/favicon.png",
|
"iconUrl": "http://ffzy.tv/template/default/img/favicon.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://huaweiba.live/template/ziyuan/images/logo2.png",
|
"iconUrl": "https://huaweiba.live/template/ziyuan/images/logo2.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://www.jisuzy.com/template/default/images/site_logo.png",
|
"iconUrl": "https://www.jisuzy.com/template/default/images/site_logo.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.mikan.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.mikan.png",
|
||||||
"typeSource": "torrent",
|
"typeSource": "torrent",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://api.tiankongapi.com/template/v10012/images/logo.jpg",
|
"iconUrl": "https://api.tiankongapi.com/template/v10012/images/logo.jpg",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg",
|
"iconUrl": "https://imgsrc.baidu.com/forum/pic/item/4b90f603738da977d5da660af651f8198618e31f.jpg",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.yhdm.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.yhdm.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://tv.yydsys.top/template/DYXS2/static/picture/logo.png",
|
"iconUrl": "https://tv.yydsys.top/template/DYXS2/static/picture/logo.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": false,
|
"itemType": 1,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
BIN
javascript/icon/en.novelupdates.png
Normal file
BIN
javascript/icon/en.novelupdates.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 525 B |
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://mangafire.to/assets/sites/mangafire/favicon.png?v3",
|
"iconUrl": "https://mangafire.to/assets/sites/mangafire/favicon.png?v3",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": true,
|
"itemType": 0,
|
||||||
"version": "0.1.21",
|
"version": "0.1.21",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.asurascans.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/en.asurascans.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": true,
|
"itemType": 0,
|
||||||
"version": "0.1.7",
|
"version": "0.1.7",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
"dateFormatLocale": "",
|
"dateFormatLocale": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.77mh.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.77mh.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": true,
|
"itemType": 0,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.25",
|
"version": "0.0.25",
|
||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "https://api.mangacopy.com",
|
"apiUrl": "https://api.mangacopy.com",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.copymanga.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.copymanga.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": true,
|
"itemType": 0,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.25",
|
"version": "0.0.25",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const mangayomiSources = [{
|
|||||||
"apiUrl": "",
|
"apiUrl": "",
|
||||||
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.dmzj.png",
|
"iconUrl": "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/main/javascript/icon/zh.dmzj.png",
|
||||||
"typeSource": "single",
|
"typeSource": "single",
|
||||||
"isManga": true,
|
"itemType": 0,
|
||||||
"isNsfw": false,
|
"isNsfw": false,
|
||||||
"version": "0.0.3",
|
"version": "0.0.3",
|
||||||
"dateFormat": "",
|
"dateFormat": "",
|
||||||
|
|||||||
800
javascript/novel/src/en/novelupdates.js
Normal file
800
javascript/novel/src/en/novelupdates.js
Normal file
@@ -0,0 +1,800 @@
|
|||||||
|
const mangayomiSources = [
|
||||||
|
{
|
||||||
|
name: "Novel Updates",
|
||||||
|
lang: "en",
|
||||||
|
baseUrl: "https://www.novelupdates.com",
|
||||||
|
apiUrl: "",
|
||||||
|
iconUrl:
|
||||||
|
"https://raw.githubusercontent.com/Schnitzel5/mangayomi-extensions/main/javascript/icon/en.novelupdates.png",
|
||||||
|
typeSource: "single",
|
||||||
|
itemType: 2,
|
||||||
|
version: "0.0.1",
|
||||||
|
dateFormat: "",
|
||||||
|
dateFormatLocale: "",
|
||||||
|
pkgPath: "novel/src/en/novelupdates.js",
|
||||||
|
appMinVerReq: "0.3.75",
|
||||||
|
isNsfw: false,
|
||||||
|
hasCloudflare: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
class DefaultExtension extends MProvider {
|
||||||
|
headers = {
|
||||||
|
Referer: this.source.baseUrl,
|
||||||
|
Origin: this.source.baseUrl,
|
||||||
|
Connection: "keep-alive",
|
||||||
|
Accept: "*/*",
|
||||||
|
"Accept-Language": "*",
|
||||||
|
"Sec-Fetch-Mode": "cors",
|
||||||
|
"Accept-Encoding": "gzip, deflate",
|
||||||
|
"User-Agent":
|
||||||
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
|
||||||
|
};
|
||||||
|
|
||||||
|
getHeaders(url) {
|
||||||
|
throw new Error("getHeaders not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
mangaListFromPage(res) {
|
||||||
|
const doc = new Document(res.body);
|
||||||
|
const mangaElements = doc.select("div.search_main_box_nu");
|
||||||
|
const list = [];
|
||||||
|
for (const element of mangaElements) {
|
||||||
|
const name = element.selectFirst(".search_title > a").text;
|
||||||
|
const imageUrl = element.selectFirst("img").getSrc;
|
||||||
|
const link = element.selectFirst(".search_title > a").getHref;
|
||||||
|
list.push({ name, imageUrl, link });
|
||||||
|
}
|
||||||
|
const hasNextPage =
|
||||||
|
doc.selectFirst("div.digg_pagination > a.next_page").text == " →";
|
||||||
|
return { list: list, hasNextPage };
|
||||||
|
}
|
||||||
|
|
||||||
|
toStatus(status) {
|
||||||
|
if (status.includes("Ongoing")) return 0;
|
||||||
|
else if (status.includes("Completed")) return 1;
|
||||||
|
else if (status.includes("Hiatus")) return 2;
|
||||||
|
else if (status.includes("Dropped")) return 3;
|
||||||
|
else return 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
async getPopular(page) {
|
||||||
|
const res = await new Client().get(
|
||||||
|
`${this.source.baseUrl}/series-ranking/?rank=popmonth&pg=${page}`,
|
||||||
|
this.headers
|
||||||
|
);
|
||||||
|
return this.mangaListFromPage(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
async getLatestUpdates(page) {
|
||||||
|
const res = await new Client().get(
|
||||||
|
`${this.source.baseUrl}/series-finder/?sf=1&sh=&sort=sdate&order=desc&pg=${page}`,
|
||||||
|
this.headers
|
||||||
|
);
|
||||||
|
return this.mangaListFromPage(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
async search(query, page, filters) {
|
||||||
|
let url = `${this.source.baseUrl}/series-finder/?sf=1&sh=${query}&pg=${page}`;
|
||||||
|
|
||||||
|
if (!filters || filters.length == 0) {
|
||||||
|
const res = await new Client().get(url, this.headers);
|
||||||
|
return this.mangaListFromPage(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filters[0].state.filter(f => f.state == true).length > 0) {
|
||||||
|
const values = filters[0].state.filter(f => f.state == true).map(f => f.value).join(",");
|
||||||
|
url += `&nt=${values}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filters[1].state.filter(f => f.state == true).length > 0) {
|
||||||
|
const values = filters[1].state.filter(f => f.state == true).map(f => f.value).join(",");
|
||||||
|
url += `&org=${values}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filters[2].state.filter(f => f.state == 1 || f.state == 2).length > 0) {
|
||||||
|
const including = filters[2].state.filter(f => f.state == 1).map(f => f.value).join(",");
|
||||||
|
const excluding = filters[2].state.filter(f => f.state == 2).map(f => f.value).join(",");
|
||||||
|
if (including.length > 0) url += `&gi=${including}`;
|
||||||
|
if (excluding.length > 0) url += `&ge=${excluding}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filters[3].state.filter(f => f.state == true).length > 0) {
|
||||||
|
const values = filters[3].state.filter(f => f.state == true).map(f => f.value).join(",");
|
||||||
|
url += `&ss=${values}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
url += `&sort=${filters[4].values[filters[4].state].value}`;
|
||||||
|
url += `&order=${filters[5].values[filters[5].state].value}`;
|
||||||
|
|
||||||
|
const res = await new Client().get(url, this.headers);
|
||||||
|
return this.mangaListFromPage(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
async getDetail(url) {
|
||||||
|
const client = new Client();
|
||||||
|
const res = await client.get(url, this.headers);
|
||||||
|
const doc = new Document(res.body);
|
||||||
|
const imageUrl = doc.selectFirst(".wpb_wrapper img")?.getSrc;
|
||||||
|
const type = doc.selectFirst("#showtype")?.text.trim();
|
||||||
|
const description =
|
||||||
|
doc.selectFirst("#editdescription")?.text.trim() + `\n\nType: ${type}`;
|
||||||
|
const author = doc
|
||||||
|
.select("#authtag")
|
||||||
|
.map((el) => el.text.trim())
|
||||||
|
.join(", ");
|
||||||
|
const artist = doc
|
||||||
|
.select("#artiststag")
|
||||||
|
.map((el) => el.text.trim())
|
||||||
|
.join(", ");
|
||||||
|
const status = this.toStatus(doc.selectFirst("#editstatus").text.trim());
|
||||||
|
const genre = doc.select("#seriesgenre > a").map((el) => el.text.trim());
|
||||||
|
|
||||||
|
const novelId = doc.selectFirst("input#mypostid")?.attr("value");
|
||||||
|
|
||||||
|
const link = `https://www.novelupdates.com/wp-admin/admin-ajax.php`;
|
||||||
|
const headers = {
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||||
|
...this.headers,
|
||||||
|
};
|
||||||
|
|
||||||
|
const chapters = [];
|
||||||
|
const chapterRes = await client.post(link, headers, {
|
||||||
|
action: "nd_getchapters",
|
||||||
|
mygrr: "0",
|
||||||
|
mypostid: novelId,
|
||||||
|
});
|
||||||
|
const chapterDoc = new Document(chapterRes.body);
|
||||||
|
|
||||||
|
const nameReplacements = {
|
||||||
|
v: "Volume ",
|
||||||
|
c: " Chapter ",
|
||||||
|
part: "Part ",
|
||||||
|
ss: "SS",
|
||||||
|
};
|
||||||
|
|
||||||
|
const chapterElements = chapterDoc.select("li.sp_li_chp");
|
||||||
|
for (const el of chapterElements) {
|
||||||
|
let chapterName = el.selectFirst("span").text;
|
||||||
|
for (const name in nameReplacements) {
|
||||||
|
chapterName = chapterName.replace(name, nameReplacements[name]);
|
||||||
|
}
|
||||||
|
chapterName = chapterName.replace(/\b\w/g, (l) => l.toUpperCase()).trim();
|
||||||
|
const chapterUrl = `https:${el.select("a")[1].getHref}`;
|
||||||
|
const dateUpload = String(Date.now());
|
||||||
|
chapters.push({
|
||||||
|
name: chapterName,
|
||||||
|
url: chapterUrl,
|
||||||
|
dateUpload: dateUpload,
|
||||||
|
scanlator: null,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
chapters.reverse();
|
||||||
|
|
||||||
|
return {
|
||||||
|
imageUrl,
|
||||||
|
description,
|
||||||
|
genre,
|
||||||
|
author,
|
||||||
|
artist,
|
||||||
|
status,
|
||||||
|
chapters,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
async getHtmlContent(url) {
|
||||||
|
const client = await new Client();
|
||||||
|
const res = await client.get(url, {
|
||||||
|
Priority: "u=0, i",
|
||||||
|
"User-Agent":
|
||||||
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36",
|
||||||
|
});
|
||||||
|
const doc = new Document(res.body);
|
||||||
|
const domain = res.body;
|
||||||
|
|
||||||
|
if (domain.includes("anotivereads")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("#comic-nav-name")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst("#spliced-comic")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("asuratls")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".post-body > div > b")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".post-body")?.innerHtml?.replace(title, "");
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("daoist")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".chapter__title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".chapter__content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("darkstartranslations")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("ol.breadcrumb > li")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".text-left")?.innerHtml?.replace("<br>", "<br><br>");
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("fictionread")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".title-image > span")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("helscans")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".entry-title-main")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst("#readerarea.rdminimal")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("hiraethtranslation")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("li.active")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".text-left")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("hostednovel")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("#chapter-title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst("#chapter-content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("inoveltranslation")) {
|
||||||
|
const content = doc.selectFirst(".styles_content__JHK8G")?.innerHtml;
|
||||||
|
return `${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("isotls")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("head > title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst("main > article")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("mirilu")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".entry-content > p > strong")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".entry-content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("novelplex")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".halChap--jud")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".halChap--kontenInner")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("novelworldtranslations")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".entry-title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".entry-content")?.innerHtml?.replace(/ /g, '')?.replace(/\n/g, '<br>');
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("readingpia")) {
|
||||||
|
const content = doc.selectFirst(".chapter-body")?.innerHtml;
|
||||||
|
return `${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("sacredtexttranslations")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".entry-title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".entry-content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("scribblehub")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".chapter-title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".chp_raw")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("tinytranslation")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".title-content")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("tumblr")) {
|
||||||
|
const content = doc.selectFirst(".post")?.innerHtml;
|
||||||
|
return `${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("wattpad")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".h2")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".part-content > pre")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("webnovel")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".cha-tit > .pr > .dib")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".cha-words")?.innerHtml || doc.selectFirst("._content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("wetriedtls")) {
|
||||||
|
const content = doc.selectFirst("script:contains(\"p dir=\")")?.innerHtml || doc.selectFirst("script:contains(\"u003c\")")?.innerHtml;
|
||||||
|
if (content) {
|
||||||
|
const jsonString_wetried = content.slice(
|
||||||
|
content.indexOf('.push(') + '.push('.length,
|
||||||
|
content.lastIndexOf(')'),
|
||||||
|
);
|
||||||
|
return `${JSON.parse(jsonString_wetried)[1]}`;
|
||||||
|
}
|
||||||
|
return "<p>Failed to parse JSON content!</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("wuxiaworld")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("h4 > span")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".chapter-content")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("zetrotranslation")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst(".text-left h2")?.text.trim() ||
|
||||||
|
doc.selectFirst(".active")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst(".text-left")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domain.includes("webnovel")) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("#page > .chapter_content > .cha-tit > div > div")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content = doc.selectFirst("#page > .chapter_content > .cha-content > .cha-words")?.innerHtml.replaceAll(/<i\s*.*?>.*?<\/i>/gm, "");
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const blogspotElements = [
|
||||||
|
doc.selectFirst("meta[name=\"google-adsense-platform-domain\"]").attr("content"),
|
||||||
|
doc.selectFirst("meta[name=\"generator\"]").attr("content"),
|
||||||
|
];
|
||||||
|
const isBlogspot = blogspotElements.some(e => {
|
||||||
|
return e?.toLowerCase().includes("blogspot") || e?.toLowerCase().includes("blogger")
|
||||||
|
});
|
||||||
|
|
||||||
|
if (isBlogspot) {
|
||||||
|
const title =
|
||||||
|
doc.selectFirst("h3.post-title")?.text.trim() ||
|
||||||
|
doc.selectFirst("h3.entry-title")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const content =
|
||||||
|
doc.selectFirst("div.post-body")?.innerHtml ||
|
||||||
|
doc.selectFirst("div.entry-content")?.innerHtml ||
|
||||||
|
doc.selectFirst("div.content-post")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const wordpressElements = [
|
||||||
|
doc.selectFirst("#dcl_comments-js-extra")?.innerHtml,
|
||||||
|
doc.selectFirst("meta[name=\"generator\"]")?.attr("content"),
|
||||||
|
doc.selectFirst(".powered-by")?.text,
|
||||||
|
doc.selectFirst("footer")?.text,
|
||||||
|
];
|
||||||
|
let isWordpress = wordpressElements.some(e => {
|
||||||
|
return e?.toLowerCase().includes("wordpress") || e?.toLowerCase().includes("site kit by google")
|
||||||
|
});
|
||||||
|
|
||||||
|
if (isWordpress || domain.includes("etherreads") || domain.includes("soafp")) {
|
||||||
|
let title =
|
||||||
|
doc.selectFirst(".entry-title")?.text.trim() ||
|
||||||
|
doc.selectFirst(".entry-title-main")?.text.trim() ||
|
||||||
|
doc.selectFirst(".chapter__title")?.text.trim() ||
|
||||||
|
doc.selectFirst(".sp-title")?.text.trim() ||
|
||||||
|
doc.selectFirst(".title-content")?.text.trim() ||
|
||||||
|
doc.selectFirst(".wp-block-post-title")?.text.trim() ||
|
||||||
|
doc.selectFirst(".title_story")?.text.trim() ||
|
||||||
|
doc.selectFirst(".active")?.text.trim() ||
|
||||||
|
doc.selectFirst("head title")?.text.trim() ||
|
||||||
|
doc.selectFirst("h1.leading-none ~ h2")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
const subtitle =
|
||||||
|
doc.selectFirst(".cat-series")?.text.trim() ||
|
||||||
|
doc.selectFirst("h1.leading-none ~ span")?.text.trim() ||
|
||||||
|
"";
|
||||||
|
if (subtitle && subtitle != "") {
|
||||||
|
title = subtitle;
|
||||||
|
}
|
||||||
|
const content =
|
||||||
|
doc.selectFirst(".rdminimal")?.innerHtml ||
|
||||||
|
doc.selectFirst(".entry-content")?.innerHtml ||
|
||||||
|
doc.selectFirst(".chapter__content")?.innerHtml ||
|
||||||
|
doc.selectFirst(".prevent-select")?.innerHtml ||
|
||||||
|
doc.selectFirst(".text_story")?.innerHtml ||
|
||||||
|
doc.selectFirst(".contenta")?.innerHtml ||
|
||||||
|
doc.selectFirst(".single_post")?.innerHtml ||
|
||||||
|
doc.selectFirst(".post-entry")?.innerHtml ||
|
||||||
|
doc.selectFirst(".main-content")?.innerHtml ||
|
||||||
|
doc.selectFirst(".post-content")?.innerHtml ||
|
||||||
|
doc.selectFirst(".content")?.innerHtml ||
|
||||||
|
doc.selectFirst(".page-body")?.innerHtml ||
|
||||||
|
doc.selectFirst(".td-page-content")?.innerHtml ||
|
||||||
|
doc.selectFirst(".reader-content")?.innerHtml ||
|
||||||
|
doc.selectFirst("#content")?.innerHtml ||
|
||||||
|
doc.selectFirst("#the-content")?.innerHtml ||
|
||||||
|
doc.selectFirst("article.post")?.innerHtml;
|
||||||
|
return `<h2>${title}</h2><hr><br>${content}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "<p>Domain not supported yet</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
getFilterList() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
type_name: "GroupFilter",
|
||||||
|
name: "Novel Type",
|
||||||
|
state: [
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Web Novel",
|
||||||
|
value: "2444",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Light Novel",
|
||||||
|
value: "2443",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Published Novel",
|
||||||
|
value: "26874",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "GroupFilter",
|
||||||
|
name: "Original Language",
|
||||||
|
state: [
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Chinese",
|
||||||
|
value: "495",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Filipino",
|
||||||
|
value: "9181",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Indonesian",
|
||||||
|
value: "9179",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Japanese",
|
||||||
|
value: "496",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Khmer",
|
||||||
|
value: "18657",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Korean",
|
||||||
|
value: "497",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Malaysian",
|
||||||
|
value: "9183",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Thai",
|
||||||
|
value: "9954",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Vietnamese",
|
||||||
|
value: "9177",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "GroupFilter",
|
||||||
|
name: "Genre",
|
||||||
|
state: [
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Action",
|
||||||
|
value: "8",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Adventure",
|
||||||
|
value: "13",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Comedy",
|
||||||
|
value: "17",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Drama",
|
||||||
|
value: "9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Ecchi",
|
||||||
|
value: "292",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Fantasy",
|
||||||
|
value: "5",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Gender Bender",
|
||||||
|
value: "168",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Harem",
|
||||||
|
value: "3",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Horror",
|
||||||
|
value: "343",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Josei",
|
||||||
|
value: "324",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Martial Arts",
|
||||||
|
value: "14",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Mature",
|
||||||
|
value: "4",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Mecha",
|
||||||
|
value: "10",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Mystery",
|
||||||
|
value: "245",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Psychological",
|
||||||
|
value: "486",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Romance",
|
||||||
|
value: "15",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "School",
|
||||||
|
value: "6",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Sci-Fi",
|
||||||
|
value: "11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Seinen",
|
||||||
|
value: "18",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Shoujo",
|
||||||
|
value: "157",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Shoujo Ai",
|
||||||
|
value: "851",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Shounen",
|
||||||
|
value: "12",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Shounen Ai",
|
||||||
|
value: "1692",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Slice of Life",
|
||||||
|
value: "7",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Smut",
|
||||||
|
value: "281",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Sports",
|
||||||
|
value: "1357",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Supernatural",
|
||||||
|
value: "16",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Tragedy",
|
||||||
|
value: "132",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Wuxia",
|
||||||
|
value: "479",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Xianxia",
|
||||||
|
value: "480",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Xuanhuan",
|
||||||
|
value: "3954",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Yaoi",
|
||||||
|
value: "560",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "TriState",
|
||||||
|
name: "Yuri",
|
||||||
|
value: "922",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "GroupFilter",
|
||||||
|
name: "Status",
|
||||||
|
state: [
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "All",
|
||||||
|
value: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Completed",
|
||||||
|
value: "2",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Ongoing",
|
||||||
|
value: "3",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "CheckBox",
|
||||||
|
name: "Hiatus",
|
||||||
|
value: "4",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectFilter",
|
||||||
|
type: "sort",
|
||||||
|
name: "Sort",
|
||||||
|
state: 0,
|
||||||
|
values: [
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Last Updated",
|
||||||
|
value: "sdate",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Rating",
|
||||||
|
value: "srate",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Rank",
|
||||||
|
value: "srank",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Reviews",
|
||||||
|
value: "sreview",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Chapters",
|
||||||
|
value: "srel",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Title",
|
||||||
|
value: "abc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Readers",
|
||||||
|
value: "sread",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Frequency",
|
||||||
|
value: "sfrel",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectFilter",
|
||||||
|
name: "Order",
|
||||||
|
state: 0,
|
||||||
|
values: [
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Descending",
|
||||||
|
value: "desc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type_name: "SelectOption",
|
||||||
|
name: "Ascending",
|
||||||
|
value: "asc",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
getSourcePreferences() {
|
||||||
|
throw new Error("getSourcePreferences not implemented");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,7 +25,7 @@ class Source {
|
|||||||
|
|
||||||
String? version;
|
String? version;
|
||||||
|
|
||||||
bool? isManga;
|
ItemType? itemType;
|
||||||
|
|
||||||
bool? isFullData;
|
bool? isFullData;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ class Source {
|
|||||||
this.sourceCodeUrl = "",
|
this.sourceCodeUrl = "",
|
||||||
this.apiUrl = "",
|
this.apiUrl = "",
|
||||||
this.version = "",
|
this.version = "",
|
||||||
this.isManga = true,
|
this.itemType = ItemType.manga,
|
||||||
this.isFullData = false,
|
this.isFullData = false,
|
||||||
this.appMinVerReq = "0.2.0",
|
this.appMinVerReq = "0.2.0",
|
||||||
this.additionalParams = "",
|
this.additionalParams = "",
|
||||||
@@ -69,7 +69,7 @@ class Source {
|
|||||||
: 'mangayomi-js-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"'))
|
: 'mangayomi-js-"${json['lang'] ?? ""}"."${json['name'] ?? ""}"'))
|
||||||
.hashCode;
|
.hashCode;
|
||||||
isFullData = json['isFullData'] ?? false;
|
isFullData = json['isFullData'] ?? false;
|
||||||
isManga = json['isManga'] ?? false;
|
itemType = ItemType.values[json['itemType'] ?? 0];
|
||||||
isNsfw = json['isNsfw'] ?? false;
|
isNsfw = json['isNsfw'] ?? false;
|
||||||
lang = json['lang'] ?? "";
|
lang = json['lang'] ?? "";
|
||||||
name = json['name'] ?? "";
|
name = json['name'] ?? "";
|
||||||
@@ -95,7 +95,7 @@ class Source {
|
|||||||
"sourceCodeUrl": sourceCodeUrl,
|
"sourceCodeUrl": sourceCodeUrl,
|
||||||
"apiUrl": apiUrl,
|
"apiUrl": apiUrl,
|
||||||
"version": version,
|
"version": version,
|
||||||
"isManga": isManga,
|
"itemType": itemType?.index ?? 0,
|
||||||
"isFullData": isFullData,
|
"isFullData": isFullData,
|
||||||
"appMinVerReq": appMinVerReq,
|
"appMinVerReq": appMinVerReq,
|
||||||
"additionalParams": additionalParams,
|
"additionalParams": additionalParams,
|
||||||
@@ -105,3 +105,9 @@ class Source {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const branchName = "main";
|
const branchName = "main";
|
||||||
|
|
||||||
|
enum ItemType {
|
||||||
|
manga,
|
||||||
|
anime,
|
||||||
|
novel
|
||||||
|
}
|
||||||
@@ -3,12 +3,14 @@ import 'dart:developer';
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart/anime/anime_source_list.dart';
|
import 'dart/anime/anime_source_list.dart';
|
||||||
import 'dart/manga/manga_source_list.dart';
|
import 'dart/manga/manga_source_list.dart';
|
||||||
|
import 'dart/novel/novel_source_list.dart';
|
||||||
import 'model/source.dart';
|
import 'model/source.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final jsSources = _searchJsSources(Directory("javascript"));
|
final jsSources = _searchJsSources(Directory("javascript"));
|
||||||
genManga(jsSources.where((element) => element.isManga!).toList());
|
genManga(jsSources.where((element) => element.itemType!.name == "manga").toList());
|
||||||
genAnime(jsSources.where((element) => !element.isManga!).toList());
|
genAnime(jsSources.where((element) => element.itemType!.name == "anime").toList());
|
||||||
|
genNovel(jsSources.where((element) => element.itemType!.name == "novel").toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
void genManga(List<Source> jsMangasourceList) {
|
void genManga(List<Source> jsMangasourceList) {
|
||||||
@@ -39,6 +41,20 @@ void genAnime(List<Source> jsAnimesourceList) {
|
|||||||
log('JSON file created: ${file.path}');
|
log('JSON file created: ${file.path}');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void genNovel(List<Source> jsNovelSourceList) {
|
||||||
|
List<Source> novelSources = [];
|
||||||
|
novelSources.addAll(dartNovelSourceList);
|
||||||
|
novelSources.addAll(jsNovelSourceList);
|
||||||
|
final List<Map<String, dynamic>> jsonList =
|
||||||
|
novelSources.map((source) => source.toJson()).toList();
|
||||||
|
final jsonString = jsonEncode(jsonList);
|
||||||
|
|
||||||
|
final file = File('novel_index.json');
|
||||||
|
file.writeAsStringSync(jsonString);
|
||||||
|
|
||||||
|
log('JSON file created: ${file.path}');
|
||||||
|
}
|
||||||
|
|
||||||
List<Source> _searchJsSources(Directory dir) {
|
List<Source> _searchJsSources(Directory dir) {
|
||||||
List<Source> sourceList = [];
|
List<Source> sourceList = [];
|
||||||
List<FileSystemEntity> entities = dir.listSync();
|
List<FileSystemEntity> entities = dir.listSync();
|
||||||
@@ -62,6 +78,9 @@ List<Source> _searchJsSources(Directory dir) {
|
|||||||
sourceJson["appMinVerReq"] ?? defaultSource.appMinVerReq
|
sourceJson["appMinVerReq"] ?? defaultSource.appMinVerReq
|
||||||
..sourceCodeUrl =
|
..sourceCodeUrl =
|
||||||
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/javascript/${sourceJson["pkgPath"] ?? sourceJson["pkgName"]}";
|
"https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/javascript/${sourceJson["pkgPath"] ?? sourceJson["pkgName"]}";
|
||||||
|
if (source.itemType == ItemType.novel) {
|
||||||
|
source.sourceCodeUrl = source.sourceCodeUrl?.replaceAll("kodjodevf", "Schnitzel5");
|
||||||
|
}
|
||||||
if (sourceJson["id"] != null) {
|
if (sourceJson["id"] != null) {
|
||||||
source = source..id = int.tryParse("${sourceJson["id"]}");
|
source = source..id = int.tryParse("${sourceJson["id"]}");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user