forked from recloudstream/cloudstream
quality tag on search
This commit is contained in:
parent
6b3eb0047f
commit
0715c599d6
10 changed files with 105 additions and 87 deletions
|
@ -556,6 +556,35 @@ enum class SearchQuality {
|
|||
HD,
|
||||
BlueRay,
|
||||
DVD,
|
||||
SD,
|
||||
FourK,
|
||||
UHD,
|
||||
}
|
||||
|
||||
/**Add anything to here if you find a site that uses some specific naming convention*/
|
||||
fun getQualityFromString(string: String?) : SearchQuality? {
|
||||
val check = (string ?: return null).trim().lowercase().replace(" ","")
|
||||
|
||||
return when(check) {
|
||||
"cam" -> SearchQuality.Cam
|
||||
"hdcam" -> SearchQuality.HdCam
|
||||
"hq" -> SearchQuality.HQ
|
||||
"hdrip" -> SearchQuality.HD
|
||||
"hd" -> SearchQuality.HD
|
||||
"camrip" -> SearchQuality.CamRip
|
||||
"rip" -> SearchQuality.CamRip
|
||||
"tc" -> SearchQuality.Telecine
|
||||
"ts" -> SearchQuality.Telesync
|
||||
"dvd" -> SearchQuality.DVD
|
||||
"blueray" -> SearchQuality.BlueRay
|
||||
"sd" -> SearchQuality.SD
|
||||
"4k" -> SearchQuality.FourK
|
||||
"uhd" -> SearchQuality.UHD // may also be 4k or 8k
|
||||
"blue" -> SearchQuality.BlueRay
|
||||
"wp" -> SearchQuality.WorkPrint
|
||||
"workprint" -> SearchQuality.WorkPrint
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
interface SearchResponse {
|
||||
|
|
|
@ -25,12 +25,13 @@ class DopeboxProvider : SflixProvider() {
|
|||
override var mainUrl = "https://dopebox.to"
|
||||
override var name = "Dopebox"
|
||||
}
|
||||
|
||||
class SolarmovieProvider : SflixProvider() {
|
||||
override var mainUrl = "https://solarmovie.pe"
|
||||
override var name = "Solarmovie"
|
||||
}
|
||||
|
||||
open class SflixProvider() : MainAPI() {
|
||||
open class SflixProvider : MainAPI() {
|
||||
override var mainUrl = "https://sflix.to"
|
||||
override var name = "Sflix.to"
|
||||
|
||||
|
@ -87,6 +88,10 @@ open class SflixProvider() : MainAPI() {
|
|||
val image = it.select("img").attr("data-src")
|
||||
val isMovie = href.contains("/movie/")
|
||||
|
||||
val metaInfo = it.select("div.fd-infor > span.fdi-item")
|
||||
// val rating = metaInfo[0].text()
|
||||
val quality = getQualityFromString(metaInfo?.getOrNull(1)?.text())
|
||||
|
||||
if (isMovie) {
|
||||
MovieSearchResponse(
|
||||
title,
|
||||
|
@ -94,7 +99,8 @@ open class SflixProvider() : MainAPI() {
|
|||
this.name,
|
||||
TvType.Movie,
|
||||
image,
|
||||
year
|
||||
year,
|
||||
quality = quality
|
||||
)
|
||||
} else {
|
||||
TvSeriesSearchResponse(
|
||||
|
@ -104,7 +110,8 @@ open class SflixProvider() : MainAPI() {
|
|||
TvType.TvSeries,
|
||||
image,
|
||||
year,
|
||||
null
|
||||
null,
|
||||
quality = quality
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ object SearchResultBuilder {
|
|||
|
||||
val textIsDub: TextView? = itemView.text_is_dub
|
||||
val textIsSub: TextView? = itemView.text_is_sub
|
||||
val textQuality: TextView? = itemView.text_quality
|
||||
|
||||
val bg: CardView = itemView.backgroundCard
|
||||
|
||||
|
@ -46,6 +47,28 @@ object SearchResultBuilder {
|
|||
textIsDub?.isVisible = false
|
||||
textIsSub?.isVisible = false
|
||||
|
||||
when(card.quality) {
|
||||
SearchQuality.BlueRay -> R.string.quality_blueray
|
||||
SearchQuality.Cam -> R.string.quality_cam
|
||||
SearchQuality.CamRip -> R.string.quality_cam_rip
|
||||
SearchQuality.DVD -> R.string.quality_dvd
|
||||
SearchQuality.HD -> R.string.quality_hd
|
||||
SearchQuality.HQ -> R.string.quality_hq
|
||||
SearchQuality.HdCam -> R.string.quality_cam_hd
|
||||
SearchQuality.Telecine -> R.string.quality_tc
|
||||
SearchQuality.Telesync -> R.string.quality_ts
|
||||
SearchQuality.WorkPrint -> R.string.quality_workprint
|
||||
SearchQuality.SD -> R.string.quality_sd
|
||||
SearchQuality.FourK -> R.string.quality_4k
|
||||
SearchQuality.UHD -> R.string.quality_uhd
|
||||
else -> null
|
||||
}?.let { textRes ->
|
||||
textQuality?.setText(textRes)
|
||||
textQuality?.isVisible = true
|
||||
} ?: run {
|
||||
textQuality?.isVisible = false
|
||||
}
|
||||
|
||||
cardText?.text = card.name
|
||||
|
||||
cardView.isVisible = true
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/dubColorBg"/>
|
||||
<corners android:radius="@dimen/rounded_image_radius"/>
|
||||
<stroke android:color="@color/dubColor" android:width="2dp"/>
|
||||
<!-- <stroke android:color="@color/dubColor" android:width="2dp"/>-->
|
||||
</shape>
|
|
@ -2,5 +2,5 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/subColorBg"/>
|
||||
<corners android:radius="@dimen/rounded_image_radius"/>
|
||||
<stroke android:color="@color/subColor" android:width="2dp"/>
|
||||
<!-- <stroke android:color="@color/subColor" android:width="2dp"/>-->
|
||||
</shape>
|
|
@ -2,5 +2,5 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/typeColorBg"/>
|
||||
<corners android:radius="@dimen/rounded_image_radius"/>
|
||||
<stroke android:color="@color/typeColor" android:width="1dp"/>
|
||||
<!-- <stroke android:color="@color/typeColor" android:width="2dp"/>-->
|
||||
</shape>
|
|
@ -84,6 +84,12 @@
|
|||
android:layout_width="30dp"
|
||||
android:layout_height="30dp">
|
||||
</ImageView>-->
|
||||
<TextView
|
||||
tools:text="@string/quality_hd"
|
||||
android:id="@+id/text_quality"
|
||||
style="@style/SearchBox"
|
||||
android:background="@drawable/type_bg_color"/>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_gravity="end"
|
||||
|
@ -99,32 +105,15 @@
|
|||
<TextView
|
||||
android:text="@string/app_dubbed_text"
|
||||
android:id="@+id/text_is_dub"
|
||||
android:textColor="@color/textColor"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingTop="4dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
style="@style/SearchBox"
|
||||
android:layout_gravity="end"
|
||||
android:paddingBottom="4dp"
|
||||
android:minWidth="50dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/dub_bg_color"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
android:background="@drawable/dub_bg_color" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_is_sub"
|
||||
android:text="@string/app_subbed_text"
|
||||
style="@style/SearchBox"
|
||||
android:layout_gravity="end"
|
||||
android:textColor="@color/textColor"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:minWidth="50dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/sub_bg_color"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
android:background="@drawable/sub_bg_color" />
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
|
|
@ -55,81 +55,31 @@
|
|||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:ellipsize="end" />
|
||||
<!--<View
|
||||
android:id="@+id/search_result_lang"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="4dp"
|
||||
android:alpha="0.9">
|
||||
<TextView
|
||||
tools:text="@string/quality_hd"
|
||||
android:id="@+id/text_quality"
|
||||
android:textColor="@color/textColor"
|
||||
style="@style/SearchBox"
|
||||
android:background="@drawable/type_bg_color" />
|
||||
|
||||
</View>-->
|
||||
<!--<ImageView
|
||||
android:src="@drawable/ic_baseline_bookmark_24"
|
||||
android:id="@+id/search_result_lang"
|
||||
android:layout_gravity="right"
|
||||
android:layout_marginTop="-5dp"
|
||||
android:layout_marginRight="-6.5dp"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp">
|
||||
</ImageView>-->
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_gravity="end"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<!-- <TextView
|
||||
android:text="Movie"
|
||||
android:textColor="?attr/textColor"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingTop="4dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_gravity="end"
|
||||
android:paddingBottom="8dp"
|
||||
android:minWidth="50dp"
|
||||
android:gravity="end"
|
||||
android:background="@drawable/type_bg_color"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>-->
|
||||
|
||||
<!--
|
||||
<ImageView android:id="@+id/text_is_dub" android:tint="?attr/colorPrimary"
|
||||
android:src="@drawable/ic_baseline_subtitles_24" android:layout_width="wrap_content"
|
||||
android:layout_height="20dp">
|
||||
|
||||
</ImageView>-->
|
||||
<TextView
|
||||
android:text="@string/app_dubbed_text"
|
||||
android:id="@+id/text_is_dub"
|
||||
android:textColor="@color/textColor"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingTop="4dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_gravity="end"
|
||||
android:paddingBottom="4dp"
|
||||
android:minWidth="50dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/dub_bg_color"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
style="@style/SearchBox"
|
||||
android:background="@drawable/dub_bg_color" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_is_sub"
|
||||
android:text="@string/app_subbed_text"
|
||||
android:layout_gravity="end"
|
||||
android:textColor="@color/textColor"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:minWidth="50dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/sub_bg_color"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
style="@style/SearchBox"
|
||||
android:background="@drawable/sub_bg_color" />
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
|
|
@ -433,6 +433,7 @@
|
|||
<string name="home_source">Source</string>
|
||||
|
||||
<string name="coming_soon">Coming soon…</string>
|
||||
|
||||
<string name="quality_cam">Cam</string>
|
||||
<string name="quality_cam_rip">Cam</string>
|
||||
<string name="quality_cam_hd">Cam</string>
|
||||
|
@ -443,5 +444,9 @@
|
|||
<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="poster_image">Poster Image</string>
|
||||
</resources>
|
||||
|
|
|
@ -321,6 +321,21 @@
|
|||
<item name="android:textStyle">bold</item>
|
||||
</style>
|
||||
|
||||
<style name="SearchBox">
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="minWidth">50dp</item>
|
||||
<item name="android:minWidth">50dp</item>
|
||||
<item name="android:gravity">center</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_marginBottom">5dp</item>
|
||||
<item name="android:paddingLeft">10dp</item>
|
||||
<item name="android:paddingRight">10dp</item>
|
||||
<item name="android:paddingTop">5dp</item>
|
||||
<item name="android:paddingBottom">5dp</item>
|
||||
<item name="textColor">@color/textColor</item>
|
||||
</style>
|
||||
|
||||
<style name="NiceButton">
|
||||
<!--removes shadow-->
|
||||
<item name="android:stateListAnimator">@null</item>
|
||||
|
|
Loading…
Reference in a new issue