diff --git a/src/ar/mangalink/AndroidManifest.xml b/src/ar/mangalink/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/ar/mangalink/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest package="eu.kanade.tachiyomi.extension" /> diff --git a/src/ar/mangalink/build.gradle b/src/ar/mangalink/build.gradle deleted file mode 100644 index 90dfe8b3e..000000000 --- a/src/ar/mangalink/build.gradle +++ /dev/null @@ -1,11 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'MangaLink' - pkgNameSuffix = 'ar.mangalink' - extClass = '.MangaLink' - extVersionCode = 6 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/ar/mangalink/res/mipmap-hdpi/ic_launcher.png b/src/ar/mangalink/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index b577e79c9..000000000 Binary files a/src/ar/mangalink/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangalink/res/mipmap-mdpi/ic_launcher.png b/src/ar/mangalink/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index e65846743..000000000 Binary files a/src/ar/mangalink/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangalink/res/mipmap-xhdpi/ic_launcher.png b/src/ar/mangalink/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 1e1b69b64..000000000 Binary files a/src/ar/mangalink/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangalink/res/mipmap-xxhdpi/ic_launcher.png b/src/ar/mangalink/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index b3aaf36b6..000000000 Binary files a/src/ar/mangalink/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangalink/res/mipmap-xxxhdpi/ic_launcher.png b/src/ar/mangalink/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 902a843da..000000000 Binary files a/src/ar/mangalink/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/ar/mangalink/res/web_hi_res_512.png b/src/ar/mangalink/res/web_hi_res_512.png deleted file mode 100644 index 1dbcbf5f1..000000000 Binary files a/src/ar/mangalink/res/web_hi_res_512.png and /dev/null differ diff --git a/src/ar/mangalink/src/eu/kanade/tachiyomi/extension/ar/mangalink/MangaLink.kt b/src/ar/mangalink/src/eu/kanade/tachiyomi/extension/ar/mangalink/MangaLink.kt deleted file mode 100644 index 1daf20101..000000000 --- a/src/ar/mangalink/src/eu/kanade/tachiyomi/extension/ar/mangalink/MangaLink.kt +++ /dev/null @@ -1,169 +0,0 @@ -package eu.kanade.tachiyomi.extension.ar.mangalink - -import android.app.Application -import android.content.SharedPreferences -import androidx.preference.ListPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.source.ConfigurableSource -import eu.kanade.tachiyomi.source.model.Filter -import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.Page -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import eu.kanade.tachiyomi.source.online.ParsedHttpSource -import okhttp3.HttpUrl.Companion.toHttpUrlOrNull -import okhttp3.OkHttpClient -import okhttp3.Request -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get - -class MangaLink : ConfigurableSource, ParsedHttpSource() { - - private val preferences: SharedPreferences by lazy { - Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) - } - - override val name = "MangaLink" - - override val baseUrl by lazy { preferences.getString("preferred_domain", "http://135.181.209.99")!! } - - override val lang = "ar" - - override val supportsLatest = true - - override val client: OkHttpClient = network.cloudflareClient - - // Popular - - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/mangas?page=$page") - } - - override fun popularMangaSelector() = "div.card" - - override fun popularMangaFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("a:has(h6)").let { - setUrlWithoutDomain(it.attr("href")) - title = it.text() - } - // thumbnail_url = "http://135.181.209.99" + element.select("img").attr("abs:data-src") - } - } - - override fun popularMangaNextPageSelector() = "a[rel=next]" - - // Latest - - override fun latestUpdatesRequest(page: Int): Request { - return GET(baseUrl) - } - - override fun latestUpdatesSelector() = popularMangaSelector() - - override fun latestUpdatesFromElement(element: Element): SManga = popularMangaFromElement(element) - - override fun latestUpdatesNextPageSelector(): String? = null - - // Search - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val url = "$baseUrl/mangas?page=$page&query=$query".toHttpUrlOrNull()!!.newBuilder() - filters.forEach { filter -> - when (filter) { - is TypeFilter -> { - filter.state - .filter { it.state != Filter.TriState.STATE_IGNORE } - .forEach { url.addQueryParameter("story[]", it.id) } - } - } - } - return GET(url.build().toString(), headers) - } - - override fun searchMangaSelector() = popularMangaSelector() - - override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element) - - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() - - // Details - - override fun mangaDetailsParse(document: Document): SManga { - return SManga.create().apply { - document.select("div.card").first().let { info -> - title = info.select("h1").text() - // add series type(manga/manhwa/manhua/other) thinggy to genre - genre = info.select("span.d-flex a.btn, span:nth-child(1) > label:nth-child(2)").joinToString { it.text() } - description = info.select("p.card-text").text() - thumbnail_url = info.select("img").attr("abs:src") - } - } - } - - // Chapters - - override fun chapterListSelector() = "div.card-body > a.btn" - - override fun chapterFromElement(element: Element): SChapter { - return SChapter.create().apply { - name = "# ${element.text()}" - setUrlWithoutDomain(element.attr("href")) - } - } - - // Pages - - override fun pageListParse(document: Document): List<Page> { - return document.select("div#content img").mapIndexed { i, img -> - Page(i, "", img.attr("abs:data-src").replace("https://mangalink.cc", "http://135.181.209.99")) - } - } - - override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") - - // Filters - - override fun getFilterList() = FilterList( - Filter.Header("Type exclusion not available for this source"), - Filter.Separator(), - TypeFilter(getTypeList()), - ) - - class Type(name: String, val id: String = name) : Filter.TriState(name) - class TypeFilter(types: List<Type>) : Filter.Group<Type>("Type", types) - - open fun getTypeList(): List<Type> = listOf( - Type("<--->", ""), - Type("مانجا(يابانية)", "1"), - Type("مانهوا(كورية)", "2"), - Type("مانها(صينية)", "3"), - Type("ويب تون", "4"), - Type("كوميك", "5"), - Type("غير معروف", "6"), - ) - - // Preferences - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - val domainPref = ListPreference(screen.context).apply { - key = "preferred_domain" - title = "Preferred domain" - entries = arrayOf("135.181.209.99", "mangalink.org") - entryValues = arrayOf("http://135.181.209.99", "https://mangalink.org") - setDefaultValue("http://135.181.209.99") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = findIndexOfValue(selected) - val entry = entryValues[index] as String - preferences.edit().putString(key, entry).commit() - } - } - screen.addPreference(domainPref) - } -}