From 14033e38e29cbe728f885e7868c9dd501ec0ae9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20=C3=87erri?= <64997243+deniscerri@users.noreply.github.com> Date: Mon, 2 Jan 2023 22:34:43 +0100 Subject: [PATCH] added other sponsorblock delete categories --- .idea/assetWizardSettings.xml | 4 +-- .../deniscerri/ytdlnis/DownloaderService.java | 13 ++++++---- .../page/settings/SettingsFragment.java | 16 +++++++----- app/src/main/res/drawable/ic_money.xml | 5 ++++ app/src/main/res/values/arrays.xml | 25 +++++++++++++++++++ app/src/main/res/values/strings.xml | 9 +++++++ app/src/main/res/xml/root_preferences.xml | 15 ++++++----- build.gradle | 2 +- 8 files changed, 69 insertions(+), 20 deletions(-) create mode 100644 app/src/main/res/drawable/ic_money.xml diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml index f70e7af4..41f999de 100644 --- a/.idea/assetWizardSettings.xml +++ b/.idea/assetWizardSettings.xml @@ -320,7 +320,7 @@ @@ -331,7 +331,7 @@ diff --git a/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java b/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java index 17d0a6c3..20a58652 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java +++ b/app/src/main/java/com/deniscerri/ytdlnis/DownloaderService.java @@ -27,9 +27,11 @@ import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -315,6 +317,12 @@ public class DownloaderService extends Service { video.setTitle(video.getTitle().replaceAll(":|'|\"|[.]|,", "")); video.setAuthor(video.getAuthor().replaceAll(":|'|\"|[.]|,", "")); + String sponsorBlockFilters = sharedPreferences.getString("sponsorblock_filter", ""); + Toast.makeText(context, sponsorBlockFilters, Toast.LENGTH_LONG).show(); + if (!sponsorBlockFilters.isEmpty()){ + request.addOption("--sponsorblock-remove", sponsorBlockFilters); + } + if (type.equals("audio")) { request.addOption("-x"); String format = video.getAudioFormat(); @@ -337,11 +345,6 @@ public class DownloaderService extends Service { } } - boolean removeNonMusic = sharedPreferences.getBoolean("remove_non_music", false); - if(removeNonMusic){ - request.addOption("--sponsorblock-remove", "all"); - } - request.addCommands(Arrays.asList("--replace-in-metadata","title",".*.",video.getTitle())); request.addCommands(Arrays.asList("--replace-in-metadata","uploader",".*.",video.getAuthor())); diff --git a/app/src/main/java/com/deniscerri/ytdlnis/page/settings/SettingsFragment.java b/app/src/main/java/com/deniscerri/ytdlnis/page/settings/SettingsFragment.java index 4d4b0f9a..8f256136 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/page/settings/SettingsFragment.java +++ b/app/src/main/java/com/deniscerri/ytdlnis/page/settings/SettingsFragment.java @@ -13,15 +13,19 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.preference.EditTextPreference; import androidx.preference.ListPreference; +import androidx.preference.MultiSelectListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.SeekBarPreference; import androidx.preference.SwitchPreferenceCompat; + import com.deniscerri.ytdlnis.BuildConfig; import com.deniscerri.ytdlnis.R; import com.deniscerri.ytdlnis.util.UpdateUtil; import java.nio.charset.StandardCharsets; +import java.util.HashSet; +import java.util.Set; public class SettingsFragment extends PreferenceFragmentCompat { @@ -36,7 +40,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { EditTextPreference limitRate; SwitchPreferenceCompat aria2; - SwitchPreferenceCompat removeNonMusic; + MultiSelectListPreference sponsorblockFilters; SwitchPreferenceCompat embedSubtitles; SwitchPreferenceCompat embedThumbnail; SwitchPreferenceCompat addChapters; @@ -82,7 +86,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { limitRate = findPreference("limit_rate"); aria2 = findPreference("aria2"); - removeNonMusic = findPreference("remove_non_music"); + sponsorblockFilters = findPreference("sponsorblock_filter"); embedSubtitles = findPreference("embed_subtitles"); embedThumbnail = findPreference("embed_thumbnail"); addChapters = findPreference("add_chapters"); @@ -113,7 +117,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { editor.putInt("concurrent_fragments", concurrentFragments.getValue()); editor.putString("limit_rate", limitRate.getText()); editor.putBoolean("aria2", aria2.isChecked()); - editor.putBoolean("remove_non_music", removeNonMusic.isChecked()); + editor.putString("sponsorblock_filter", String.join(",", sponsorblockFilters.getValues())); editor.putBoolean("embed_subtitles", embedSubtitles.isChecked()); editor.putBoolean("embed_thumbnail", embedThumbnail.isChecked()); editor.putBoolean("add_chapters", addChapters.isChecked()); @@ -192,9 +196,9 @@ public class SettingsFragment extends PreferenceFragmentCompat { return true; }); - removeNonMusic.setOnPreferenceChangeListener((preference, newValue) -> { - boolean remove = (Boolean) newValue; - editor.putBoolean("remove_non_music", remove); + sponsorblockFilters.setOnPreferenceChangeListener((preference, newValue) -> { + sponsorblockFilters.setValues((Set) newValue); + editor.putString("sponsorblock_filter", String.join(",", (Set)newValue)); editor.apply(); return true; }); diff --git a/app/src/main/res/drawable/ic_money.xml b/app/src/main/res/drawable/ic_money.xml new file mode 100644 index 00000000..36601422 --- /dev/null +++ b/app/src/main/res/drawable/ic_money.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index d2f6c6f2..c5278db1 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -28,4 +28,29 @@ Worst Quality + + @string/sponsorblock_nonmusic + @string/sponsorblock_sponsors + @string/sponsorblock_intro + @string/sponsorblock_outro + @string/sponsorblock_promos + @string/sponsorblock_previews + @string/sponsorblock_fillers + @string/sponsorblock_reminders + + + + music_offtopic + sponsor + intro + outro + selfpromo + preview + filler + interaction + + + + music_offtopic + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1294b68e..08df8285 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,4 +139,13 @@ This app needs File Permissions to save downloads on the device Exit App Warning + Non-Music and OffTopic portions + Sponsors + Intro + Outro + Self Promos + Previews + Fillers + Subscription Reminders + Select SponsorBlock Filtering \ No newline at end of file diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 72ebc0ae..a8fdd26a 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -74,12 +74,15 @@ - +