forked from recloudstream/cloudstream
fixed #1344
This commit is contained in:
parent
c7531faceb
commit
a5ee7f712d
3 changed files with 54 additions and 506 deletions
|
@ -1,4 +1,5 @@
|
||||||
package com.lagradost.cloudstream3.movieproviders
|
package com.lagradost.cloudstream3.movieproviders
|
||||||
|
|
||||||
import androidx.core.text.parseAsHtml
|
import androidx.core.text.parseAsHtml
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addRating
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addRating
|
||||||
|
@ -64,7 +65,8 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
val url = "$mainUrl/?s=$queryformatted"
|
val url = "$mainUrl/?s=$queryformatted"
|
||||||
val doc = app.get(url).document
|
val doc = app.get(url).document
|
||||||
return doc.select("ul.posts > li").map {
|
return doc.select("ul.posts > li").map {
|
||||||
val title = it.selectFirst("div.title")!!.text().substringBeforeLast("(").substringBeforeLast("[")
|
val title = it.selectFirst("div.title")!!.text().substringBeforeLast("(")
|
||||||
|
.substringBeforeLast("[")
|
||||||
val link = it.selectFirst("a")!!.attr("href")
|
val link = it.selectFirst("a")!!.attr("href")
|
||||||
val image = it.selectFirst("a")!!.attr("data-thumbnail")
|
val image = it.selectFirst("a")!!.attr("data-thumbnail")
|
||||||
val quality = getQualityFromString(it.selectFirst("div.hd")?.text())
|
val quality = getQualityFromString(it.selectFirst("div.hd")?.text())
|
||||||
|
@ -88,28 +90,36 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
val title = document.selectFirst("#content > h1")!!.text().substringBeforeLast("(")
|
val title = document.selectFirst("#content > h1")!!.text().substringBeforeLast("(")
|
||||||
.substringBeforeLast("[")
|
.substringBeforeLast("[")
|
||||||
|
|
||||||
val description = document.selectFirst("i.fa.fa-file-text-o.fa-fw")?.parent()?.nextSibling()?.toString()?.parseAsHtml().toString()
|
val description =
|
||||||
|
document.selectFirst("i.fa.fa-file-text-o.fa-fw")?.parent()?.nextSibling()?.toString()
|
||||||
|
?.parseAsHtml().toString()
|
||||||
|
|
||||||
|
|
||||||
val rating = document.selectFirst("div.rating > div.value")?.text()
|
val rating = document.selectFirst("div.rating > div.value")?.text()
|
||||||
|
|
||||||
val year =
|
val year =
|
||||||
document.selectFirst("#content > h1")?.text()?.substringAfterLast("(")?.filter { it.isDigit() }?.toIntOrNull() ?:
|
document.selectFirst("#content > h1")?.text()?.substringAfterLast("(")
|
||||||
description.substringAfter("trasmessa nel").take(6).filter { it.isDigit() }.toIntOrNull() ?:
|
?.filter { it.isDigit() }?.toIntOrNull()
|
||||||
(document.selectFirst("i.fa.fa-calendar.fa-fw")?.parent()?.nextSibling() as Element?)?.text()?.substringAfterLast(" ")?.filter { it.isDigit() }?.toIntOrNull()
|
?: description.substringAfter("trasmessa nel").take(6).filter { it.isDigit() }
|
||||||
|
.toIntOrNull() ?: (document.selectFirst("i.fa.fa-calendar.fa-fw")?.parent()
|
||||||
|
?.nextSibling() as Element?)?.text()?.substringAfterLast(" ")
|
||||||
|
?.filter { it.isDigit() }?.toIntOrNull()
|
||||||
|
|
||||||
|
|
||||||
val poster = document.selectFirst("div.meta > div > img")?.attr("data-src")
|
val poster = document.selectFirst("div.meta > div > img")?.attr("data-src")
|
||||||
|
|
||||||
|
|
||||||
val trailerurl = document.selectFirst("div.youtube-player")?.attr("data-id")?.let{ urldata->
|
val trailerurl =
|
||||||
|
document.selectFirst("div.youtube-player")?.attr("data-id")?.let { urldata ->
|
||||||
"https://www.youtube.com/watch?v=$urldata"
|
"https://www.youtube.com/watch?v=$urldata"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == TvType.TvSeries) {
|
if (type == TvType.TvSeries) {
|
||||||
|
|
||||||
val episodeList = ArrayList<Episode>()
|
val episodeList = ArrayList<Episode>()
|
||||||
document.select("div.accordion-item").filter{it.selectFirst("#season > ul > li.s_title > span")!!.text().isNotEmpty()}.map { element ->
|
document.select("div.accordion-item").filter { a ->
|
||||||
|
a.selectFirst("#season > ul > li.s_title > span")!!.text().isNotEmpty()
|
||||||
|
}.map { element ->
|
||||||
val season =
|
val season =
|
||||||
element.selectFirst("#season > ul > li.s_title > span")!!.text().toInt()
|
element.selectFirst("#season > ul > li.s_title > span")!!.text().toInt()
|
||||||
element.select("div.episode-wrap").map { episode ->
|
element.select("div.episode-wrap").map { episode ->
|
||||||
|
@ -147,8 +157,10 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
val urls0 = document.select("div.embed-player")
|
val urls0 = document.select("div.embed-player")
|
||||||
val urls = if (urls0.isNotEmpty()) {
|
val urls = if (urls0.isNotEmpty()) {
|
||||||
urls0.map { it.attr("data-id") }.toJson()
|
urls0.map { it.attr("data-id") }.toJson()
|
||||||
|
} else {
|
||||||
|
document.select("#info > ul > li ").mapNotNull { it.selectFirst("a")?.attr("href") }
|
||||||
|
.toJson()
|
||||||
}
|
}
|
||||||
else{ document.select("#info > ul > li ").mapNotNull { it.selectFirst("a")?.attr("href") }.toJson() }
|
|
||||||
|
|
||||||
return newMovieLoadResponse(
|
return newMovieLoadResponse(
|
||||||
title,
|
title,
|
||||||
|
@ -173,15 +185,18 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
when {
|
when {
|
||||||
uri.contains("/tv/") -> uri = uri.replace("/tv/", "/tva/")
|
uri.contains("/tv/") -> uri = uri.replace("/tv/", "/tva/")
|
||||||
uri.contains("delta") -> uri = uri.replace("/delta/", "/adelta/")
|
uri.contains("delta") -> uri = uri.replace("/delta/", "/adelta/")
|
||||||
(uri.contains("/ga/") || uri.contains("/ga2/")) -> uri = base64Decode(uri.split('/').last()).trim()
|
(uri.contains("/ga/") || uri.contains("/ga2/")) -> uri =
|
||||||
uri.contains("/speedx/") -> uri = uri.replace("http://linkup.pro/speedx", "http://speedvideo.net")
|
base64Decode(uri.split('/').last()).trim()
|
||||||
|
uri.contains("/speedx/") -> uri =
|
||||||
|
uri.replace("http://linkup.pro/speedx", "http://speedvideo.net")
|
||||||
else -> {
|
else -> {
|
||||||
r = app.get(uri, allowRedirects = true)
|
r = app.get(uri, allowRedirects = true)
|
||||||
uri = r.url
|
uri = r.url
|
||||||
val link =
|
val link =
|
||||||
Regex("<iframe[^<>]*src=\\'([^'>]*)\\'[^<>]*>").find(r.text)?.value ?:
|
Regex("<iframe[^<>]*src=\\'([^'>]*)\\'[^<>]*>").find(r.text)?.value
|
||||||
Regex("""action="(?:[^/]+.*?/[^/]+/([a-zA-Z0-9_]+))">""").find(r.text)?.value ?:
|
?: Regex("""action="(?:[^/]+.*?/[^/]+/([a-zA-Z0-9_]+))">""").find(r.text)?.value
|
||||||
Regex("""href","((.|\\n)*?)"""").findAll(r.text).elementAtOrNull(1)?.groupValues?.get(1)
|
?: Regex("""href","((.|\\n)*?)"""").findAll(r.text)
|
||||||
|
.elementAtOrNull(1)?.groupValues?.get(1)
|
||||||
|
|
||||||
if (link != null) {
|
if (link != null) {
|
||||||
uri = link
|
uri = link
|
||||||
|
@ -196,7 +211,8 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
if (r == null) {
|
if (r == null) {
|
||||||
r = app.get(
|
r = app.get(
|
||||||
uri,
|
uri,
|
||||||
allowRedirects = false)
|
allowRedirects = false
|
||||||
|
)
|
||||||
if (r.headers["location"] != null) {
|
if (r.headers["location"] != null) {
|
||||||
uri = r.headers["location"].toString()
|
uri = r.headers["location"].toString()
|
||||||
}
|
}
|
||||||
|
@ -204,8 +220,7 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
if (uri.contains("snip.")) {
|
if (uri.contains("snip.")) {
|
||||||
if (uri.contains("out_generator")) {
|
if (uri.contains("out_generator")) {
|
||||||
uri = Regex("url=(.*)\$").find(uri)!!.value
|
uri = Regex("url=(.*)\$").find(uri)!!.value
|
||||||
}
|
} else if (uri.contains("/decode/")) {
|
||||||
else if (uri.contains("/decode/")) {
|
|
||||||
uri = app.get(uri, allowRedirects = true).url
|
uri = app.get(uri, allowRedirects = true).url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -223,13 +238,11 @@ class FilmpertuttiProvider : MainAPI() {
|
||||||
if (id.contains("buckler")) {
|
if (id.contains("buckler")) {
|
||||||
val id2 = unshorten_linkup(id).trim().replace("/v/", "/e/").replace("/f/", "/e/")
|
val id2 = unshorten_linkup(id).trim().replace("/v/", "/e/").replace("/f/", "/e/")
|
||||||
loadExtractor(id2, data, subtitleCallback, callback)
|
loadExtractor(id2, data, subtitleCallback, callback)
|
||||||
}
|
} else if (id.contains("isecure")) {
|
||||||
else if (id.contains("isecure")){
|
|
||||||
val doc1 = app.get(id).document
|
val doc1 = app.get(id).document
|
||||||
val id2 = doc1.selectFirst("iframe")!!.attr("src")
|
val id2 = doc1.selectFirst("iframe")!!.attr("src")
|
||||||
loadExtractor(id2, data, subtitleCallback, callback)
|
loadExtractor(id2, data, subtitleCallback, callback)
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
loadExtractor(id, data, subtitleCallback, callback)
|
loadExtractor(id, data, subtitleCallback, callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,14 @@ import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.APIHolder
|
||||||
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
|
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
|
||||||
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
|
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
|
||||||
import com.lagradost.cloudstream3.AcraApplication.Companion.removeKey
|
import com.lagradost.cloudstream3.AcraApplication.Companion.removeKey
|
||||||
|
import com.lagradost.cloudstream3.CommonActivity
|
||||||
|
import com.lagradost.cloudstream3.DubStatus
|
||||||
|
import com.lagradost.cloudstream3.R
|
||||||
import com.lagradost.cloudstream3.mvvm.logError
|
import com.lagradost.cloudstream3.mvvm.logError
|
||||||
import com.lagradost.cloudstream3.network.initClient
|
|
||||||
import com.lagradost.cloudstream3.ui.APIRepository
|
import com.lagradost.cloudstream3.ui.APIRepository
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar
|
||||||
|
@ -55,7 +57,7 @@ val appLanguages = arrayListOf(
|
||||||
Triple("", "Romanian", "ro"),
|
Triple("", "Romanian", "ro"),
|
||||||
Triple("", "Italian", "it"),
|
Triple("", "Italian", "it"),
|
||||||
Triple("", "Chinese", "zh"),
|
Triple("", "Chinese", "zh"),
|
||||||
Triple("", "Indonesian", "id"),
|
Triple("\uD83C\uDDEE\uD83C\uDDE9", "Indonesian", "in"),
|
||||||
Triple("", "Czech", "cs"),
|
Triple("", "Czech", "cs"),
|
||||||
).sortedBy { it.second } //ye, we go alphabetical, so ppl don't put their lang on top
|
).sortedBy { it.second } //ye, we go alphabetical, so ppl don't put their lang on top
|
||||||
|
|
||||||
|
@ -120,13 +122,13 @@ class SettingsLang : PreferenceFragmentCompat() {
|
||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
}
|
}
|
||||||
|
|
||||||
getPref(R.string.locale_key)?.setOnPreferenceClickListener {
|
getPref(R.string.locale_key)?.setOnPreferenceClickListener { pref ->
|
||||||
val tempLangs = appLanguages.toMutableList()
|
val tempLangs = appLanguages.toMutableList()
|
||||||
//if (beneneCount > 100) {
|
//if (beneneCount > 100) {
|
||||||
// tempLangs.add(Triple("\uD83E\uDD8D", "mmmm... monke", "mo"))
|
// tempLangs.add(Triple("\uD83E\uDD8D", "mmmm... monke", "mo"))
|
||||||
//}
|
//}
|
||||||
val current = getCurrentLocale(requireContext())
|
val current = getCurrentLocale(pref.context)
|
||||||
val languageCodes = tempLangs.map { it.third }
|
val languageCodes = tempLangs.map { (_, _, iso) -> iso }
|
||||||
val languageNames = tempLangs.map { (emoji, name, iso) ->
|
val languageNames = tempLangs.map { (emoji, name, iso) ->
|
||||||
val flag = emoji.ifBlank { SubtitleHelper.getFlagFromIso(iso) ?: "ERROR" }
|
val flag = emoji.ifBlank { SubtitleHelper.getFlagFromIso(iso) ?: "ERROR" }
|
||||||
"$flag $name"
|
"$flag $name"
|
||||||
|
|
|
@ -1,467 +0,0 @@
|
||||||
<!--https://newbedev.com/concatenate-multiple-strings-in-xml-->
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
<!-- FORMAT MIGHT TRANSLATE, WILL CAUSE CRASH IF APPLIED WRONG -->
|
|
||||||
<string name="extra_info_format" translatable="false" formatted="true">%d %s | %sMB</string>
|
|
||||||
<string name="storage_size_format" translatable="false" formatted="true">%s • %sGB</string>
|
|
||||||
<string name="download_size_format" translatable="false" formatted="true">%sMB / %sMB</string>
|
|
||||||
<string name="mb_format" translatable="false" formatted="true">%dMB</string>
|
|
||||||
<string name="episode_name_format" translatable="false" formatted="true">%s %s</string>
|
|
||||||
<string name="ffw_text_format" translatable="false" formatted="true">+%d</string>
|
|
||||||
<string name="rew_text_format" translatable="false" formatted="true">-%d</string>
|
|
||||||
<string name="ffw_text_regular_format" translatable="false" formatted="true">%d</string>
|
|
||||||
<string name="rew_text_regular_format" translatable="false" formatted="true">%d</string>
|
|
||||||
<string name="rating_format" translatable="false" formatted="true">%.1f/10.0</string>
|
|
||||||
<string name="year_format" translatable="false" formatted="true">%d</string>
|
|
||||||
<string name="app_dub_sub_episode_text_format" formatted="true">%s Ep %d</string>
|
|
||||||
<string name="cast_format" formatted="true">Pemeran: %s</string>
|
|
||||||
|
|
||||||
<!-- IS NOT NEEDED TO TRANSLATE AS THEY ARE ONLY USED FOR SCREEN READERS AND WONT SHOW UP TO NORMAL USERS -->
|
|
||||||
<string name="result_poster_img_des">Poster</string>
|
|
||||||
<string name="search_poster_img_des">@string/result_poster_img_des</string>
|
|
||||||
<string name="episode_poster_img_des">Episode Poster</string>
|
|
||||||
<string name="home_main_poster_img_des">Main Poster</string>
|
|
||||||
<string name="home_next_random_img_des">Next Random</string>
|
|
||||||
<string name="episode_play_img_des" translatable="false">@string/play_episode</string>
|
|
||||||
<string name="go_back_img_des">Go back</string>
|
|
||||||
<string name="change_providers_img_des" translatable="false">@string/home_change_provider_img_des</string>
|
|
||||||
<string name="home_change_provider_img_des">Change Provider</string>
|
|
||||||
<string name="preview_background_img_des">Preview Background</string>
|
|
||||||
|
|
||||||
<!-- TRANSLATE, BUT DON'T FORGET FORMAT -->
|
|
||||||
<string name="player_speed_text_format" formatted="true">Kecepatan (%.2fx)</string>
|
|
||||||
<string name="rated_format" formatted="true">Dinilai: %.1f</string>
|
|
||||||
<string name="new_update_format" formatted="true">Update baru ditemukan!\n%s -> %s</string>
|
|
||||||
<string name="filler" formatted="true">Filler</string>
|
|
||||||
<string name="duration_format" formatted="true">%d mnt</string>
|
|
||||||
|
|
||||||
<string name="app_name">CloudStream</string>
|
|
||||||
<string name="title_home">Beranda</string>
|
|
||||||
<string name="title_search">Cari</string>
|
|
||||||
<string name="title_downloads">Download</string>
|
|
||||||
<string name="title_settings">Pengaturan</string>
|
|
||||||
|
|
||||||
<string name="search_hint">Cari…</string>
|
|
||||||
<string name="search_hint_site" formatted="true">Cari %s…</string>
|
|
||||||
|
|
||||||
<string name="no_data">Tidak Ada Data</string>
|
|
||||||
<string name="episode_more_options_des">Opsi Lanjutan</string>
|
|
||||||
<string name="next_episode">Episode selanjutnya</string>
|
|
||||||
<string name="result_plot" translatable="false">@string/synopsis</string>
|
|
||||||
<string name="result_tags">Genre</string>
|
|
||||||
<string name="result_share">Bagikan</string>
|
|
||||||
<string name="result_open_in_browser">Buka Di Browser</string>
|
|
||||||
<string name="skip_loading">Skip Loading</string>
|
|
||||||
<string name="loading_chromecast">Loading…</string>
|
|
||||||
|
|
||||||
<string name="type_watching">Sedang Menonton</string>
|
|
||||||
<string name="type_on_hold">Tertahan</string>
|
|
||||||
<string name="type_completed">Selesai</string>
|
|
||||||
<string name="type_dropped">Dihentikan</string>
|
|
||||||
<string name="type_plan_to_watch">Rencana untuk Menonton</string>
|
|
||||||
<string name="type_none">Tidak Ada</string>
|
|
||||||
<string name="type_re_watching">Menonton Ulang</string>
|
|
||||||
|
|
||||||
<string name="play_movie_button">Putar Movie</string>
|
|
||||||
<string name="play_torrent_button">Streaming Torrent</string>
|
|
||||||
<string name="pick_source">Sumber</string>
|
|
||||||
<string name="pick_subtitle">Subtitle</string>
|
|
||||||
<string name="reload_error">Coba ulang koneksi…</string>
|
|
||||||
<string name="go_back">Kembali</string>
|
|
||||||
<string name="play_episode">Putar Episode</string>
|
|
||||||
<!--<string name="need_storage">Allow to download episodes</string>-->
|
|
||||||
|
|
||||||
<string name="download">Download</string>
|
|
||||||
<string name="downloaded">Terdownload</string>
|
|
||||||
<string name="downloading">Sedang Didownload</string>
|
|
||||||
<string name="download_paused">Download Dijeda</string>
|
|
||||||
<string name="download_started">Download Dimulai</string>
|
|
||||||
<string name="download_failed">Download Gagal</string>
|
|
||||||
<string name="download_canceled">Download Dibatalkan</string>
|
|
||||||
<string name="download_done">Download Selesai</string>
|
|
||||||
<string name="download_format" translatable="false">%s - %s</string>
|
|
||||||
|
|
||||||
<string name="error_loading_links_toast">Error Memuat Tautan</string>
|
|
||||||
<string name="download_storage_text">Penyimpanan Internal</string>
|
|
||||||
|
|
||||||
<string name="app_dubbed_text">Dub</string>
|
|
||||||
<string name="app_subbed_text">Sub</string>
|
|
||||||
|
|
||||||
<string name="popup_delete_file">Hapus File</string>
|
|
||||||
<string name="popup_play_file">Putar File</string>
|
|
||||||
<string name="popup_resume_download">Lanjutkan Download</string>
|
|
||||||
<string name="popup_pause_download">Jeda Download</string>
|
|
||||||
|
|
||||||
<string name="pref_disable_acra">Matikan pelaporan bug otomatis</string>
|
|
||||||
<string name="home_more_info">Lebih banyak info</string>
|
|
||||||
<string name="home_expanded_hide">Sembunyikan</string>
|
|
||||||
<string name="home_play">Putar</string>
|
|
||||||
<string name="home_info">Info</string>
|
|
||||||
<string name="filter_bookmarks">Filter Bookmark</string>
|
|
||||||
<string name="error_bookmarks_text">Bookmark</string>
|
|
||||||
<string name="action_remove_from_bookmarks">Hapus</string>
|
|
||||||
<string name="action_add_to_bookmarks">Atur status tontonan</string>
|
|
||||||
<string name="sort_apply">Terapkan</string>
|
|
||||||
<string name="sort_cancel">Batalkan</string>
|
|
||||||
<string name="sort_copy">Salin</string>
|
|
||||||
<string name="sort_close">Tutup</string>
|
|
||||||
<string name="sort_clear">Bersihkan</string>
|
|
||||||
<string name="sort_save">Simpan</string>
|
|
||||||
|
|
||||||
<string name="player_speed">Kecepatan Pemutar</string>
|
|
||||||
|
|
||||||
<string name="subtitles_settings">Pengaturan Subtitle</string>
|
|
||||||
<string name="subs_text_color">Warna Teks</string>
|
|
||||||
<string name="subs_outline_color">Warna Garis Luar</string>
|
|
||||||
<string name="subs_background_color">Warna Latar Belakang</string>
|
|
||||||
<string name="subs_window_color">Warna Window</string>
|
|
||||||
<string name="subs_edge_type">Jenis Tepi</string>
|
|
||||||
<string name="subs_subtitle_elevation">Ketinggian Subtitle</string>
|
|
||||||
<string name="subs_font">Font</string>
|
|
||||||
<string name="subs_font_size">Ukuran Font</string>
|
|
||||||
|
|
||||||
<string name="search_provider_text_providers">Cari menggunakan provider</string>
|
|
||||||
<string name="search_provider_text_types">Cari menggunakan jenis</string>
|
|
||||||
|
|
||||||
<string name="benene_count_text">%d Piseng yang diberikan kepada developer</string>
|
|
||||||
<string name="benene_count_text_none">Tidak ada piseng yang diberikan</string>
|
|
||||||
|
|
||||||
<string name="subs_auto_select_language">Pilih Bahasa Otomatis</string>
|
|
||||||
<string name="subs_download_languages">Download Bahasa</string>
|
|
||||||
<string name="subs_hold_to_reset_to_default">Tahan untuk mengatur ulang ke default</string>
|
|
||||||
<string name="subs_import_text" formatted="true">Impor font dengan meletakkan mereka di %s</string>
|
|
||||||
<string name="continue_watching">Lanjutkan Menonton</string>
|
|
||||||
|
|
||||||
<string name="action_remove_watching">Hapus</string>
|
|
||||||
<string name="action_open_watching">Info lebih lanjut</string>
|
|
||||||
<string name="action_open_play">@string/home_play </string>
|
|
||||||
|
|
||||||
<string name="vpn_might_be_needed">Sebuah VPN mungkin diperlukan agar provider ini bisa bekerja dengan benar</string>
|
|
||||||
<string name="vpn_torrent">Provider ini adalah sebuah torrent, VPN direkomendasikan</string>
|
|
||||||
|
|
||||||
<string name="provider_info_meta">Metadata tidak disediakan oleh situs, loading video akan gagal jika tidak ada di situs.</string>
|
|
||||||
|
|
||||||
<string name="torrent_plot">Deskripsi</string>
|
|
||||||
<string name="normal_no_plot">Tidak Ada Plot Yang Ditemukan</string>
|
|
||||||
<string name="torrent_no_plot">Tidak Ada Deskripsi Yang Ditemukan</string>
|
|
||||||
|
|
||||||
<string name="show_log_cat">Tampilkan logcat 🐈</string>
|
|
||||||
|
|
||||||
<string name="picture_in_picture">Picture-in-picture</string>
|
|
||||||
<string name="picture_in_picture_des">Melanjutkan pemutaran di pemutar mini di atas aplikasi lain</string>
|
|
||||||
<string name="player_size_settings">Tombol mengubah ukuran pemutar</string>
|
|
||||||
<string name="player_size_settings_des">Menghapus batasan hitam</string>
|
|
||||||
<string name="player_subtitles_settings">Subtitle</string>
|
|
||||||
<string name="player_subtitles_settings_des">Pengaturan subtitle pemutar</string>
|
|
||||||
<string name="chromecast_subtitles_settings">Subtitle Chromecast</string>
|
|
||||||
<string name="chromecast_subtitles_settings_des">Pengaturan subtitle Chromecast</string>
|
|
||||||
|
|
||||||
<string name="eigengraumode_settings">Mode Eigengravy</string>
|
|
||||||
<string name="eigengraumode_settings_des">Menambahkan opsi kecepatan di pemutar</string>
|
|
||||||
<string name="swipe_to_seek_settings">Geser untuk mengubah waktu</string>
|
|
||||||
<string name="swipe_to_seek_settings_des">Geser ke kiri atau kanan untuk mengontrol waktu di pemutar video</string>
|
|
||||||
<string name="swipe_to_change_settings">Geser untuk mengubah pengaturan</string>
|
|
||||||
<string name="swipe_to_change_settings_des">Geser ke sisi kiri atau kanan untuk mengubah pencerahan atau volume</string>
|
|
||||||
<string name="double_tap_to_seek_settings">Tekan dua kali untuk mengubah waktu</string>
|
|
||||||
<string name="double_tap_to_pause_settings">Tekan dua kali untuk menjeda</string>
|
|
||||||
<string name="double_tap_to_seek_amount_settings">Jumlah pengubah waktu pemutar</string>
|
|
||||||
<string name="double_tap_to_seek_settings_des">Tekan dua kali di sisi kanan atau kiri untuk mengubah waktu ke depan atau ke belakang
|
|
||||||
</string>
|
|
||||||
<string name="double_tap_to_pause_settings_des">Tekan di tengah untuk menjeda</string>
|
|
||||||
<string name="use_system_brightness_settings">Gunakan pencerahan sistem</string>
|
|
||||||
<string name="use_system_brightness_settings_des">Gunakan pencerahan sistem di pemutar aplikasi dari pada hamparan gelap
|
|
||||||
</string>
|
|
||||||
|
|
||||||
<string name="episode_sync_settings">Update progres tontonan</string>
|
|
||||||
<string name="episode_sync_settings_des">Sinkronisasikan progres episode saat ini secara otomatis</string>
|
|
||||||
|
|
||||||
<string name="restore_settings">Pulihkan data dari cadangan</string>
|
|
||||||
<string name="killswitch_settings">Download metadata terbaru dari github</string>
|
|
||||||
<string name="killswitch_settings_des">Jika anda ingin askes dari seluruh provider (bahkan yang sudah rusak) matikan ini</string>
|
|
||||||
|
|
||||||
<string name="backup_settings">Cadangkan data</string>
|
|
||||||
<string name="restore_success">File cadangan termuat</string>
|
|
||||||
<string name="restore_failed_format" formatted="true">Gagal untuk memulihkan data dari file %s</string>
|
|
||||||
<string name="backup_success">Data berhasil disimpan</string>
|
|
||||||
<string name="backup_failed">Izin penyimpanan tidak ditemukan, mohon coba lagi</string>
|
|
||||||
<string name="backup_failed_error_format">Error saat mencadang %s</string>
|
|
||||||
|
|
||||||
<string name="search">Cari</string>
|
|
||||||
<string name="category_account">Kredit dan akun</string>
|
|
||||||
<string name="category_updates">Update dan cadangan</string>
|
|
||||||
<string name="nginx_info_title">Apa itu Nginx ?</string>
|
|
||||||
<string name="nginx_info_summary">Nginx adalah sebuah software yang dapat digunakan untuk menampilkan file dari server yang anda miliki. Klik untuk melihat panduan pengaturan Nginx</string>
|
|
||||||
|
|
||||||
<string name="settings_info">Info</string>
|
|
||||||
<string name="advanced_search">Pencarian Lanjutan</string>
|
|
||||||
<string name="advanced_search_des">Memberikan hasil pencarian yang dipisahkan berdasarkan provider</string>
|
|
||||||
<string name="bug_report_settings_off">Hanya mengirim data saat ngecrash</string>
|
|
||||||
<string name="bug_report_settings_on">Tidak mengirim data</string>
|
|
||||||
<string name="show_fillers_settings">Tampilkan episode filler untuk anime</string>
|
|
||||||
<string name="updates_settings">Tampilkan update aplikasi</string>
|
|
||||||
<string name="updates_settings_des">Secara otomatis mencari update terbaru saat aplikasi dibuka</string>
|
|
||||||
<string name="uprereleases_settings">Update ke prarilis</string>
|
|
||||||
<string name="uprereleases_settings_des">Hanya mencari update prarilis daripada rilis penuh</string>
|
|
||||||
<string name="github">Github</string>
|
|
||||||
<string name="lightnovel">Aplikasi novel ringan dari developer yang sama</string>
|
|
||||||
<string name="anim">Aplikasi anime dari developer yang sama</string>
|
|
||||||
<string name="discord">Bergabung dengan Discord</string>
|
|
||||||
<string name="benene">Berikan sebuah piseng kepada developer</string>
|
|
||||||
<string name="benene_des">Piseng yang diberikan</string>
|
|
||||||
|
|
||||||
<string name="app_language">Bahasa Aplikasi</string>
|
|
||||||
|
|
||||||
<string name="no_chromecast_support_toast">Provider ini tidak memiliki dukungan Chromecast</string>
|
|
||||||
<string name="no_links_found_toast">Tidak Ada Tautan Yang Ditemukan</string>
|
|
||||||
<string name="copy_link_toast">Tautan disalin ke papan klip</string>
|
|
||||||
<string name="play_episode_toast">Putar Episode</string>
|
|
||||||
<string name="subs_default_reset_toast">Ulang ke pengaturan default</string>
|
|
||||||
<string name="acra_report_toast">Maaf, aplikasi ngecrash. Laporan bug anonim akan dikirim ke developer
|
|
||||||
</string>
|
|
||||||
|
|
||||||
<string name="season">Season</string>
|
|
||||||
<string name="no_season">Tidak Ada Season</string>
|
|
||||||
<string name="episode">Episode</string>
|
|
||||||
<string name="episodes">Episode</string>
|
|
||||||
<string name="season_short">S</string>
|
|
||||||
<string name="episode_short">E</string>
|
|
||||||
<string name="no_episodes_found">Episode Tidak Ditemukan</string>
|
|
||||||
|
|
||||||
<string name="delete_file">Hapus File</string>
|
|
||||||
<string name="delete">Hapus</string>
|
|
||||||
<string name="cancel" translatable="false">@string/sort_cancel</string>
|
|
||||||
<string name="pause">Jeda</string>
|
|
||||||
<string name="resume">Lanjutkan</string>
|
|
||||||
<string name="go_back_30">-30</string>
|
|
||||||
<string name="go_forward_30">+30</string>
|
|
||||||
<string name="delete_message" formatted="true">Ini akan secara permanen menghapus %s\nApakah anda yakin?</string>
|
|
||||||
<string name="resume_time_left" formatted="true">%dm\ntersisa</string>
|
|
||||||
|
|
||||||
|
|
||||||
<string name="status_ongoing">Masih Berlanjut</string>
|
|
||||||
<string name="status_completed">Tamat</string>
|
|
||||||
<string name="status">Status</string>
|
|
||||||
<string name="year">Tahun</string>
|
|
||||||
<string name="rating">Skor</string>
|
|
||||||
<string name="duration">Durasi</string>
|
|
||||||
<string name="site">Situs</string>
|
|
||||||
<string name="synopsis">Sinopsis</string>
|
|
||||||
|
|
||||||
<string name="queued">antri</string>
|
|
||||||
<string name="no_subtitles">Tidak Ada Subtitle</string>
|
|
||||||
<string name="default_subtitles">Default</string>
|
|
||||||
|
|
||||||
<string name="free_storage">Bebas</string>
|
|
||||||
<string name="used_storage">Terpakai</string>
|
|
||||||
<string name="app_storage">Aplikasi</string>
|
|
||||||
|
|
||||||
<!--plural-->
|
|
||||||
<string name="movies">Movie</string>
|
|
||||||
<string name="tv_series">Seri TV</string>
|
|
||||||
<string name="cartoons">Kartun</string>
|
|
||||||
<string name="anime">Anime</string>
|
|
||||||
<string name="torrent">Torrent</string>
|
|
||||||
<string name="documentaries">Film Dokumenter</string>
|
|
||||||
<string name="ova">OVA</string>
|
|
||||||
<string name="asian_drama">Drama Asia</string>
|
|
||||||
|
|
||||||
<!--singular-->
|
|
||||||
<string name="movies_singular">Movie</string>
|
|
||||||
<string name="tv_series_singular">Seri</string>
|
|
||||||
<string name="cartoons_singular">Kartun</string>
|
|
||||||
<string name="anime_singular">@string/anime</string>
|
|
||||||
<string name="ova_singular">@string/ova</string>
|
|
||||||
<string name="torrent_singular">Torrent</string>
|
|
||||||
<string name="documentaries_singular">Film Dokumenter</string>
|
|
||||||
<string name="asian_drama_singular">Drama Asia</string>
|
|
||||||
|
|
||||||
<string name="source_error">Error sumber</string>
|
|
||||||
<string name="remote_error">Error jarak jauh</string>
|
|
||||||
<string name="render_error">Error perender</string>
|
|
||||||
<string name="unexpected_error">Error pemutar yang tidak terduga</string>
|
|
||||||
<string name="storage_error">Error mendownload, cek izin penyimpanan</string>
|
|
||||||
|
|
||||||
<string name="episode_action_chromecast_episode">Episode Chromecast</string>
|
|
||||||
<string name="episode_action_chromecast_mirror">Mirror Chromecast</string>
|
|
||||||
<string name="episode_action_play_in_app">Putar di aplikasi</string>
|
|
||||||
<string name="episode_action_play_in_vlc">Putar di VLC</string>
|
|
||||||
<string name="episode_action_play_in_browser">Putar di browser</string>
|
|
||||||
<string name="episode_action_copy_link">Salin tautan</string>
|
|
||||||
<string name="episode_action_auto_download">Download otomatis</string>
|
|
||||||
<string name="episode_action_download_mirror">Download mirror</string>
|
|
||||||
<string name="episode_action_reload_links">Muat ulang tautan</string>
|
|
||||||
<string name="episode_action_download_subtitle">Download subtitle</string>
|
|
||||||
|
|
||||||
<string name="show_hd">Label kualitas</string>
|
|
||||||
<string name="show_dub">Label dub</string>
|
|
||||||
<string name="show_sub">Label sub</string>
|
|
||||||
<string name="show_title">Judul</string>
|
|
||||||
<string name="show_hd_key" translatable="false">show_hd_key</string>
|
|
||||||
<string name="show_dub_key" translatable="false">show_dub_key</string>
|
|
||||||
<string name="show_sub_key" translatable="false">show_sub_key</string>
|
|
||||||
<string name="show_title_key" translatable="false">show_title_key</string>
|
|
||||||
<string name="poster_ui_settings">Aktifkan atau nonaktifkan elemen UI pada poster</string>
|
|
||||||
|
|
||||||
<string name="no_update_found">Tidak Ada Update Yang Ditemukan</string>
|
|
||||||
<string name="check_for_update">Cek Untuk Update</string>
|
|
||||||
|
|
||||||
<string name="video_lock">Kunci</string>
|
|
||||||
<string name="video_aspect_ratio_resize">Ubah Ukuran</string>
|
|
||||||
<string name="video_source">Sumber</string>
|
|
||||||
<string name="video_skip_op">Skip OP</string>
|
|
||||||
|
|
||||||
<string name="dont_show_again">Jangan tunjukkan lagi</string>
|
|
||||||
<string name="skip_update">Skip Update ini</string>
|
|
||||||
<string name="update">Update</string>
|
|
||||||
<string name="watch_quality_pref">Kualitas tontonan yang lebih diinginkan</string>
|
|
||||||
<string name="limit_title">Karakter maksimal judul pemutar video</string>
|
|
||||||
<string name="limit_title_rez">Resolusi pemutar video</string>
|
|
||||||
|
|
||||||
<string name="video_buffer_size_settings">Ukuran buffer video</string>
|
|
||||||
<string name="video_buffer_length_settings">Panjang buffer video</string>
|
|
||||||
<string name="video_buffer_disk_settings">Cache video di disk</string>
|
|
||||||
<string name="video_buffer_clear_settings">Membersihkan cache video dan gambar</string>
|
|
||||||
|
|
||||||
<string name="video_ram_description">Akan menyebabkan crash acak jika disetel terlalu tinggi. Jangan diubah jika anda memiliki jumlah ram yang rendah seperti TV Android atau ponsel lama</string>
|
|
||||||
<string name="video_disk_description">Dapat menyebabkan masalah pada sistem dengan ruang penyimpanan yang rendah seperti perangkat Android TV jika anda menyetelnya terlalu tinggi</string>
|
|
||||||
|
|
||||||
<string name="dns_pref">DNS melalui HTTPS</string>
|
|
||||||
<string name="dns_pref_summary">Berguna untuk melewati blok ISP</string>
|
|
||||||
|
|
||||||
<string name="download_path_pref">Jalur download</string>
|
|
||||||
|
|
||||||
<string name="nginx_url_pref">Url server Nginx</string>
|
|
||||||
|
|
||||||
<string name="display_subbed_dubbed_settings">Tampilkan Anime Dub/Sub</string>
|
|
||||||
|
|
||||||
<string name="resize_fit">Paskan dengan layar</string>
|
|
||||||
<string name="resize_fill">Regang</string>
|
|
||||||
<string name="resize_zoom">Zoom</string>
|
|
||||||
|
|
||||||
<string name="legal_notice">Peringatan</string>
|
|
||||||
<string name="legal_notice_key" translatable="false">legal_notice_key</string>
|
|
||||||
<string name="legal_notice_text" translatable="false">Any legal issues regarding the content on this application
|
|
||||||
should be taken up with the actual file hosts and providers themselves as we are not affiliated with them.
|
|
||||||
|
|
||||||
In case of copyright infringement, please directly contact the responsible parties or the streaming websites.
|
|
||||||
|
|
||||||
The app is purely for educational and personal use.
|
|
||||||
|
|
||||||
CloudStream 3 does not host any content on the app, and has no control over what media is put up or taken down.
|
|
||||||
CloudStream 3 functions like any other search engine, such as Google. CloudStream 3 does not host, upload or
|
|
||||||
manage any videos, films or content. It simply crawls, aggregates and displayes links in a convenient,
|
|
||||||
user-friendly interface.
|
|
||||||
|
|
||||||
It merely scrapes 3rd-party websites that are publicly accessable via any regular web browser. It is the
|
|
||||||
responsibility of user to avoid any actions that might violate the laws governing his/her locality. Use
|
|
||||||
CloudStream 3 at your own risk.
|
|
||||||
</string>
|
|
||||||
<string name="category_general">Umum</string>
|
|
||||||
<string name="random_button_settings">Tombol Acak</string>
|
|
||||||
<string name="random_button_settings_desc">Tampilkan tombol acak di Beranda</string>
|
|
||||||
<string name="provider_lang_settings">Bahasa provider</string>
|
|
||||||
<string name="app_layout">Tata Letak Aplikasi</string>
|
|
||||||
<string name="preferred_media_settings">Media yang lebih diinginkan</string>
|
|
||||||
<string name="category_preferred_media_and_lang">Media dan bahasa yang lebih diinginkan</string>
|
|
||||||
<string name="category_ui">Antarmuka pengguna</string>
|
|
||||||
|
|
||||||
<string name="automatic">Otomatis</string>
|
|
||||||
<string name="tv_layout">Tata letak TV</string>
|
|
||||||
<string name="phone_layout">Tata letak HP</string>
|
|
||||||
<string name="emulator_layout">Tata letak emulator</string>
|
|
||||||
|
|
||||||
<string name="primary_color_settings">Warna primer</string>
|
|
||||||
<string name="app_theme_settings">Tema aplikasi</string>
|
|
||||||
<string name="bottom_title_settings">Lokasi judul poster</string>
|
|
||||||
<string name="bottom_title_settings_des">Meletakkan judul di bawah poster</string>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- account stuff -->
|
|
||||||
<string name="anilist_key" translatable="false">anilist_key</string>
|
|
||||||
<string name="mal_key" translatable="false">mal_key</string>
|
|
||||||
<!--
|
|
||||||
<string name="mal_account_settings" translatable="false">MAL</string>
|
|
||||||
<string name="anilist_account_settings" translatable="false">AniList</string>
|
|
||||||
<string name="tmdb_account_settings" translatable="false">TMDB</string>
|
|
||||||
<string name="imdb_account_settings" translatable="false">IMDB</string>
|
|
||||||
<string name="kitsu_account_settings" translatable="false">Kitsu</string>
|
|
||||||
<string name="trakt_account_settings" translatable="false">Trakt</string>
|
|
||||||
-->
|
|
||||||
<string name="login_format" formatted="true">%s %s</string>
|
|
||||||
<string name="account">akun</string>
|
|
||||||
<string name="logout">Logout</string>
|
|
||||||
<string name="login">Login</string>
|
|
||||||
<string name="switch_account">Ganti akun</string>
|
|
||||||
<string name="add_account">Tambah akun</string>
|
|
||||||
<string name="add_sync">Tambah pelacak</string>
|
|
||||||
<string name="added_sync_format" formatted="true">Menambah %s</string>
|
|
||||||
<string name="upload_sync">Sinkronisasi</string>
|
|
||||||
<string name="sync_score">Skor</string>
|
|
||||||
<string name="sync_score_format" formatted="true">%d / 10</string>
|
|
||||||
<string name="sync_total_episodes_none">/??</string>
|
|
||||||
<string name="sync_total_episodes_some" formatted="true">/%d</string>
|
|
||||||
<string name="authenticated_user" formatted="true">%s Diautentikasikan</string>
|
|
||||||
<string name="authenticated_user_fail" formatted="true">Gagal untuk mengautentikasi ke %s</string>
|
|
||||||
|
|
||||||
<!-- ============ -->
|
|
||||||
<string name="none">Tidak Ada</string>
|
|
||||||
<string name="normal">Normal</string>
|
|
||||||
<string name="all">Semua</string>
|
|
||||||
<string name="max">Maks</string>
|
|
||||||
<string name="min">Min</string>
|
|
||||||
<string name="subtitles_none" translatable="false">@string/none</string>
|
|
||||||
<string name="subtitles_outline">Garis luar</string>
|
|
||||||
<string name="subtitles_depressed">Depresi</string>
|
|
||||||
<string name="subtitles_shadow">Bayangan</string>
|
|
||||||
<string name="subtitles_raised">Menonjol</string>
|
|
||||||
<string name="subtitle_offset">Sinkronisasi sub</string>
|
|
||||||
<string name="subtitle_offset_hint">1000ms</string>
|
|
||||||
<string name="subtitle_offset_title">Penundaan subtitle</string>
|
|
||||||
<string name="subtitle_offset_extra_hint_later_format">Gunakan ini jika subtitle ditampilkan %dms terlalu cepat</string>
|
|
||||||
<string name="subtitle_offset_extra_hint_before_format">Gunakan ini jika subtitle ditampilkan %dms terlalu lambat</string>
|
|
||||||
<string name="subtitle_offset_extra_hint_none_format">Tidak ada penundaan subtitle</string>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Example text (pangram) can optionally be translated; if you do, include all the letters in the alphabet,
|
|
||||||
see:
|
|
||||||
https://en.wikipedia.org/w/index.php?title=Pangram&oldid=225849300
|
|
||||||
https://en.wikipedia.org/wiki/The_quick_brown_fox_jumps_over_the_lazy_dog
|
|
||||||
-->
|
|
||||||
<string name="subtitles_example_text">The quick brown fox jumps over the lazy dog</string>
|
|
||||||
|
|
||||||
<string name="recommended">Direkomendasikan</string>
|
|
||||||
<string name="player_loaded_subtitles" formatted="true">Memuat %s</string>
|
|
||||||
<string name="player_load_subtitles">Muat dari file</string>
|
|
||||||
<string name="downloaded_file">File terdownload</string>
|
|
||||||
<string name="actor_main">Utama</string>
|
|
||||||
<string name="actor_supporting">Pendukung</string>
|
|
||||||
<string name="actor_background">Latar Belakang</string>
|
|
||||||
|
|
||||||
<string name="home_source">Sumber</string>
|
|
||||||
<string name="home_random">Acak</string>
|
|
||||||
|
|
||||||
<string name="coming_soon">Segera hadir…</string>
|
|
||||||
|
|
||||||
<string name="quality_cam">Cam</string>
|
|
||||||
<string name="quality_cam_rip">Cam</string>
|
|
||||||
<string name="quality_cam_hd">Cam</string>
|
|
||||||
<string name="quality_hq">HQ</string>
|
|
||||||
<string name="quality_hd">HD</string>
|
|
||||||
<string name="quality_ts">TS</string>
|
|
||||||
<string name="quality_tc">TC</string>
|
|
||||||
<string name="quality_blueray">BlueRay</string>
|
|
||||||
<string name="quality_workprint">WP</string>
|
|
||||||
<string name="quality_dvd">DVD</string>
|
|
||||||
<string name="quality_4k">4K</string>
|
|
||||||
<string name="quality_sd">SD</string>
|
|
||||||
<string name="quality_uhd">UHD</string>
|
|
||||||
<string name="quality_hdr">HDR</string>
|
|
||||||
<string name="quality_sdr">SDR</string>
|
|
||||||
<string name="quality_webrip">Web</string>
|
|
||||||
|
|
||||||
<string name="poster_image">Gambar Poster</string>
|
|
||||||
<string name="category_player">Pemutar</string>
|
|
||||||
<string name="resolution_and_title">Resolusi dan judul</string>
|
|
||||||
<string name="title">Judul</string>
|
|
||||||
<string name="resolution">Resolusi</string>
|
|
||||||
</resources>
|
|
Loading…
Reference in a new issue