From 968ee831f0652546b863b5bae6667ec0d6c7584e Mon Sep 17 00:00:00 2001 From: Fabian Schlenz Date: Thu, 15 Mar 2018 06:48:37 +0100 Subject: [PATCH] Added max_file_age to download only newer files. --- .../telegram_backup/CommandLineDownloadProgress.kt | 3 +++ .../kotlin/de/fabianonline/telegram_backup/DownloadManager.kt | 2 ++ .../fabianonline/telegram_backup/DownloadProgressInterface.kt | 1 + src/main/kotlin/de/fabianonline/telegram_backup/IniSettings.kt | 1 + src/main/resources/config.sample.ini | 3 +++ 5 files changed, 10 insertions(+) diff --git a/src/main/kotlin/de/fabianonline/telegram_backup/CommandLineDownloadProgress.kt b/src/main/kotlin/de/fabianonline/telegram_backup/CommandLineDownloadProgress.kt index 30acdba..90824cd 100644 --- a/src/main/kotlin/de/fabianonline/telegram_backup/CommandLineDownloadProgress.kt +++ b/src/main/kotlin/de/fabianonline/telegram_backup/CommandLineDownloadProgress.kt @@ -52,6 +52,7 @@ internal class CommandLineDownloadProgress : DownloadProgressInterface { println("'.' - Previously downloaded file 'e' - Empty file") println("' ' - Ignored media type (weblinks or contacts, for example)") println("'x' - File skipped because of errors - will be tried again at next run") + println("'_' - Message is older than max_file_age") println("" + count + " Files to check / download") } @@ -75,6 +76,8 @@ internal class CommandLineDownloadProgress : DownloadProgressInterface { showNewLine() println("Done.") } + + override fun onMediaTooOld() = show("_") private fun show(letter: String) { print(letter) diff --git a/src/main/kotlin/de/fabianonline/telegram_backup/DownloadManager.kt b/src/main/kotlin/de/fabianonline/telegram_backup/DownloadManager.kt index b583212..f45630b 100644 --- a/src/main/kotlin/de/fabianonline/telegram_backup/DownloadManager.kt +++ b/src/main/kotlin/de/fabianonline/telegram_backup/DownloadManager.kt @@ -326,6 +326,8 @@ class DownloadManager(internal var client: TelegramClient?, p: DownloadProgressI prog!!.onMediaDownloadedEmpty() } else if (m.downloaded) { prog!!.onMediaAlreadyPresent(m) + } else if (IniSettings.max_file_age!=null && (System.currentTimeMillis() / 1000) - msg.date > IniSettings.max_file_age * 24 * 60 * 60) { + prog!!.onMediaTooOld() } else { try { val result = m.download() diff --git a/src/main/kotlin/de/fabianonline/telegram_backup/DownloadProgressInterface.kt b/src/main/kotlin/de/fabianonline/telegram_backup/DownloadProgressInterface.kt index ecd7895..6829831 100644 --- a/src/main/kotlin/de/fabianonline/telegram_backup/DownloadProgressInterface.kt +++ b/src/main/kotlin/de/fabianonline/telegram_backup/DownloadProgressInterface.kt @@ -29,4 +29,5 @@ interface DownloadProgressInterface { fun onMediaSkipped() fun onMediaAlreadyPresent(file_manager: AbstractMediaFileManager) fun onMediaDownloadFinished() + fun onMediaTooOld() } diff --git a/src/main/kotlin/de/fabianonline/telegram_backup/IniSettings.kt b/src/main/kotlin/de/fabianonline/telegram_backup/IniSettings.kt index 5c6e962..7a5afec 100644 --- a/src/main/kotlin/de/fabianonline/telegram_backup/IniSettings.kt +++ b/src/main/kotlin/de/fabianonline/telegram_backup/IniSettings.kt @@ -82,4 +82,5 @@ object IniSettings { get() = getStringList("whitelist_channels") val blacklist_channels: List? get() = getStringList("blacklist_channels") + val max_file_age = getInt("max_file_age") } diff --git a/src/main/resources/config.sample.ini b/src/main/resources/config.sample.ini index 38e9c4c..1a4d88e 100644 --- a/src/main/resources/config.sample.ini +++ b/src/main/resources/config.sample.ini @@ -18,6 +18,9 @@ ## Download media files # download_media = true +## Only download media files from messages that are never than x days. +## Leave unset to download all media files. +# max_file_age = 7 ## Downloads of channels and supergroups