From 256d7d0e1cb18203ac12ef363bb4eb648d3fe993 Mon Sep 17 00:00:00 2001 From: gr8vewalker Date: Fri, 2 Aug 2024 21:51:13 +0300 Subject: [PATCH] feat(anime) tr/diziWatch extension --- dart/anime/anime_source_list.dart | 4 +- dart/anime/src/tr/diziwatch/diziwatch.dart | 213 +++++++++++++++++++++ dart/anime/src/tr/diziwatch/icon.png | Bin 0 -> 13293 bytes dart/anime/src/tr/diziwatch/source.dart | 16 ++ 4 files changed, 232 insertions(+), 1 deletion(-) create mode 100644 dart/anime/src/tr/diziwatch/diziwatch.dart create mode 100644 dart/anime/src/tr/diziwatch/icon.png create mode 100644 dart/anime/src/tr/diziwatch/source.dart diff --git a/dart/anime/anime_source_list.dart b/dart/anime/anime_source_list.dart index 4fcf9782..75d831b8 100644 --- a/dart/anime/anime_source_list.dart +++ b/dart/anime/anime_source_list.dart @@ -24,6 +24,7 @@ import 'src/id/otakudesu/source.dart'; import 'src/it/animesaturn/source.dart'; import 'src/pt/animesvision/source.dart'; import 'src/sq/filma24/source.dart'; +import 'src/tr/diziwatch/source.dart'; List dartAnimesourceList = [ gogoanimeSource, @@ -50,5 +51,6 @@ List dartAnimesourceList = [ nyaaSource, animepaheSource, animetoast, - animesvision + animesvision, + diziwatchSource ]; diff --git a/dart/anime/src/tr/diziwatch/diziwatch.dart b/dart/anime/src/tr/diziwatch/diziwatch.dart new file mode 100644 index 00000000..61744a3b --- /dev/null +++ b/dart/anime/src/tr/diziwatch/diziwatch.dart @@ -0,0 +1,213 @@ +import 'package:mangayomi/bridge_lib.dart'; +import 'dart:convert'; + +class DiziWatch extends MProvider { + DiziWatch({required this.source}); + + MSource source; + + final Client client = Client(source); + + @override + bool get supportsLatest => true; + + @override + Map get headers => {}; + + Future parseMainList(int index) async { + MDocument dom = parseHtml((await client.get(Uri.parse(source.baseUrl))) .body); + List list = []; + MElement containingElement = dom.select("#list-series-hizala2")[index]; + List results = containingElement.select("#list-series-main"); + for (MElement result in results) { + MElement a = result.selectFirst("a"); + MElement img = a.selectFirst("img"); + MManga anime = new MManga(); + anime.name = img.attr("alt"); + anime.link = a.getHref; + anime.imageUrl = img.getSrc; + list.add(anime); + } + + return MPages(list, false); + } + + @override + Future getPopular(int page) async { + return parseMainList(1); + } + + @override + Future getLatestUpdates(int page) async { + return parseMainList(2); + } + + @override + Future search(String query, int page, FilterList filterList) async { + String orderby = ""; + String year = ""; + String imdb = ""; + String genre = ""; + for (var filter in filterList.filters) { + if (filter.type == "Sort") { + orderby = filter.values[filter.state].value; + } else if (filter.type == "Year") { + year = filter.state; + } else if (filter.type == "MinIMDBRating") { + imdb = filter.values[filter.state].value; + } else if (filter.type == "Genre") { + genre = filter.values[filter.state].value; + } + } + MDocument dom = parseHtml((await client.get(Uri.parse("${source.baseUrl}/anime-arsivi/page/${page}/?orderby=${orderby}&yil=${year}&imdb=${imdb}&isim=${query}&tur=${genre}"))) .body); + List results = dom.select("#list-series"); + List list = []; + for (MElement result in results) { + MElement a = result.select("a")[1]; + MElement img = a.selectFirst("img"); + MManga anime = new MManga(); + anime.name = result.selectFirst("div.cat-title a").text; + anime.link = a.getHref; + anime.imageUrl = img.getSrc; + list.add(anime); + } + + MElement paginateLinksDiv = dom.selectFirst("div.paginate-links"); + int lastPage = int.parse(paginateLinksDiv.selectFirst("a.next").previousElementSibling.text ?? "1"); + + return MPages(list, lastPage > page); + } + + @override + Future getDetail(String url) async { + MDocument dom = parseHtml((await client.get(Uri.parse(url))) .body); + + var anime = new MManga(); + + anime.name = dom.selectFirst("h1.title-border").text; + anime.link = url; + anime.imageUrl = dom.selectFirst("div.category_image img").getSrc; + anime.description = dom.selectFirst("div#series-info").text; + + List genres = dom.selectFirst("span.dizi-tur").text.split(", "); + genres.remove("Anime"); // not needed + anime.genre = genres; + + List results = dom.select("div.bolumust"); + List chapters = []; + for (MElement result in results) { + MElement a = result.select("a")[1]; + MChapter chapter = new MChapter(); + chapter.name = result.selectFirst(".baslik").text + " | " + result.selectFirst("#bolum-ismi").text; + chapter.url = a.getHref; + chapters.add(chapter); + } + anime.chapters = chapters; + + return anime; + } + + @override + Future> getVideoList(String url) async { + MDocument dom = parseHtml((await client.get(Uri.parse(url))) .body); + String id = dom.selectFirst("#takip_et_izledim_Calis").attr("data-ilanid"); + var json = json.decode((await client.get(Uri.parse("${source.baseUrl}/wp-admin/admin-ajax.php?action=playlist&pid=${id}"))).body)[0]; + var sources = json["sources"]; + List videos = []; + for (var source in sources) { + MVideo video = new MVideo(); + video.url = source["file"]; + video.originalUrl = source["file"]; + video.quality = source["label"]; + video.headers = {"Referer": url}; + videos.add(video); + } + + String quality = getPreferenceValue(source.id, "preferred_quality"); + videos.sort((MVideo a, MVideo b) => (b.quality.contains(quality) ? 1 : 0) - (a.quality.contains(quality) ? 1 : 0)); + + return videos; + } + + @override + List getFilterList() { + return [ + HeaderFilter("Filtrele"), + SelectFilter("Sort", "Sırala", 0, [ + SelectFilterOption("IMDb Puanına Göre", "meta_value"), + SelectFilterOption("Alfabetik", "name"), + SelectFilterOption("Eklenme Tarihine Göre", "ID") + ]), + TextFilter("Year", "Yapım Yılı"), + SelectFilter("Genre", "Tür", 0, [ + SelectFilterOption("Kategori Seçin", ""), + SelectFilterOption("Aksiyon", "aksiyon"), + SelectFilterOption("Arabalar", "araba"), + SelectFilterOption("Askeri", "askeri"), + SelectFilterOption("Bilim Kurgu", "bilim"), + SelectFilterOption("Büyü", "buyu"), + SelectFilterOption("Doğaüstü Güçler", "doga"), + SelectFilterOption("Dövüş Sanatları", "dovus"), + SelectFilterOption("Dram", "dram"), + SelectFilterOption("Ecchi", "ecchi"), + SelectFilterOption("Fantastik", "fantastik"), + SelectFilterOption("Gerilim", "gerilim"), + SelectFilterOption("Gizem", "gizem"), + SelectFilterOption("Harem", "harem"), + SelectFilterOption("Isekai", "isekai"), + SelectFilterOption("Komedi", "komedi"), + SelectFilterOption("Korku", "korku"), + SelectFilterOption("Macera", "macera"), + SelectFilterOption("Mecha", "mecha"), + SelectFilterOption("Müzik", "muzik"), + SelectFilterOption("Okul", "okul"), + SelectFilterOption("Oyun", "oyun"), + SelectFilterOption("Parodi", "parodi"), + SelectFilterOption("Polisiye", "polisiye"), + SelectFilterOption("Psikolojik", "psikolojik"), + SelectFilterOption("Romantizm", "romantizm"), + SelectFilterOption("Samuray", "samuray"), + SelectFilterOption("Seinen", "seinen"), + SelectFilterOption("Shoujo", "shoujo"), + SelectFilterOption("Shounen", "shounen"), + SelectFilterOption("Spor", "spor"), + SelectFilterOption("Suç", "suc"), + SelectFilterOption("Süper Güçler", "super"), + SelectFilterOption("Şeytanlar", "seytan"), + SelectFilterOption("Şizofreni", "sizofreni"), + SelectFilterOption("Tarihi", "tarihi"), + SelectFilterOption("Uzay", "uzay"), + SelectFilterOption("Vampir", "vampir"), + SelectFilterOption("Yaşamdan Kesitler", "yasam") + ]), + SelectFilter("MinIMDBRating", "Min. IMBD Puanı", 0, [ + SelectFilterOption("1", "0"), // value 1 looks like buggy so use 0 it wont make any difference. + SelectFilterOption("2", "2"), + SelectFilterOption("3", "3"), + SelectFilterOption("4", "4"), + SelectFilterOption("5", "5"), + SelectFilterOption("6", "6"), + SelectFilterOption("7", "7"), + SelectFilterOption("8", "8"), + SelectFilterOption("9", "9") + ]) + ]; + } + + @override + List getSourcePreferences() { + return [ + ListPreference( + key: "preferred_quality", + title: "Tercih edilen kalite", + summary: "", + valueIndex: 0, + entries: ["1080p", "480p"], // I only saw 1080p and 480p in diziWatch. + entryValues: ["1080", "480"]) + ]; + } +} + +DiziWatch main(MSource source) { + return DiziWatch(source:source); +} diff --git a/dart/anime/src/tr/diziwatch/icon.png b/dart/anime/src/tr/diziwatch/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d903b3b497c87d40193844d6a66358c94abddbdb GIT binary patch literal 13293 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 XqNwqRXa0ZlA`r5YN)mNq#=-vwRb#)3 literal 0 HcmV?d00001 diff --git a/dart/anime/src/tr/diziwatch/source.dart b/dart/anime/src/tr/diziwatch/source.dart new file mode 100644 index 00000000..fdef5bc5 --- /dev/null +++ b/dart/anime/src/tr/diziwatch/source.dart @@ -0,0 +1,16 @@ +import '../../../../../model/source.dart'; + +Source get diziwatchSource => _diziwatchSource; +const _diziwatchVersion = "0.0.1"; +const _diziwatchSourceCodeUrl = + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/tr/diziwatch/diziwatch.dart"; +Source _diziwatchSource = Source( + name: "diziWatch", + baseUrl: "https://diziwatch.net", + lang: "tr", + typeSource: "single", + iconUrl: + "https://raw.githubusercontent.com/kodjodevf/mangayomi-extensions/$branchName/dart/anime/src/tr/diziwatch/icon.png", + sourceCodeUrl: _diziwatchSourceCodeUrl, + version: _diziwatchVersion, + isManga: false);