diff --git a/build.gradle b/build.gradle index df18e3c2e..4c65a4a4c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { - ext.kotlin_version = '1.4.32' - ext.coroutines_version = '1.4.3' + ext.kotlin_version = '1.6.10' + ext.coroutines_version = '1.6.0' repositories { mavenCentral() google() @@ -10,7 +10,7 @@ buildscript { classpath 'com.android.tools.build:gradle:4.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" - classpath 'org.jmailen.gradle:kotlinter-gradle:3.3.0' + classpath 'org.jmailen.gradle:kotlinter-gradle:3.6.0' } } diff --git a/src/en/gogoanime/build.gradle b/src/en/gogoanime/build.gradle index b011d7f10..aa42e2b4e 100644 --- a/src/en/gogoanime/build.gradle +++ b/src/en/gogoanime/build.gradle @@ -1,12 +1,12 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'Gogoanime' - pkgNameSuffix = 'en.gogoanime' - extClass = '.GogoAnime' - extVersionCode = 29 - libVersion = '12' -} - -apply from: "$rootDir/common.gradle" +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'Gogoanime' + pkgNameSuffix = 'en.gogoanime' + extClass = '.GogoAnime' + extVersionCode = 29 + libVersion = '12' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/gogoanime/src/eu/kanade/tachiyomi/animeextension/en/gogoanime/GogoAnime.kt b/src/en/gogoanime/src/eu/kanade/tachiyomi/animeextension/en/gogoanime/GogoAnime.kt index 5b3cc894e..e26db1930 100644 --- a/src/en/gogoanime/src/eu/kanade/tachiyomi/animeextension/en/gogoanime/GogoAnime.kt +++ b/src/en/gogoanime/src/eu/kanade/tachiyomi/animeextension/en/gogoanime/GogoAnime.kt @@ -1,274 +1,274 @@ -package eu.kanade.tachiyomi.animeextension.en.gogoanime - -import android.app.Application -import android.content.SharedPreferences -import androidx.preference.ListPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.animeextension.en.gogoanime.extractors.DoodExtractor -import eu.kanade.tachiyomi.animeextension.en.gogoanime.extractors.GogoCdnExtractor -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.model.AnimeFilter -import eu.kanade.tachiyomi.animesource.model.AnimeFilterList -import eu.kanade.tachiyomi.animesource.model.SAnime -import eu.kanade.tachiyomi.animesource.model.SEpisode -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.json.Json -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy -import java.lang.Exception - -@ExperimentalSerializationApi -class GogoAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { - - override val name = "Gogoanime" - - override val baseUrl = "https://gogoanime.fi" - - override val lang = "en" - - override val supportsLatest = true - - override val client: OkHttpClient = network.cloudflareClient - - private val json: Json by injectLazy() - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - override fun popularAnimeSelector(): String = "div.img a" - - override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/popular.html?page=$page") - - override fun popularAnimeFromElement(element: Element): SAnime { - val anime = SAnime.create() - anime.setUrlWithoutDomain(element.attr("href")) - anime.thumbnail_url = element.select("img").first().attr("src") - anime.title = element.attr("title") - return anime - } - - override fun popularAnimeNextPageSelector(): String = "ul.pagination-list li:last-child:not(.selected)" - - override fun episodeListSelector() = "ul#episode_page li a" - - override fun episodeListParse(response: Response): List { - val document = response.asJsoup() - val totalEpisodes = document.select(episodeListSelector()).last().attr("ep_end") - val id = document.select("input#movie_id").attr("value") - return episodesRequest(totalEpisodes, id) - } - - private fun episodesRequest(totalEpisodes: String, id: String): List { - val request = GET("https://ajax.gogo-load.com/ajax/load-list-episode?ep_start=0&ep_end=$totalEpisodes&id=$id", headers) - val epResponse = client.newCall(request).execute() - val document = epResponse.asJsoup() - return document.select("a").map { episodeFromElement(it) } - } - - override fun episodeFromElement(element: Element): SEpisode { - val episode = SEpisode.create() - episode.setUrlWithoutDomain(baseUrl + element.attr("href").substringAfter(" ")) - val ep = element.selectFirst("div.name").ownText().substringAfter(" ") - episode.episode_number = ep.toFloat() - episode.name = "Episode $ep" - episode.date_upload = System.currentTimeMillis() - return episode - } - - override fun videoListParse(response: Response): List