use switch case in getAuthHeader and change default account

This commit is contained in:
Eddy 2022-10-23 12:02:57 +02:00
parent fdee7dfc20
commit 9fef2e58f4
3 changed files with 68 additions and 63 deletions

View File

@ -12,17 +12,17 @@ import me.xdrop.fuzzywuzzy.FuzzySearch
class MacIPTVProvider(override var lang: String) : MainAPI() {
private val defaulmac_adresse =
"mac=00:1a:79:ae:2a:30"
"mac=00:1A:79:aa:53:65"
private val defaultmainUrl =
"http://ultra-box.club/c/"
var defaultname = "BoxIPTV-MatrixOTT |${lang.uppercase()}|"
"http://ky-iptv.com:25461/portalstb"
var defaultname = "ky-iptv |${lang.uppercase()}|"
override var name = "Box Iptv |${lang.uppercase()}|"
override val hasQuickSearch = false
override val hasMainPage = true
override val supportedTypes =
setOf(TvType.Live) // live
private var init = false
private var firstInitDone = false
private var key: String? = ""
companion object {
@ -31,53 +31,61 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
var overrideUrl: String? = null
}
private fun accountInfoNotGood(url: String, mac: String?): Boolean {
return url.uppercase().trim() == "NONE" || url.isBlank() || mac?.uppercase()
?.trim() == "NONE" || mac.isNullOrBlank()
}
private suspend fun getAuthHeader(): Map<String, String> {
mainUrl = overrideUrl.toString()
val main = mainUrl.uppercase().trim()
val localCredentials = loginMac
val mac = localCredentials?.uppercase()?.trim()
if (main == "NONE" || main.isBlank() || mac == "NONE" || mac.isNullOrBlank()) {
mainUrl = defaultmainUrl
name = defaultname
if (!init) {
val url_key = "$mainUrl/portal.php?type=stb&action=handshake&JsHttpRequest=1-xml"
val reponseGetkey = app.get(
url_key, headers = mapOf(
"Cookie" to defaulmac_adresse,
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
)
)
val keyJson = reponseGetkey.parsed<Getkey>()
key = keyJson.js?.token
}
init = true
return mapOf(
"Cookie" to defaulmac_adresse,
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
"Authorization" to "Bearer $key",
)
}
name = (companionName ?: name) + " |${lang.uppercase()}|"
if (!init) {
val url_key = "$mainUrl/portal.php?type=stb&action=handshake&JsHttpRequest=1-xml"
val reponseGetkey = app.get(
url_key, headers = mapOf(
val localCredentials = loginMac
when (true) {
accountInfoNotGood(mainUrl, localCredentials) -> {
mainUrl = defaultmainUrl
name = defaultname
if (!firstInitDone) {
val url_key =
"$mainUrl/portal.php?type=stb&action=handshake&JsHttpRequest=1-xml"
val reponseGetkey = app.get(
url_key, headers = mapOf(
"Cookie" to defaulmac_adresse,
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
)
)
val keyJson = reponseGetkey.parsed<Getkey>()
key = keyJson.js?.token
}
firstInitDone = true
return mapOf(
"Cookie" to defaulmac_adresse,
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
"Authorization" to "Bearer $key",
)
}
else -> {
if (!firstInitDone) {
val url_key =
"$mainUrl/portal.php?type=stb&action=handshake&JsHttpRequest=1-xml"
val reponseGetkey = app.get(
url_key, headers = mapOf(
"Cookie" to "mac=$localCredentials",
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
)
)
val keyJson = reponseGetkey.parsed<Getkey>()
key = keyJson.js?.token
}
firstInitDone = true
return mapOf(
"Cookie" to "mac=$localCredentials",
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
"Authorization" to "Bearer $key",
)
)
val keyJson = reponseGetkey.parsed<Getkey>()
key = keyJson.js?.token
}
}
init = true
return mapOf(
"Cookie" to "mac=$localCredentials",
"User-Agent" to "Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG200 stbapp ver: 2 rev: 250 Safari/533.3",
"Authorization" to "Bearer $key",
)
}
@ -169,18 +177,18 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
override suspend fun load(url: String): LoadResponse {
var link = ""
var title = ""
var link = url
var title = "Your channel"
var posterUrl = ""
var description = ""
val header = getAuthHeader()
var description = "The program for this channel was not found"
val allresultshome: MutableList<SearchResponse> = mutableListOf()
val headerIPTV = getAuthHeader()
for (media in arraymediaPlaylist) {
val keyId = "/-${media.id}-"
if (url.contains(keyId) || url == media.url) {
val epg_url =
"$mainUrl/portal.php?type=itv&action=get_short_epg&ch_id=${media.ch_id}&size=10&JsHttpRequest=1-xml" // descriptif
val response = app.get(epg_url, headers = header)
"$mainUrl/portal.php?type=itv&action=get_short_epg&ch_id=${media.ch_id}&size=10&JsHttpRequest=1-xml" // plot
val response = app.get(epg_url, headers = headerIPTV)
description = getEpg(response.text)
link = media.url
title = media.title
@ -284,8 +292,8 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
var link: String
var lien: String
runBlocking {
val header = getAuthHeader()
val getTokenLink = app.get(TokenLink, headers = header).text
val headerIPTV = getAuthHeader()
val getTokenLink = app.get(TokenLink, headers = headerIPTV).text
val regexGetLink = Regex("""(http.*)\"\},""")
link = regexGetLink.find(getTokenLink)?.groupValues?.get(1).toString()
.replace(
@ -323,11 +331,10 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit,
): Boolean {
val header = getAuthHeader()
val headerIPTV = getAuthHeader()
val TokenLink =
"$mainUrl/portal.php?type=itv&action=create_link&cmd=ffmpeg%20$data&series=&forced_storage=0&disable_ad=0&download=0&force_ch_link_check=0&JsHttpRequest=1-xml"
val getTokenLink = app.get(TokenLink, headers = header).text
val getTokenLink = app.get(TokenLink, headers = headerIPTV).text
val regexGetLink = Regex("""(http.*)\"\},""")
val link =
regexGetLink.find(getTokenLink)?.groupValues?.get(1).toString().replace("""\""", "")
@ -354,7 +361,7 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
lien = redirectlink
}
}
val isM3u8 = false// lien.contains("extension=ts")
val isM3u8 = false
callback.invoke(
ExtractorLink(
name,
@ -590,10 +597,8 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
val rgxcodeCountry = findKeyWord(codeCountry)
val arrayHomepage = arrayListOf<HomePageList>()
override suspend fun getMainPage(page: Int, request: MainPageRequest): HomePageResponse {
if (!init) {
val header = getAuthHeader()
if (!firstInitDone) {
val headerIPTV = getAuthHeader()
val url_info =
"$mainUrl/portal.php?type=account_info&action=get_main_info&JsHttpRequest=1-xml"
val urlGetGenre =
@ -609,7 +614,7 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
urlGetGenre,
urlGetallchannels
).apmap { url ->
val response = app.get(url, headers = header)
val response = app.get(url, headers = headerIPTV)
when (true) {
url.contains("action=get_main_info") -> {
reponseGetInfo = response
@ -743,3 +748,4 @@ class MacIPTVProvider(override var lang: String) : MainAPI() {
})
}
}

View File

@ -3,7 +3,6 @@ package com.lagradost
import com.lagradost.cloudstream3.AcraApplication.Companion.getKey
import com.lagradost.cloudstream3.AcraApplication.Companion.setKey
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.syncproviders.AccountManager
import com.lagradost.cloudstream3.syncproviders.AuthAPI
import com.lagradost.cloudstream3.syncproviders.InAppAuthAPI
import com.lagradost.cloudstream3.syncproviders.InAppAuthAPIManager
@ -36,7 +35,7 @@ class MacIptvAPI(index: Int) : InAppAuthAPIManager(index) {
setKey(accountId, IPTVBOX_USER_KEY, data)
registerAccount()
initialize()
AccountManager.inAppAuths
inAppAuths
return true
}

View File

@ -54,7 +54,7 @@ class MacIptvSettingsFragment(private val plugin: Plugin, val maciptvAPI: MacIpt
val infoSubTextView = view.findView<TextView>("info_sub_text")
val infoImageView = view.findView<ImageView>("nginx_info_imageview")
infoTextView.text = getString("nginx_info_title") ?: "Nginx"
infoTextView.text = getString("nginx_info_title") ?: "MacIPTV"
infoSubTextView.text = getString("nginx_info_summary") ?: ""
infoImageView.setImageDrawable(getDrawable("nginx_question"))
infoImageView.imageTintList =