1.8.1.1
This commit is contained in:
parent
c3d355d296
commit
032d4d58e9
6 changed files with 57 additions and 23 deletions
14
CHANGELOG.md
14
CHANGELOG.md
|
|
@ -1,5 +1,18 @@
|
||||||
# YTDLnis Changelog
|
# YTDLnis Changelog
|
||||||
|
|
||||||
|
> # 1.8.1.1 (2024-12)
|
||||||
|
|
||||||
|
# What's Changed
|
||||||
|
|
||||||
|
- Fixed some preferences having wrong description
|
||||||
|
- Fixed app not matching vp9 formats sometimes
|
||||||
|
- Fixed command templates order icon
|
||||||
|
- Fixed app crashing when going landscape on large tablets
|
||||||
|
- Player Client preference is now reset so its empty by default. If you had modified it, please set it again :)
|
||||||
|
- Added ability for the app to also move the write info json files along with the video if the user requests it as extra command
|
||||||
|
- Made the re-download button always show the download card for error downloads
|
||||||
|
- Used format sorting for selecting worst format instead of wv or wa
|
||||||
|
|
||||||
> # 1.8.1 (2024-11)
|
> # 1.8.1 (2024-11)
|
||||||
|
|
||||||
# What's Changed
|
# What's Changed
|
||||||
|
|
@ -15,7 +28,6 @@
|
||||||
- #618, made all preferences with a description show their values
|
- #618, made all preferences with a description show their values
|
||||||
- Fixed bug that prevented app from loading all urls from text file
|
- Fixed bug that prevented app from loading all urls from text file
|
||||||
- Added ability to stop an observed source but not delete it
|
- Added ability to stop an observed source but not delete it
|
||||||
-
|
|
||||||
|
|
||||||
## Custom yt-dlp source
|
## Custom yt-dlp source
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ def properties = new Properties()
|
||||||
def versionMajor = 1
|
def versionMajor = 1
|
||||||
def versionMinor = 8
|
def versionMinor = 8
|
||||||
def versionPatch = 1
|
def versionPatch = 1
|
||||||
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
|
def versionBuild = 1 // bump for dogfood builds, public betas, etc.
|
||||||
def isBeta = false
|
def isBeta = false
|
||||||
|
|
||||||
def versionExt = ""
|
def versionExt = ""
|
||||||
|
|
|
||||||
|
|
@ -364,7 +364,13 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL
|
||||||
val item = withContext(Dispatchers.IO){
|
val item = withContext(Dispatchers.IO){
|
||||||
downloadViewModel.getItemByID(itemID)
|
downloadViewModel.getItemByID(itemID)
|
||||||
}
|
}
|
||||||
downloadViewModel.queueDownloads(listOf(item), true)
|
|
||||||
|
findNavController().navigate(R.id.downloadBottomSheetDialog, bundleOf(
|
||||||
|
Pair("downloadItem", item),
|
||||||
|
Pair("result", downloadViewModel.createResultItemFromDownload(item)),
|
||||||
|
Pair("type", item.type)
|
||||||
|
))
|
||||||
|
|
||||||
adapter.notifyItemChanged(position)
|
adapter.notifyItemChanged(position)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -629,13 +629,18 @@ object UiUtil {
|
||||||
download.setOnClickListener {
|
download.setOnClickListener {
|
||||||
longClickDownloadButton(item)
|
longClickDownloadButton(item)
|
||||||
bottomSheet.cancel()
|
bottomSheet.cancel()
|
||||||
true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DownloadRepository.Status.Scheduled -> {
|
DownloadRepository.Status.Scheduled -> {
|
||||||
download!!.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_downloads, 0, 0, 0);
|
download!!.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_downloads, 0, 0, 0);
|
||||||
download.text = context.getString(R.string.download_now)
|
download.text = context.getString(R.string.download_now)
|
||||||
}
|
}
|
||||||
|
DownloadRepository.Status.Error -> {
|
||||||
|
download?.setOnClickListener {
|
||||||
|
longClickDownloadButton(item)
|
||||||
|
bottomSheet.cancel()
|
||||||
|
}
|
||||||
|
}
|
||||||
else -> {
|
else -> {
|
||||||
download?.setOnLongClickListener {
|
download?.setOnLongClickListener {
|
||||||
longClickDownloadButton(item)
|
longClickDownloadButton(item)
|
||||||
|
|
@ -645,7 +650,7 @@ object UiUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status != DownloadRepository.Status.Queued){
|
if (status != DownloadRepository.Status.Queued && status != DownloadRepository.Status.Error){
|
||||||
download?.setOnClickListener {
|
download?.setOnClickListener {
|
||||||
bottomSheet.dismiss()
|
bottomSheet.dismiss()
|
||||||
downloadItem(item)
|
downloadItem(item)
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,8 @@ class YTDLPUtil(private val context: Context) {
|
||||||
|
|
||||||
val extraCommands = sharedPreferences.getString("data_fetching_extra_commands", "")!!
|
val extraCommands = sharedPreferences.getString("data_fetching_extra_commands", "")!!
|
||||||
if (extraCommands.isNotBlank()){
|
if (extraCommands.isNotBlank()){
|
||||||
addConfig(extraCommands)
|
addCommands(extraCommands.split(" ", "\t", "\n"))
|
||||||
|
//addConfig(extraCommands)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -762,12 +763,9 @@ class YTDLPUtil(private val context: Context) {
|
||||||
var abrSort = ""
|
var abrSort = ""
|
||||||
|
|
||||||
var audioQualityId : String = downloadItem.format.format_id
|
var audioQualityId : String = downloadItem.format.format_id
|
||||||
if (audioQualityId.isBlank() || listOf("0", context.getString(R.string.best_quality), "ba", "best", "").contains(audioQualityId)){
|
if (audioQualityId.isBlank() || listOf("0", context.getString(R.string.best_quality), "ba", "best", "", context.getString(R.string.worst_quality), "wa", "worst").contains(audioQualityId)){
|
||||||
audioQualityId = "ba/b"
|
audioQualityId = "ba/b"
|
||||||
}else if (listOf(context.getString(R.string.worst_quality), "wa", "worst").contains(audioQualityId)){
|
|
||||||
audioQualityId = "wa/w"
|
|
||||||
}else if(audioQualityId.contains("kbps_ytdlnisgeneric")){
|
}else if(audioQualityId.contains("kbps_ytdlnisgeneric")){
|
||||||
|
|
||||||
abrSort = audioQualityId.split("kbps")[0]
|
abrSort = audioQualityId.split("kbps")[0]
|
||||||
audioQualityId = ""
|
audioQualityId = ""
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -798,6 +796,10 @@ class YTDLPUtil(private val context: Context) {
|
||||||
|
|
||||||
val formatSorting = StringBuilder("hasaud")
|
val formatSorting = StringBuilder("hasaud")
|
||||||
|
|
||||||
|
if (downloadItem.format.format_id == context.resources.getString(R.string.worst_quality) || downloadItem.format.format_id == "wa" || downloadItem.format.format_id == "worst") {
|
||||||
|
formatSorting.append(",+br,+res,+fps")
|
||||||
|
}
|
||||||
|
|
||||||
if (abrSort.isNotBlank()){
|
if (abrSort.isNotBlank()){
|
||||||
formatSorting.append(",abr:${abrSort}")
|
formatSorting.append(",abr:${abrSort}")
|
||||||
}
|
}
|
||||||
|
|
@ -990,11 +992,8 @@ class YTDLPUtil(private val context: Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if (videoF == context.resources.getString(R.string.best_quality) || videoF == "best") {
|
if (videoF == context.resources.getString(R.string.best_quality) || videoF == "best" || videoF == context.resources.getString(R.string.worst_quality) || videoF == "worst") {
|
||||||
videoF = "bv"
|
videoF = "bv"
|
||||||
}else if (videoF == context.resources.getString(R.string.worst_quality) || videoF == "worst") {
|
|
||||||
videoF = "wv"
|
|
||||||
if (audioF == "ba") audioF = "wa"
|
|
||||||
}else if (defaultFormats.contains(videoF)) {
|
}else if (defaultFormats.contains(videoF)) {
|
||||||
hasGenericResulutionFormat = videoF.split("_")[0].dropLast(1)
|
hasGenericResulutionFormat = videoF.split("_")[0].dropLast(1)
|
||||||
videoF = "bv"
|
videoF = "bv"
|
||||||
|
|
@ -1067,7 +1066,9 @@ class YTDLPUtil(private val context: Context) {
|
||||||
val preferredLanguage = sharedPreferences.getString("audio_language","")!!
|
val preferredLanguage = sharedPreferences.getString("audio_language","")!!
|
||||||
|
|
||||||
StringBuilder().apply {
|
StringBuilder().apply {
|
||||||
if (hasGenericResulutionFormat.isNotBlank()) {
|
if (downloadItem.format.format_id == context.resources.getString(R.string.worst_quality) || downloadItem.format.format_id == "worst") {
|
||||||
|
append(",+br,+res,+fps")
|
||||||
|
}else if (hasGenericResulutionFormat.isNotBlank()) {
|
||||||
append(",res:${hasGenericResulutionFormat}")
|
append(",res:${hasGenericResulutionFormat}")
|
||||||
}
|
}
|
||||||
if (sharedPreferences.getBoolean("prefer_smaller_formats", false)) append(",+size")
|
if (sharedPreferences.getBoolean("prefer_smaller_formats", false)) append(",+size")
|
||||||
|
|
@ -1145,14 +1146,16 @@ class YTDLPUtil(private val context: Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (downloadItem.extraCommands.isNotBlank() && downloadItem.type != DownloadViewModel.Type.command){
|
if (downloadItem.extraCommands.isNotBlank() && downloadItem.type != DownloadViewModel.Type.command){
|
||||||
val cache = File(FileUtil.getCachePath(context))
|
request.addCommands(downloadItem.extraCommands.split(" ", "\t", "\n"))
|
||||||
cache.mkdirs()
|
//
|
||||||
val conf = File(cache.absolutePath + "/${System.currentTimeMillis()}${UUID.randomUUID()}.txt")
|
// val cache = File(FileUtil.getCachePath(context))
|
||||||
conf.createNewFile()
|
// cache.mkdirs()
|
||||||
conf.writeText(downloadItem.extraCommands)
|
// val conf = File(cache.absolutePath + "/${System.currentTimeMillis()}${UUID.randomUUID()}.txt")
|
||||||
val tmp = mutableListOf<String>()
|
// conf.createNewFile()
|
||||||
tmp.addOption("--config-locations", conf.absolutePath)
|
// conf.writeText(downloadItem.extraCommands)
|
||||||
request.addCommands(tmp)
|
// val tmp = mutableListOf<String>()
|
||||||
|
// tmp.addOption("--config-locations", conf.absolutePath)
|
||||||
|
// request.addCommands(tmp)
|
||||||
}
|
}
|
||||||
|
|
||||||
return request
|
return request
|
||||||
|
|
|
||||||
8
fastlane/metadata/android/en-US/changelogs/108010100.txt
Normal file
8
fastlane/metadata/android/en-US/changelogs/108010100.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# What's Changed
|
||||||
|
|
||||||
|
- Fixed some preferences having wrong description
|
||||||
|
- Fixed app not matching vp9 formats sometimes
|
||||||
|
- Fixed app crashing when going landscape on large tablets
|
||||||
|
- Player Client preference is now reset so its empty by default.
|
||||||
|
- Made the re-download button always show the download card for error downloads
|
||||||
|
- Used format sorting for selecting worst format instead of wv or wa
|
||||||
Loading…
Reference in a new issue