feat: add auto-select from preferences and type picker
All checks were successful
CI / build (push) Successful in 52s

- Add MediaTypeAsk (0) as the default, mapping old video_audio to Ask
- Show Video/Audio/Ask type picker when no default media type is set
- Auto-select matching format and skip picker when defaults are configured
- Add autoSelectVideoFormat / autoSelectAudioFormat helpers with closest-match
- Add buildFilteredFormatList for type-filtered format lists
- Add Media Type setting in settings UI (Ask/Video/Audio)
- Add --merge-output-format mp4 for video downloads via yt-dlp
- Fix formatLabelForDisplay to show Height fallback and Extension
- Add cookies volume mount to docker-compose.yml
- Document cookies setup and new features in README
This commit is contained in:
2026-06-28 11:28:53 +03:30
parent 6bbc87a7c8
commit b11b5649a5
12 changed files with 578 additions and 18 deletions

View File

@@ -80,6 +80,22 @@ func progressKeyboard(pct float64, speed, eta string) models.InlineKeyboardMarku
}
}
// mediaTypeKeyboard builds the initial type picker (Video/Audio/Ask).
func mediaTypeKeyboard() models.InlineKeyboardMarkup {
return models.InlineKeyboardMarkup{
InlineKeyboard: [][]models.InlineKeyboardButton{
{
{Text: "Video", CallbackData: "type_video"},
{Text: "Audio", CallbackData: "type_audio"},
{Text: "Ask", CallbackData: "type_ask"},
},
{
{Text: "Cancel", CallbackData: "cancel_dl"},
},
},
}
}
// deleteConfirmKeyboard builds the confirmation prompt for account deletion.
func deleteConfirmKeyboard(userID int64) models.InlineKeyboardMarkup {
return models.InlineKeyboardMarkup{