Dopebox: Add one more domain (#844)
* added one more domain * Update build.gradle
This commit is contained in:
@ -5,7 +5,7 @@ ext {
|
||||
extName = 'DopeBox'
|
||||
pkgNameSuffix = 'en.dopebox'
|
||||
extClass = '.DopeBox'
|
||||
extVersionCode = 7
|
||||
extVersionCode = 8
|
||||
libVersion = '13'
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
override val name = "DopeBox"
|
||||
|
||||
override val baseUrl = "https://dopebox.to"
|
||||
override val baseUrl by lazy { preferences.getString("preferred_domain", "https://dopebox.to")!! }
|
||||
|
||||
override val lang = "en"
|
||||
|
||||
@ -51,7 +51,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
}
|
||||
override fun headersBuilder(): Headers.Builder {
|
||||
return super.headersBuilder()
|
||||
.add("Referer", "https://dopebox.to/")
|
||||
.add("Referer", "$baseUrl/")
|
||||
}
|
||||
|
||||
override fun popularAnimeSelector(): String = "div.film_list-wrap div.flw-item div.film-poster"
|
||||
@ -79,7 +79,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
val id = infoElement.attr("data-id")
|
||||
val dataType = infoElement.attr("data-type") // Tv = 2 or movie = 1
|
||||
if (dataType == "2") {
|
||||
val seasonUrl = "https://dopebox.to/ajax/v2/tv/seasons/$id"
|
||||
val seasonUrl = "$baseUrl/ajax/v2/tv/seasons/$id"
|
||||
val seasonsHtml = client.newCall(
|
||||
GET(
|
||||
seasonUrl,
|
||||
@ -92,7 +92,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
episodeList.addAll(seasonEpList)
|
||||
}
|
||||
} else {
|
||||
val movieUrl = "https://dopebox.to/ajax/movie/episodes/$id"
|
||||
val movieUrl = "$baseUrl/ajax/movie/episodes/$id"
|
||||
val episode = SEpisode.create()
|
||||
episode.name = document.select("h2.heading-name").text()
|
||||
episode.episode_number = 1F
|
||||
@ -107,7 +107,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
private fun parseEpisodesFromSeries(element: Element): List<SEpisode> {
|
||||
val seasonId = element.attr("data-id")
|
||||
val seasonName = element.text()
|
||||
val episodesUrl = "https://dopebox.to/ajax/v2/season/episodes/$seasonId"
|
||||
val episodesUrl = "$baseUrl/ajax/v2/season/episodes/$seasonId"
|
||||
val episodesHtml = client.newCall(
|
||||
GET(
|
||||
episodesUrl,
|
||||
@ -123,7 +123,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
val epNum = element.select("div.episode-number").text()
|
||||
val epName = element.select("h3.film-name a").text()
|
||||
episode.name = "$seasonName $epNum $epName"
|
||||
episode.setUrlWithoutDomain("https://dopebox.to/ajax/v2/episode/servers/$episodeId")
|
||||
episode.setUrlWithoutDomain("$baseUrl/ajax/v2/episode/servers/$episodeId")
|
||||
return episode
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
// get embed id
|
||||
val getVidID = document.selectFirst("a:contains(Vidcloud)").attr("data-id")
|
||||
val getVidApi = client.newCall(GET("https://dopebox.to/ajax/get_link/" + getVidID)).execute().asJsoup()
|
||||
val getVidApi = client.newCall(GET("$baseUrl/ajax/get_link/" + getVidID)).execute().asJsoup()
|
||||
|
||||
// streamrapid URL
|
||||
val getVideoEmbed = getVidApi.text().substringAfter("link\":\"").substringBefore("\"")
|
||||
@ -151,7 +151,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
val callVideolink = client.newCall(GET(getVideoEmbed, refererHeaders)).execute().asJsoup()
|
||||
val uri = Uri.parse(getVideoEmbed)
|
||||
val domain = (Base64.encodeToString((uri.scheme + "://" + uri.host + ":443").encodeToByteArray(), Base64.NO_PADDING) + ".").replace("\n", "")
|
||||
val soup = Jsoup.connect(getVideoEmbed).referrer("https://dopebox.to/").get().toString().replace("\n", "")
|
||||
val soup = Jsoup.connect(getVideoEmbed).referrer("$baseUrl/").get().toString().replace("\n", "")
|
||||
|
||||
val key = soup.substringAfter("var recaptchaSiteKey = '").substringBefore("',")
|
||||
val number = soup.substringAfter("recaptchaNumber = '").substringBefore("';")
|
||||
@ -169,7 +169,6 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
val iframeResponse = client.newCall(GET(jsonLink, reloadHeaderss))
|
||||
.execute().asJsoup()
|
||||
*/
|
||||
|
||||
return videosFromElement(jsonLink)
|
||||
}
|
||||
|
||||
@ -307,6 +306,21 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
// Preferences
|
||||
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
val domainPref = ListPreference(screen.context).apply {
|
||||
key = "preferred_domain"
|
||||
title = "Preferred domain (requires app restart)"
|
||||
entries = arrayOf("dopebox.to", "dopebox.se")
|
||||
entryValues = arrayOf("https://dopebox.to", "https://dopebox.se")
|
||||
setDefaultValue("https://dopebox.to")
|
||||
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()
|
||||
}
|
||||
}
|
||||
val videoQualityPref = ListPreference(screen.context).apply {
|
||||
key = "preferred_quality"
|
||||
title = "Preferred quality"
|
||||
@ -322,6 +336,7 @@ class DopeBox : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
preferences.edit().putString(key, entry).commit()
|
||||
}
|
||||
}
|
||||
screen.addPreference(domainPref)
|
||||
screen.addPreference(videoQualityPref)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user