diff --git a/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt b/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt index 02bcbd2a..7d2f4de7 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt @@ -10,6 +10,7 @@ import com.deniscerri.ytdl.database.models.DownloadItem import com.deniscerri.ytdl.database.models.Format import com.deniscerri.ytdl.database.models.ResultItem import com.deniscerri.ytdl.database.viewmodel.ResultViewModel +import com.deniscerri.ytdl.util.Extensions.getIDFromYoutubeURL import com.deniscerri.ytdl.util.Extensions.isYoutubeChannelURL import com.deniscerri.ytdl.util.Extensions.isYoutubeURL import com.deniscerri.ytdl.util.Extensions.isYoutubeWatchVideosURL @@ -173,7 +174,7 @@ class ResultRepository(private val resultDao: ResultDao, private val commandTemp val res = if (newpipeExtractorResult.isSuccess) { newpipeExtractorResult.getOrNull()!! }else{ - ytdlpUtil.getFromYTDL(inputQuery, resultsGenerated = {}) + ytdlpUtil.getFromYTDL("https://youtu.be/${inputQuery.getIDFromYoutubeURL()}", resultsGenerated = {}) } if (resetResults) { diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt index e0a3a390..63105192 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt @@ -84,6 +84,7 @@ class GenerateYoutubePoTokensFragment : Fragment() { val switch = requireView().findViewById(R.id.web_client_switch) val gvs = requireView().findViewById(R.id.content_gvs) val player = requireView().findViewById(R.id.content_player) + val subs = requireView().findViewById(R.id.content_subs) val visitorData = requireView().findViewById(R.id.content_visitordata) val playerClientDiv = requireView().findViewById(R.id.playerclient_div) @@ -99,6 +100,7 @@ class GenerateYoutubePoTokensFragment : Fragment() { fun setValues(conf: YoutubeGeneratePoTokenItem) { gvs.text = conf.poTokens.find { it.context == "gvs" }?.token ?: "" player.text = conf.poTokens.find { it.context == "player" }?.token ?: "" + subs.text = conf.poTokens.find { it.context == "subs" }?.token ?: "" visitorData.text = conf.visitorData playerClientText.text = conf.clients.joinToString(", ") } @@ -111,6 +113,7 @@ class GenerateYoutubePoTokensFragment : Fragment() { gvs.setOnClickListener(clicker) player.setOnClickListener(clicker) + subs.setOnClickListener(clicker) visitorData.setOnClickListener(clicker) playerClientDiv.setOnClickListener { @@ -263,6 +266,10 @@ class GenerateYoutubePoTokensFragment : Fragment() { webPoTokenResultLauncher.launch(intent) } + dialog.setNeutralButton(getString(R.string.cancel)) { dialogInterface: DialogInterface, _: Int -> + dialogInterface.dismiss() + } + dialog.show() } diff --git a/app/src/main/java/com/deniscerri/ytdl/util/Extensions.kt b/app/src/main/java/com/deniscerri/ytdl/util/Extensions.kt index 6ce8fc5f..fb3388ae 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/Extensions.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/Extensions.kt @@ -16,7 +16,9 @@ import android.graphics.drawable.shapes.OvalShape import android.media.MediaMetadataRetriever import android.media.MediaMetadataRetriever.METADATA_KEY_DURATION import android.net.Uri +import android.text.Editable import android.text.Spanned +import android.text.TextWatcher import android.util.DisplayMetrics import android.util.TypedValue import android.view.MotionEvent @@ -49,6 +51,8 @@ import com.neoutils.highlight.core.Highlight import com.neoutils.highlight.core.scheme.TextColorScheme import com.neoutils.highlight.core.util.Match import com.neoutils.highlight.core.util.UiColor +import com.neoutils.highlight.view.extension.applyTo +import com.neoutils.highlight.view.extension.removeAllSpans import com.neoutils.highlight.view.extension.toSpannedString import com.neoutils.highlight.view.text.HighlightTextWatcher import com.squareup.picasso.Picasso @@ -84,12 +88,34 @@ object Extensions { TextColorScheme(regex = "\\d+(\\.\\d)?%".toRegex(), match = Match.fully(UiColor.Hex("#43a564"))), ) - fun View.enableTextHighlight(){ if (this is EditText || this is TextView){ //init syntax highlighter val highlight = Highlight(textHighlightSchemes) - val highlightWatcher = HighlightTextWatcher(highlight) + val highlightWatcher = object : TextWatcher { + override fun beforeTextChanged( + p0: CharSequence?, + p1: Int, + p2: Int, + p3: Int + ) = Unit + + override fun onTextChanged( + p0: CharSequence?, + p1: Int, + p2: Int, + p3: Int + ) = Unit + + override fun afterTextChanged(p0: Editable?) { + p0?.apply { + kotlin.runCatching { + removeAllSpans() + highlight.applyTo(this) + } + } + } + } if (this is EditText) { this.addTextChangedListener(highlightWatcher) diff --git a/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt index 39190771..57de5158 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/FormatUtil.kt @@ -59,6 +59,11 @@ class FormatUtil(private var context: Context) { formatImportance.remove("codec") } + val noDRC = sharedPreferences.getBoolean("no_prefer_drc_audio", false) + if (noDRC) { + formatImportance.add("no_drc") + } + return formatImportance } } @@ -151,6 +156,14 @@ class FormatUtil(private var context: Context) { } + "no_drc" -> { + if (!a.format_note.contains("drc", false)) { + 0 + }else { + -1 + } + } + else -> 0 } if (comparison != 0) return comparison diff --git a/app/src/main/res/layout/fragment_generate_youtube_po_token.xml b/app/src/main/res/layout/fragment_generate_youtube_po_token.xml index ada888d4..5b446be0 100644 --- a/app/src/main/res/layout/fragment_generate_youtube_po_token.xml +++ b/app/src/main/res/layout/fragment_generate_youtube_po_token.xml @@ -119,6 +119,52 @@ + + + + + + + + + + + + Preferred Format Size Smallest Largest + Don\'t prefer DRC Audio diff --git a/app/src/main/res/xml/processing_preferences.xml b/app/src/main/res/xml/processing_preferences.xml index 70275ac5..f89bc3e0 100644 --- a/app/src/main/res/xml/processing_preferences.xml +++ b/app/src/main/res/xml/processing_preferences.xml @@ -146,6 +146,13 @@ app:summary="@string/preferred_format_id_summary" app:title="@string/preferred_format_id" /> + +