mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
Merge branch 'master' into adityajd-patch-1
This commit is contained in:
commit
dae80de4da
19 changed files with 45 additions and 78 deletions
|
@ -38,5 +38,5 @@ cloudstream {
|
||||||
"OVA",
|
"OVA",
|
||||||
)
|
)
|
||||||
|
|
||||||
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1200425504432472176/Anichi.png"
|
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1200425504432472176/Anichi.png?ex=65eb0c5f&is=65d8975f&hm=974898b22b08774a5caa835b40546a6419280446b68255147dd1febb3abe9119&"
|
||||||
}
|
}
|
|
@ -7,7 +7,9 @@ import com.lagradost.cloudstream3.utils.loadExtractor
|
||||||
|
|
||||||
class DutaMovie : Gomov() {
|
class DutaMovie : Gomov() {
|
||||||
|
|
||||||
|
|
||||||
override var mainUrl = "https://google.dutamovie21.mobi"
|
override var mainUrl = "https://google.dutamovie21.mobi"
|
||||||
|
|
||||||
override var name = "DutaMovie"
|
override var name = "DutaMovie"
|
||||||
override val mainPage = mainPageOf(
|
override val mainPage = mainPageOf(
|
||||||
"category/box-office/page/%d/" to "Box Office",
|
"category/box-office/page/%d/" to "Box Office",
|
||||||
|
|
|
@ -4,8 +4,10 @@ import com.lagradost.cloudstream3.mainPageOf
|
||||||
|
|
||||||
class Multiplex : Gomov() {
|
class Multiplex : Gomov() {
|
||||||
|
|
||||||
|
|
||||||
override var mainUrl = "https://imb-bmi.org/"
|
override var mainUrl = "https://imb-bmi.org/"
|
||||||
|
|
||||||
|
|
||||||
override var name = "Multiplex"
|
override var name = "Multiplex"
|
||||||
override val mainPage = mainPageOf(
|
override val mainPage = mainPageOf(
|
||||||
"country/usa/page/%d/" to "Movie",
|
"country/usa/page/%d/" to "Movie",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 3
|
version = 4
|
||||||
|
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
|
|
|
@ -77,7 +77,7 @@ class Kinoger : MainAPI() {
|
||||||
it.toSearchResult()
|
it.toSearchResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
val script = document.selectFirst("script:containsData(pw.show)")?.data()
|
val script = document.selectFirst("script:containsData(kinoger.ru)")?.data()
|
||||||
val data = script?.substringAfter("[")?.substringBeforeLast("]")?.replace("\'", "\"")
|
val data = script?.substringAfter("[")?.substringBeforeLast("]")?.replace("\'", "\"")
|
||||||
val json = AppUtils.tryParseJson<List<List<String>>>("[$data]")
|
val json = AppUtils.tryParseJson<List<List<String>>>("[$data]")
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,9 @@ import org.jsoup.nodes.Element
|
||||||
|
|
||||||
class LayarKacaProvider : MainAPI() {
|
class LayarKacaProvider : MainAPI() {
|
||||||
|
|
||||||
|
|
||||||
override var mainUrl = "https://ayo.lk21official.mom/"
|
override var mainUrl = "https://ayo.lk21official.mom/"
|
||||||
|
|
||||||
private var seriesUrl = "https://tv12.nontondrama.click/"
|
private var seriesUrl = "https://tv12.nontondrama.click/"
|
||||||
|
|
||||||
override var name = "LayarKaca"
|
override var name = "LayarKaca"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 63
|
version = 64
|
||||||
|
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.mainPageOf
|
||||||
class Animesaga : Movierulzhd() {
|
class Animesaga : Movierulzhd() {
|
||||||
|
|
||||||
override var mainUrl = "https://anplay.in"
|
override var mainUrl = "https://anplay.in"
|
||||||
override var name = "Animesaga"
|
override var name = "Anplay"
|
||||||
override val supportedTypes = setOf(
|
override val supportedTypes = setOf(
|
||||||
TvType.Anime,
|
TvType.Anime,
|
||||||
TvType.AnimeMovie,
|
TvType.AnimeMovie,
|
||||||
|
@ -17,5 +17,6 @@ class Animesaga : Movierulzhd() {
|
||||||
"movies" to "Movies",
|
"movies" to "Movies",
|
||||||
"tvshows" to "TV-Shows",
|
"tvshows" to "TV-Shows",
|
||||||
"genre/hindi-dub" to "Hindi Dub",
|
"genre/hindi-dub" to "Hindi Dub",
|
||||||
|
"genre/crunchyroll" to "Crunchyroll",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import java.net.URI
|
||||||
|
|
||||||
open class Movierulzhd : MainAPI() {
|
open class Movierulzhd : MainAPI() {
|
||||||
|
|
||||||
override var mainUrl = "https://movierulzhd.cafe"
|
override var mainUrl = "https://movierulzhd.club"
|
||||||
var directUrl = ""
|
var directUrl = ""
|
||||||
override var name = "Movierulzhd"
|
override var name = "Movierulzhd"
|
||||||
override val hasMainPage = true
|
override val hasMainPage = true
|
||||||
|
|
|
@ -12,7 +12,9 @@ import org.jsoup.nodes.Element
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
|
|
||||||
open class RebahinProvider : MainAPI() {
|
open class RebahinProvider : MainAPI() {
|
||||||
|
|
||||||
override var mainUrl = "http://37.60.242.22/"
|
override var mainUrl = "http://37.60.242.22/"
|
||||||
|
|
||||||
private var directUrl: String? = null
|
private var directUrl: String? = null
|
||||||
override var name = "Rebahin"
|
override var name = "Rebahin"
|
||||||
override val hasMainPage = true
|
override val hasMainPage = true
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import org.jetbrains.kotlin.konan.properties.Properties
|
import org.jetbrains.kotlin.konan.properties.Properties
|
||||||
|
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 225
|
version = 227
|
||||||
|
|
||||||
android {
|
android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
|
@ -42,5 +42,5 @@ cloudstream {
|
||||||
"Movie",
|
"Movie",
|
||||||
)
|
)
|
||||||
|
|
||||||
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1193122096159674448/2-modified.png"
|
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1193122096159674448/2-modified.png?ex=65ec2a0a&is=65d9b50a&hm=f1e0b0165e71101e5440b47592d9e15727a6c00cdeb3512108067bfbdbef1af7&"
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,48 +202,6 @@ object SoraExtractor : SoraStream() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun invokeMoviefiction(
|
|
||||||
title: String? = null,
|
|
||||||
season: Int? = null,
|
|
||||||
episode: Int? = null,
|
|
||||||
subtitleCallback: (SubtitleFile) -> Unit,
|
|
||||||
callback: (ExtractorLink) -> Unit
|
|
||||||
) {
|
|
||||||
val fixTitle = title?.createSlug()
|
|
||||||
val url = if (season == null) {
|
|
||||||
"$moviefictionAPI/movies/$fixTitle"
|
|
||||||
} else {
|
|
||||||
"$moviefictionAPI/episode/$fixTitle-${season}x${episode}"
|
|
||||||
}
|
|
||||||
val req = app.get(url)
|
|
||||||
val directUrl = getBaseUrl(req.url)
|
|
||||||
req.document.select("ul.bx-lst.aa-tbs li a").apmap {
|
|
||||||
val iframe = app.get(base64Decode(it.attr("data-src"))).document.selectFirst("iframe")
|
|
||||||
?.attr("src") ?: return@apmap
|
|
||||||
loadExtractor(iframe, "$directUrl/", subtitleCallback) { link ->
|
|
||||||
when {
|
|
||||||
link.name == "Bestx" && link.quality == Qualities.Unknown.value -> {
|
|
||||||
callback.invoke(
|
|
||||||
ExtractorLink(
|
|
||||||
"Moviefiction",
|
|
||||||
"Moviefiction",
|
|
||||||
link.url,
|
|
||||||
link.referer,
|
|
||||||
Qualities.P1080.value,
|
|
||||||
link.type,
|
|
||||||
link.headers,
|
|
||||||
link.extractorData
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
link.name != "Bestx" -> {
|
|
||||||
callback.invoke(link)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun invokeAoneroom(
|
suspend fun invokeAoneroom(
|
||||||
title: String? = null,
|
title: String? = null,
|
||||||
year: Int? = null,
|
year: Int? = null,
|
||||||
|
@ -899,7 +857,7 @@ object SoraExtractor : SoraStream() {
|
||||||
invokeAnimetosho(malId, season, episode, subtitleCallback, callback)
|
invokeAnimetosho(malId, season, episode, subtitleCallback, callback)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
invokeAniwatch(zoroIds, episode, subtitleCallback, callback)
|
invokeHianime(zoroIds, episode, subtitleCallback, callback)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
invokeAniwave(aniwaveId, episode, subtitleCallback, callback)
|
invokeAniwave(aniwaveId, episode, subtitleCallback, callback)
|
||||||
|
@ -997,7 +955,7 @@ object SoraExtractor : SoraStream() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun invokeAniwatch(
|
private suspend fun invokeHianime(
|
||||||
animeIds: List<String?>? = null,
|
animeIds: List<String?>? = null,
|
||||||
episode: Int? = null,
|
episode: Int? = null,
|
||||||
subtitleCallback: (SubtitleFile) -> Unit,
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
|
@ -1008,17 +966,17 @@ object SoraExtractor : SoraStream() {
|
||||||
)
|
)
|
||||||
animeIds?.apmap { id ->
|
animeIds?.apmap { id ->
|
||||||
val episodeId = app.get(
|
val episodeId = app.get(
|
||||||
"$aniwatchAPI/ajax/v2/episode/list/${id ?: return@apmap}",
|
"$hianimeAPI/ajax/v2/episode/list/${id ?: return@apmap}",
|
||||||
headers = headers
|
headers = headers
|
||||||
).parsedSafe<AniwatchResponses>()?.html?.let {
|
).parsedSafe<HianimeResponses>()?.html?.let {
|
||||||
Jsoup.parse(it)
|
Jsoup.parse(it)
|
||||||
}?.select("div.ss-list a")?.find { it.attr("data-number") == "${episode ?: 1}" }
|
}?.select("div.ss-list a")?.find { it.attr("data-number") == "${episode ?: 1}" }
|
||||||
?.attr("data-id")
|
?.attr("data-id")
|
||||||
|
|
||||||
val servers = app.get(
|
val servers = app.get(
|
||||||
"$aniwatchAPI/ajax/v2/episode/servers?episodeId=${episodeId ?: return@apmap}",
|
"$hianimeAPI/ajax/v2/episode/servers?episodeId=${episodeId ?: return@apmap}",
|
||||||
headers = headers
|
headers = headers
|
||||||
).parsedSafe<AniwatchResponses>()?.html?.let { Jsoup.parse(it) }
|
).parsedSafe<HianimeResponses>()?.html?.let { Jsoup.parse(it) }
|
||||||
?.select("div.item.server-item")?.map {
|
?.select("div.item.server-item")?.map {
|
||||||
Triple(
|
Triple(
|
||||||
it.text(),
|
it.text(),
|
||||||
|
@ -1029,15 +987,15 @@ object SoraExtractor : SoraStream() {
|
||||||
|
|
||||||
servers?.apmap servers@{ server ->
|
servers?.apmap servers@{ server ->
|
||||||
val iframe = app.get(
|
val iframe = app.get(
|
||||||
"$aniwatchAPI/ajax/v2/episode/sources?id=${server.second ?: return@servers}",
|
"$hianimeAPI/ajax/v2/episode/sources?id=${server.second ?: return@servers}",
|
||||||
headers = headers
|
headers = headers
|
||||||
).parsedSafe<AniwatchResponses>()?.link
|
).parsedSafe<HianimeResponses>()?.link
|
||||||
?: return@servers
|
?: return@servers
|
||||||
val audio = if (server.third == "sub") "Raw" else "English Dub"
|
val audio = if (server.third == "sub") "Raw" else "English Dub"
|
||||||
loadCustomExtractor(
|
loadCustomExtractor(
|
||||||
"${server.first} [$audio]",
|
"${server.first} [$audio]",
|
||||||
iframe,
|
iframe,
|
||||||
"$aniwatchAPI/",
|
"$hianimeAPI/",
|
||||||
subtitleCallback,
|
subtitleCallback,
|
||||||
callback,
|
callback,
|
||||||
)
|
)
|
||||||
|
@ -1377,14 +1335,16 @@ object SoraExtractor : SoraStream() {
|
||||||
) {
|
) {
|
||||||
val slugTitle = title?.createSlug()
|
val slugTitle = title?.createSlug()
|
||||||
val (seasonSlug, episodeSlug) = getEpisodeSlug(season, episode)
|
val (seasonSlug, episodeSlug) = getEpisodeSlug(season, episode)
|
||||||
val req = app.get("$m4uhdAPI/search/$slugTitle.html", timeout = 20)
|
val req = app.get("$m4uhdAPI/search/$slugTitle", timeout = 20)
|
||||||
val referer = getBaseUrl(req.url)
|
val referer = getBaseUrl(req.url)
|
||||||
|
|
||||||
val media = req.document.select("div.row div.item > a").map { it.attr("href") }
|
val media = req.document.select("div.row div.item a").map { it.attr("href") }
|
||||||
val mediaUrl = if(media.size == 1) {
|
val mediaUrl = if (media.size == 1) {
|
||||||
media.first()
|
media.first()
|
||||||
} else {
|
} else {
|
||||||
media.find { it.contains("-$slugTitle-") && it.contains("-$year-") }
|
media.find {
|
||||||
|
if(season == null) it.startsWith("movies/$slugTitle-$year.") else it.startsWith("tv-series/$slugTitle-$year.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val link = fixUrl(mediaUrl ?: return, referer)
|
val link = fixUrl(mediaUrl ?: return, referer)
|
||||||
|
@ -1398,7 +1358,7 @@ object SoraExtractor : SoraStream() {
|
||||||
doc.select("div.le-server span").map { it.attr("data") }
|
doc.select("div.le-server span").map { it.attr("data") }
|
||||||
} else {
|
} else {
|
||||||
val idepisode =
|
val idepisode =
|
||||||
doc.selectFirst("div.season > p:matches((?i)S$seasonSlug-E$episodeSlug) button")
|
doc.selectFirst("button[class=episode]:matches(S$seasonSlug-E$episodeSlug)")
|
||||||
?.attr("idepisode")
|
?.attr("idepisode")
|
||||||
?: return
|
?: return
|
||||||
val requestEmbed = app.post(
|
val requestEmbed = app.post(
|
||||||
|
@ -2420,7 +2380,7 @@ object SoraExtractor : SoraStream() {
|
||||||
season: Int? = null,
|
season: Int? = null,
|
||||||
episode: Int? = null,
|
episode: Int? = null,
|
||||||
callback: (ExtractorLink) -> Unit,
|
callback: (ExtractorLink) -> Unit,
|
||||||
host: String = "https://dozzlegram-duj-i-280.site",
|
host: String = "https://guinsters286nedril.com",
|
||||||
) {
|
) {
|
||||||
val res = app.get(
|
val res = app.get(
|
||||||
"$host/play/$imdbId",
|
"$host/play/$imdbId",
|
||||||
|
|
|
@ -274,7 +274,7 @@ data class MALSyncResponses(
|
||||||
@JsonProperty("Sites") val sites: MALSyncSites? = null,
|
@JsonProperty("Sites") val sites: MALSyncSites? = null,
|
||||||
)
|
)
|
||||||
|
|
||||||
data class AniwatchResponses(
|
data class HianimeResponses(
|
||||||
@JsonProperty("html") val html: String? = null,
|
@JsonProperty("html") val html: String? = null,
|
||||||
@JsonProperty("link") val link: String? = null,
|
@JsonProperty("link") val link: String? = null,
|
||||||
)
|
)
|
||||||
|
|
|
@ -85,12 +85,12 @@ open class SoraStream : TmdbProvider() {
|
||||||
const val noverseAPI = "https://www.nollyverse.com"
|
const val noverseAPI = "https://www.nollyverse.com"
|
||||||
const val filmxyAPI = "https://www.filmxy.vip"
|
const val filmxyAPI = "https://www.filmxy.vip"
|
||||||
const val kimcartoonAPI = "https://kimcartoon.li"
|
const val kimcartoonAPI = "https://kimcartoon.li"
|
||||||
const val aniwatchAPI = "https://aniwatch.to"
|
const val hianimeAPI = "https://hianime.to"
|
||||||
const val aniwaveAPI = "https://aniwave.to"
|
const val aniwaveAPI = "https://aniwave.to"
|
||||||
const val crunchyrollAPI = "https://beta-api.crunchyroll.com"
|
const val crunchyrollAPI = "https://beta-api.crunchyroll.com"
|
||||||
const val kissKhAPI = "https://kisskh.co"
|
const val kissKhAPI = "https://kisskh.co"
|
||||||
const val lingAPI = "https://ling-online.net"
|
const val lingAPI = "https://ling-online.net"
|
||||||
const val m4uhdAPI = "https://m4umv.org"
|
const val m4uhdAPI = "https://ww1.streamm4u.ws"
|
||||||
const val rStreamAPI = "https://remotestream.cc"
|
const val rStreamAPI = "https://remotestream.cc"
|
||||||
const val flixonAPI = "https://flixon.lol"
|
const val flixonAPI = "https://flixon.lol"
|
||||||
const val smashyStreamAPI = "https://embed.smashystream.com"
|
const val smashyStreamAPI = "https://embed.smashystream.com"
|
||||||
|
@ -115,9 +115,9 @@ open class SoraStream : TmdbProvider() {
|
||||||
const val mMoviesAPI = "https://multimovies.uno"
|
const val mMoviesAPI = "https://multimovies.uno"
|
||||||
const val watchCartoonAPI = "https://www1.watchcartoononline.bz"
|
const val watchCartoonAPI = "https://www1.watchcartoononline.bz"
|
||||||
const val moflixAPI = "https://moflix-stream.xyz"
|
const val moflixAPI = "https://moflix-stream.xyz"
|
||||||
const val moviefictionAPI = "https://moviefiction.com"
|
|
||||||
const val zoechipAPI = "https://zoechip.org"
|
const val zoechipAPI = "https://zoechip.org"
|
||||||
const val nepuAPI = "https://nepu.to"
|
const val nepuAPI = "https://nepu.to"
|
||||||
|
|
||||||
const val fdMoviesAPI = "https://freedrivemovie.com"
|
const val fdMoviesAPI = "https://freedrivemovie.com"
|
||||||
const val uhdmoviesAPI = "https://uhdmovies.asia"
|
const val uhdmoviesAPI = "https://uhdmovies.asia"
|
||||||
const val hdmovies4uAPI = "https://hdmovies4u.day"
|
const val hdmovies4uAPI = "https://hdmovies4u.day"
|
||||||
|
|
|
@ -29,7 +29,6 @@ import com.hexated.SoraExtractor.invokeVidsrcto
|
||||||
import com.hexated.SoraExtractor.invokeCinemaTv
|
import com.hexated.SoraExtractor.invokeCinemaTv
|
||||||
import com.hexated.SoraExtractor.invokeMoflix
|
import com.hexated.SoraExtractor.invokeMoflix
|
||||||
import com.hexated.SoraExtractor.invokeGhostx
|
import com.hexated.SoraExtractor.invokeGhostx
|
||||||
import com.hexated.SoraExtractor.invokeMoviefiction
|
|
||||||
import com.hexated.SoraExtractor.invokeNepu
|
import com.hexated.SoraExtractor.invokeNepu
|
||||||
import com.hexated.SoraExtractor.invokeWatchCartoon
|
import com.hexated.SoraExtractor.invokeWatchCartoon
|
||||||
import com.hexated.SoraExtractor.invokeWatchsomuch
|
import com.hexated.SoraExtractor.invokeWatchsomuch
|
||||||
|
|
|
@ -38,5 +38,5 @@ cloudstream {
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1196694385061003334/icon.png"
|
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1196694385061003334/icon.png?ex=65efee7e&is=65dd797e&hm=18fa57323826d0cbf3cf5ce7d3f5705de640f2f8d08739d41f95882d2ae0a3e0&"
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 23
|
version = 24
|
||||||
|
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
|
@ -21,5 +21,5 @@ cloudstream {
|
||||||
"Live",
|
"Live",
|
||||||
)
|
)
|
||||||
|
|
||||||
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1193088870212976640/Untitled.jpg"
|
iconUrl = "https://cdn.discordapp.com/attachments/1109266606292488297/1193088870212976640/Untitled.jpg?ex=65ec0b19&is=65d99619&hm=0eaf0f1926b6eb787b80c2eb3000ec9d77e2e706ab0601cad053ad8f677b8cc8&"
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,10 +17,9 @@ class TimefourTv : MainAPI() {
|
||||||
TvType.Live
|
TvType.Live
|
||||||
)
|
)
|
||||||
|
|
||||||
private val homePoster =
|
private val homePoster = "https://cdn.discordapp.com/attachments/1109266606292488297/1193060449193840681/Screenshot_2024-01-06_at_12-14-16_Logo_Maker_Used_By_2.3_Million_Startups.png?ex=65ebf0a1&is=65d97ba1&hm=aa4018534090d5dc69cf16a15ab4663d6f84a742d3f3b5ccad4be779c26517d7&"
|
||||||
"https://cdn.discordapp.com/attachments/1109266606292488297/1193060449193840681/Screenshot_2024-01-06_at_12-14-16_Logo_Maker_Used_By_2.3_Million_Startups.png"
|
|
||||||
private val detailPoster =
|
private val detailPoster =
|
||||||
"https://cdn.discordapp.com/attachments/1109266606292488297/1193060448929595454/Screenshot_2024-01-06_at_12-13-02_Logo_Maker_Used_By_2.3_Million_Startups.png"
|
"https://cdn.discordapp.com/attachments/1109266606292488297/1193060448929595454/Screenshot_2024-01-06_at_12-13-02_Logo_Maker_Used_By_2.3_Million_Startups.png?ex=65ebf0a1&is=65d97ba1&hm=2dc35d2fcc09530f6d9fc963ecf6b9a28eeec1a7c76a083711379c7280dd34dc&"
|
||||||
|
|
||||||
override val mainPage = mainPageOf(
|
override val mainPage = mainPageOf(
|
||||||
"$mainUrl/24-7-channels.php" to "24/7 Channels",
|
"$mainUrl/24-7-channels.php" to "24/7 Channels",
|
||||||
|
|
|
@ -2,7 +2,7 @@ rootProject.name = "CloudstreamPlugins"
|
||||||
|
|
||||||
// This file sets what projects are included. All new projects should get automatically included unless specified in "disabled" variable.
|
// This file sets what projects are included. All new projects should get automatically included unless specified in "disabled" variable.
|
||||||
|
|
||||||
val disabled = listOf<String>("Animixplay","Kickassanime")
|
val disabled = listOf<String>("Animixplay","Kickassanime","Hdfilmcehennemi")
|
||||||
|
|
||||||
File(rootDir, ".").eachDir { dir ->
|
File(rootDir, ".").eachDir { dir ->
|
||||||
if (!disabled.contains(dir.name) && File(dir, "build.gradle.kts").exists()) {
|
if (!disabled.contains(dir.name) && File(dir, "build.gradle.kts").exists()) {
|
||||||
|
|
Loading…
Reference in a new issue