diff --git a/src/pt/animefire/AndroidManifest.xml b/src/pt/animefire/AndroidManifest.xml index 94339ee7a..4ec750389 100644 --- a/src/pt/animefire/AndroidManifest.xml +++ b/src/pt/animefire/AndroidManifest.xml @@ -1,2 +1,24 @@ - + + + + + + + + + + + + + + + diff --git a/src/pt/animefire/build.gradle b/src/pt/animefire/build.gradle index 1c3d5a31c..3019ca9bf 100644 --- a/src/pt/animefire/build.gradle +++ b/src/pt/animefire/build.gradle @@ -6,9 +6,13 @@ ext { extName = 'Anime Fire' pkgNameSuffix = 'pt.animefire' extClass = '.AnimeFire' - extVersionCode = 1 + extVersionCode = 2 libVersion = '12' } +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" +} + apply from: "$rootDir/common.gradle" diff --git a/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AFConstants.kt b/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AFConstants.kt new file mode 100644 index 000000000..b7ce89608 --- /dev/null +++ b/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AFConstants.kt @@ -0,0 +1,9 @@ +package eu.kanade.tachiyomi.animeextension.pt.animefire + +object AFConstants { + const val ACCEPT_LANGUAGE = "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7" + const val USER_AGENT = "Mozilla/5.0 (Linux; Android 10; SM-A307GT Build/QP1A.190711.020;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.5005.125 Mobile Safari/537.36" + const val PREFERRED_QUALITY = "preferred_quality" + const val PREFIX_SEARCH = "id:" + val QUALITY_LIST = arrayOf("360p", "720p") +} diff --git a/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AFUrlActivity.kt b/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AFUrlActivity.kt new file mode 100644 index 000000000..d22e57513 --- /dev/null +++ b/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AFUrlActivity.kt @@ -0,0 +1,42 @@ +package eu.kanade.tachiyomi.animeextension.pt.animefire + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +/** + * Springboard that accepts https://animefire.net/animes/ intents + * and redirects them to the main Aniyomi process. + */ +class AFUrlActivity : Activity() { + + private val TAG = "AFUrlActivity" + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size > 1) { + val id = pathSegments[1] + val searchQuery = AFConstants.PREFIX_SEARCH + id + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.ANIMESEARCH" + putExtra("query", searchQuery) + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e(TAG, e.toString()) + } + } else { + Log.e(TAG, "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } +} diff --git a/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AnimeFire.kt b/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AnimeFire.kt index 251e0c981..03479fb6c 100644 --- a/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AnimeFire.kt +++ b/src/pt/animefire/src/eu/kanade/tachiyomi/animeextension/pt/animefire/AnimeFire.kt @@ -5,6 +5,7 @@ import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.pt.animefire.extractors.AnimeFireExtractor +import eu.kanade.tachiyomi.animeextension.pt.animefire.extractors.IframeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage @@ -49,7 +50,7 @@ class AnimeFire : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun headersBuilder(): Headers.Builder = Headers.Builder() .add("Referer", baseUrl) - .add("Accept-Language", ACCEPT_LANGUAGE) + .add("Accept-Language", AFConstants.ACCEPT_LANGUAGE) // ============================== Popular =============================== override fun popularAnimeSelector() = latestUpdatesSelector() @@ -75,8 +76,12 @@ class AnimeFire : ConfigurableAnimeSource, ParsedAnimeHttpSource() { // ============================ Video Links ============================= override fun videoListParse(response: Response): List