feat(PR): Story Snap Batch Download by RSR

feat: Story Snap List Download
This commit is contained in:
ΞTΞRNAL
2026-03-10 18:46:54 +05:30
committed by GitHub
35 changed files with 663 additions and 8 deletions

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "هل أنت متأكد أنك تريد إزالة المهام المحددة؟",
"remove_all_tasks_title": "هل أنت متأكد أنك تريد إزالة جميع المهام؟",
"delete_files_option": "حذف الملفات أيضاً",
"delete_files_option_hint": "إزالة الملفات المحملة من الجهاز أيضاً",
"remove_selected_tasks_confirm": "إزالة {count} مهام؟",
"remove_all_tasks_confirm": "إزالة جميع المهام؟"
},
@@ -3035,7 +3036,15 @@
"title": "تنزيل وسائط dash",
"download_all": "تنزيل الكل",
"segment_text": "جزء {from} - {to}"
}
},
"story_snap_dialog": {
"title": "تنزيل سنابات القصة",
"select_all": "تحديد الكل",
"deselect_all": "إلغاء التحديد",
"snap_item": "السناب {index} من {total}"
},
"batch_download_complete_toast": "تم تنزيل جميع السنابات",
"batch_download_jump_failed_toast": "تعذر الانتقال للسناب التالي. تأكد من أن عرض القصة مرئي."
},
"streaks_reminder": {
"notification_title": "الستريك (Streaks)",

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "আপনি কি নির্বাচিত টাস্কগুলো সরাতে চান?",
"remove_all_tasks_title": "আপনি কি সব টাস্ক সরাতে চান?",
"delete_files_option": "ফাইলগুলোও ডিলিট করুন",
"delete_files_option_hint": "স্টোরেজ থেকে মূল ফাইলগুলো স্থায়ীভাবে সরান",
"remove_selected_tasks_confirm": "{count} টি টাস্ক সরাবেন?",
"remove_all_tasks_confirm": "সব টাস্ক সরাবেন?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Er du sikker på, at du vil fjerne valgte opgaver?",
"remove_all_tasks_title": "Er du sikker på, at du vil fjerne alle opgaver?",
"delete_files_option": "Slet også filer",
"delete_files_option_hint": "Fjern også downloadede filer fra enheden",
"remove_selected_tasks_confirm": "Fjern {count} opgaver?",
"remove_all_tasks_confirm": "Fjern alle opgaver?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Möchtest du die ausgewählten Aufgaben wirklich entfernen?",
"remove_all_tasks_title": "Möchtest du wirklich alle Aufgaben entfernen?",
"delete_files_option": "Auch Dateien löschen",
"delete_files_option_hint": "Heruntergeladene Dateien auch vom Gerät entfernen",
"remove_selected_tasks_confirm": "{count} Aufgaben entfernen?",
"remove_all_tasks_confirm": "Alle Aufgaben entfernen?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Are you sure you want to remove selected tasks?",
"remove_all_tasks_title": "Are you sure you want to remove all tasks?",
"delete_files_option": "Also delete files",
"delete_files_option_hint": "Also remove downloaded files from device",
"remove_selected_tasks_confirm": "Remove {count} tasks?",
"remove_all_tasks_confirm": "Remove all tasks?"
},

View File

@@ -1015,6 +1015,10 @@
"name": "Opera Download Button",
"description": "Adds a download button on the top right corner when viewing a Snap.\nLong press on buttons will force download"
},
"story_snap_list_download": {
"name": "Story Snap List Download",
"description": "When viewing a multi-snap story, shows a dialog to select which snaps to download"
},
"download_context_menu": {
"name": "Download Context Menu",
"description": "Allows you to download/preview messages from a conversation or a story using the context menu.\nLong press on buttons will force download"
@@ -3081,7 +3085,15 @@
"title": "Download dash media",
"download_all": "Download All",
"segment_text": "Segment {from} - {to}"
}
},
"story_snap_dialog": {
"title": "Download story snaps",
"select_all": "Select All",
"deselect_all": "Deselect All",
"snap_item": "Snap {index} of {total}"
},
"batch_download_complete_toast": "All snaps downloaded",
"batch_download_jump_failed_toast": "Could not navigate to next snap. Ensure Story Snap Jump is enabled and the story view is visible."
},
"streaks_reminder": {
"notification_title": "Streaks",

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "¿Estás seguro de que quieres eliminar las tareas seleccionadas?",
"remove_all_tasks_title": "¿Estás seguro de que quieres eliminar todas las tareas?",
"delete_files_option": "También eliminar archivos",
"delete_files_option_hint": "También eliminar archivos descargados del dispositivo",
"remove_selected_tasks_confirm": "¿Eliminar {count} tareas?",
"remove_all_tasks_confirm": "¿Eliminar todas las tareas?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Oletko varma, että haluat poistaa valitut tehtävät?",
"remove_all_tasks_title": "Oletko varma, että haluat poistaa kaikki tehtävät?",
"delete_files_option": "Poista myös tiedostot",
"delete_files_option_hint": "Poista myös ladatut tiedostot laitteelta",
"remove_selected_tasks_confirm": "Poista {count} tehtävää?",
"remove_all_tasks_confirm": "Poista kaikki tehtävät?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Êtes-vous sûr de vouloir supprimer les tâches sélectionnées ?",
"remove_all_tasks_title": "Êtes-vous sûr de vouloir supprimer toutes les tâches ?",
"delete_files_option": "Supprimer aussi les fichiers",
"delete_files_option_hint": "Supprimer aussi les fichiers téléchargés de l'appareil",
"remove_selected_tasks_confirm": "Supprimer {count} tâches ?",
"remove_all_tasks_confirm": "Supprimer toutes les tâches ?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "क्या आप वाकई चयनित कार्यों को हटाना चाहते हैं?",
"remove_all_tasks_title": "क्या आप वाकई सभी कार्यों को हटाना चाहते हैं?",
"delete_files_option": "फ़ाइलें भी हटाएँ",
"delete_files_option_hint": "स्टोरेज से मूल फ़ाइलों को स्थायी रूप से हटाएँ",
"remove_selected_tasks_confirm": "{count} कार्य हटाएँ?",
"remove_all_tasks_confirm": "सभी कार्य हटाएँ?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Biztosan törölni szeretnéd a kijelölt feladatokat?",
"remove_all_tasks_title": "Biztosan törölni szeretnéd az összes feladatot?",
"delete_files_option": "Fájlok törlése is",
"delete_files_option_hint": "Az eredeti fájlok végleges eltávolítása a tárolóból",
"remove_selected_tasks_confirm": "{count} feladat törlése?",
"remove_all_tasks_confirm": "Összes feladat törlése?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Apakah Anda yakin ingin menghapus tugas yang dipilih?",
"remove_all_tasks_title": "Apakah Anda yakin ingin menghapus semua tugas?",
"delete_files_option": "Hapus juga file",
"delete_files_option_hint": "Hapus juga file yang diunduh dari perangkat",
"remove_selected_tasks_confirm": "Hapus {count} tugas?",
"remove_all_tasks_confirm": "Hapus semua tugas?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Sei sicuro di voler rimuovere le attività selezionate?",
"remove_all_tasks_title": "Sei sicuro di voler rimuovere tutte le attività?",
"delete_files_option": "Elimina anche i file",
"delete_files_option_hint": "Rimuovi anche i file scaricati dal dispositivo",
"remove_selected_tasks_confirm": "Rimuovere {count} attività?",
"remove_all_tasks_confirm": "Rimuovere tutte le attività?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "選択したタスクを削除しますか?",
"remove_all_tasks_title": "すべてのタスクを削除しますか?",
"delete_files_option": "ファイルも削除する",
"delete_files_option_hint": "ストレージから元のファイルを完全に削除する",
"remove_selected_tasks_confirm": "{count} 個のタスクを削除しますか?",
"remove_all_tasks_confirm": "すべてのタスクを削除しますか?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "선택한 작업을 제거하시겠습니까?",
"remove_all_tasks_title": "모든 작업을 제거하시겠습니까?",
"delete_files_option": "파일도 삭제",
"delete_files_option_hint": "저장소에서 원본 파일을 영구적으로 제거",
"remove_selected_tasks_confirm": "{count}개의 작업 제거?",
"remove_all_tasks_confirm": "모든 작업 제거?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "دڵنیایت دەتەوێت ئەرکە دیاریکراوەکان بسڕیتەوە؟",
"remove_all_tasks_title": "دڵنیایت دەتەوێت هەموو ئەرکەکان بسڕیتەوە؟",
"delete_files_option": "فایلەکانیش بسڕەوە",
"delete_files_option_hint": "فایلە ئەسڵییەکان بە هەمیشەیی لە کۆگەوە بسڕەوە",
"remove_selected_tasks_confirm": "{count} ئەرک بسڕدرێتەوە؟",
"remove_all_tasks_confirm": "هەموو ئەرکەکان بسڕدرێتەوە؟"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Vai tiešām vēlaties noņemt atlasītos uzdevumus?",
"remove_all_tasks_title": "Vai tiešām vēlaties noņemt visus uzdevumus?",
"delete_files_option": "Dzēst arī failus",
"delete_files_option_hint": "Noņemt arī lejupielādētos failus no ierīces",
"remove_selected_tasks_confirm": "Noņemt {count} uzdevumus?",
"remove_all_tasks_confirm": "Noņemt visus uzdevumus?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Er du sikker på at du vil fjerne valgte oppgaver?",
"remove_all_tasks_title": "Er du sikker på at du vil fjerne alle oppgaver?",
"delete_files_option": "Slett også filer",
"delete_files_option_hint": "Fjern permanent de originale filene fra lagring",
"remove_selected_tasks_confirm": "Fjerne {count} oppgaver?",
"remove_all_tasks_confirm": "Fjerne alle oppgaver?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Weet je zeker dat je de geselecteerde taken wilt verwijderen?",
"remove_all_tasks_title": "Weet je zeker dat je alle taken wilt verwijderen?",
"delete_files_option": "Ook bestanden verwijderen",
"delete_files_option_hint": "Ook gedownloade bestanden van apparaat verwijderen",
"remove_selected_tasks_confirm": "{count} taken verwijderen?",
"remove_all_tasks_confirm": "Alle taken verwijderen?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Czy na pewno chcesz usunąć wybrane zadania?",
"remove_all_tasks_title": "Czy na pewno chcesz usunąć wszystkie zadania?",
"delete_files_option": "Usuń również pliki",
"delete_files_option_hint": "Usuń również pobrane pliki z urządzenia",
"remove_selected_tasks_confirm": "Usunąć {count} zadań?",
"remove_all_tasks_confirm": "Usunąć wszystkie zadania?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Tem certeza que deseja remover as tarefas selecionadas?",
"remove_all_tasks_title": "Tem certeza que deseja remover todas as tarefas?",
"delete_files_option": "Excluir arquivos também",
"delete_files_option_hint": "Remover permanentemente os arquivos originais do armazenamento",
"remove_selected_tasks_confirm": "Remover {count} tarefas?",
"remove_all_tasks_confirm": "Remover todas as tarefas?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Ești sigur că vrei să elimini sarcinile selectate?",
"remove_all_tasks_title": "Ești sigur că vrei să elimini toate sarcinile?",
"delete_files_option": "Șterge și fișierele",
"delete_files_option_hint": "Elimină permanent fișierele originale din stocare",
"remove_selected_tasks_confirm": "Elimină {count} sarcini?",
"remove_all_tasks_confirm": "Elimină toate sarcinile?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Вы уверены, что хотите удалить выбранные задачи?",
"remove_all_tasks_title": "Вы уверены, что хотите удалить все задачи?",
"delete_files_option": "Также удалить файлы",
"delete_files_option_hint": "Также удалить загруженные файлы с устройства",
"remove_selected_tasks_confirm": "Удалить {count} задач?",
"remove_all_tasks_confirm": "Удалить все задачи?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Si prepričan, da želiš odstraniti izbrana opravila?",
"remove_all_tasks_title": "Si prepričan, da želiš odstraniti vsa opravila?",
"delete_files_option": "Izbriši tudi datoteke",
"delete_files_option_hint": "Trajno odstrani izvirne datoteke iz pomnilnika",
"remove_selected_tasks_confirm": "Odstrani {count} opravil?",
"remove_all_tasks_confirm": "Odstrani vsa opravila?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Är du säker på att du vill ta bort valda uppgifter?",
"remove_all_tasks_title": "Är du säker på att du vill ta bort alla uppgifter?",
"delete_files_option": "Radera även filer",
"delete_files_option_hint": "Ta bort nedladdade filer från enheten",
"remove_selected_tasks_confirm": "Ta bort {count} uppgifter?",
"remove_all_tasks_confirm": "Ta bort alla uppgifter?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Seçili görevleri kaldırmak istediğinizden emin misiniz?",
"remove_all_tasks_title": "Tüm görevleri kaldırmak istediğinizden emin misiniz?",
"delete_files_option": "Dosyaları da sil",
"delete_files_option_hint": "Depolamadan özgün dosyaları kalıcı olarak kaldır",
"remove_selected_tasks_confirm": "{count} görevi kaldır?",
"remove_all_tasks_confirm": "Tüm görevleri kaldır?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "Ви впевнені, що хочете видалити вибрані завдання?",
"remove_all_tasks_title": "Ви впевнені, що хочете видалити всі завдання?",
"delete_files_option": "Також видалити файли",
"delete_files_option_hint": "Також видалити завантажені файли з пристрою",
"remove_selected_tasks_confirm": "Видалити {count} завдань?",
"remove_all_tasks_confirm": "Видалити всі завдання?"
},

View File

@@ -340,6 +340,7 @@
"remove_selected_tasks_title": "您确定要删除选定的任务吗?",
"remove_all_tasks_title": "您确定要删除所有任务吗?",
"delete_files_option": "同时删除文件",
"delete_files_option_hint": "从存储中永久删除原始文件",
"remove_selected_tasks_confirm": "删除 {count} 个任务?",
"remove_all_tasks_confirm": "删除所有任务?"
},

View File

@@ -44,6 +44,7 @@ class DownloaderConfig : ConfigContainer() {
val autoDownloadVoiceNotes = boolean("auto_download_voice_notes") { requireRestart(); addNotices(FeatureNotice.UNSTABLE) }
val downloadProfilePictures = boolean("download_profile_pictures") { requireRestart() }
val operaDownloadButton = boolean("opera_download_button") { requireRestart() }
val storySnapListDownload = boolean("story_snap_list_download", true)
val downloadContextMenu = boolean("download_context_menu")
val ffmpegOptions = container("ffmpeg_options", FFMpegOptions()) { addNotices(FeatureNotice.UNSTABLE) }
val logging = multiple("logging", "started", "success", "progress", "failure").apply {