added other sponsorblock delete categories
This commit is contained in:
parent
4b5dc1fb40
commit
14033e38e2
8 changed files with 69 additions and 20 deletions
|
|
@ -320,7 +320,7 @@
|
||||||
<PersistentState>
|
<PersistentState>
|
||||||
<option name="values">
|
<option name="values">
|
||||||
<map>
|
<map>
|
||||||
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material/icons/materialicons/arrow_upward/baseline_arrow_upward_24.xml" />
|
<entry key="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/icons/material/materialicons/attach_money/baseline_attach_money_24.xml" />
|
||||||
</map>
|
</map>
|
||||||
</option>
|
</option>
|
||||||
</PersistentState>
|
</PersistentState>
|
||||||
|
|
@ -331,7 +331,7 @@
|
||||||
<option name="values">
|
<option name="values">
|
||||||
<map>
|
<map>
|
||||||
<entry key="color" value="00a6ff" />
|
<entry key="color" value="00a6ff" />
|
||||||
<entry key="outputName" value="ic_arrow_up" />
|
<entry key="outputName" value="ic_money" />
|
||||||
<entry key="sourceFile" value="C:\Users\denis\Desktop\adaptiveproduct_youtube_foreground_color_108 (1).svg" />
|
<entry key="sourceFile" value="C:\Users\denis\Desktop\adaptiveproduct_youtube_foreground_color_108 (1).svg" />
|
||||||
</map>
|
</map>
|
||||||
</option>
|
</option>
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,11 @@ import java.io.FileOutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
@ -315,6 +317,12 @@ public class DownloaderService extends Service {
|
||||||
video.setTitle(video.getTitle().replaceAll(":|'|\"|[.]|,", ""));
|
video.setTitle(video.getTitle().replaceAll(":|'|\"|[.]|,", ""));
|
||||||
video.setAuthor(video.getAuthor().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")) {
|
if (type.equals("audio")) {
|
||||||
request.addOption("-x");
|
request.addOption("-x");
|
||||||
String format = video.getAudioFormat();
|
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","title",".*.",video.getTitle()));
|
||||||
request.addCommands(Arrays.asList("--replace-in-metadata","uploader",".*.",video.getAuthor()));
|
request.addCommands(Arrays.asList("--replace-in-metadata","uploader",".*.",video.getAuthor()));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,15 +13,19 @@ import androidx.activity.result.ActivityResultLauncher;
|
||||||
import androidx.activity.result.contract.ActivityResultContracts;
|
import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
import androidx.preference.EditTextPreference;
|
import androidx.preference.EditTextPreference;
|
||||||
import androidx.preference.ListPreference;
|
import androidx.preference.ListPreference;
|
||||||
|
import androidx.preference.MultiSelectListPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.SeekBarPreference;
|
import androidx.preference.SeekBarPreference;
|
||||||
import androidx.preference.SwitchPreferenceCompat;
|
import androidx.preference.SwitchPreferenceCompat;
|
||||||
|
|
||||||
import com.deniscerri.ytdlnis.BuildConfig;
|
import com.deniscerri.ytdlnis.BuildConfig;
|
||||||
import com.deniscerri.ytdlnis.R;
|
import com.deniscerri.ytdlnis.R;
|
||||||
import com.deniscerri.ytdlnis.util.UpdateUtil;
|
import com.deniscerri.ytdlnis.util.UpdateUtil;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class SettingsFragment extends PreferenceFragmentCompat {
|
public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
|
|
||||||
|
|
@ -36,7 +40,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
EditTextPreference limitRate;
|
EditTextPreference limitRate;
|
||||||
SwitchPreferenceCompat aria2;
|
SwitchPreferenceCompat aria2;
|
||||||
|
|
||||||
SwitchPreferenceCompat removeNonMusic;
|
MultiSelectListPreference sponsorblockFilters;
|
||||||
SwitchPreferenceCompat embedSubtitles;
|
SwitchPreferenceCompat embedSubtitles;
|
||||||
SwitchPreferenceCompat embedThumbnail;
|
SwitchPreferenceCompat embedThumbnail;
|
||||||
SwitchPreferenceCompat addChapters;
|
SwitchPreferenceCompat addChapters;
|
||||||
|
|
@ -82,7 +86,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
limitRate = findPreference("limit_rate");
|
limitRate = findPreference("limit_rate");
|
||||||
aria2 = findPreference("aria2");
|
aria2 = findPreference("aria2");
|
||||||
|
|
||||||
removeNonMusic = findPreference("remove_non_music");
|
sponsorblockFilters = findPreference("sponsorblock_filter");
|
||||||
embedSubtitles = findPreference("embed_subtitles");
|
embedSubtitles = findPreference("embed_subtitles");
|
||||||
embedThumbnail = findPreference("embed_thumbnail");
|
embedThumbnail = findPreference("embed_thumbnail");
|
||||||
addChapters = findPreference("add_chapters");
|
addChapters = findPreference("add_chapters");
|
||||||
|
|
@ -113,7 +117,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
editor.putInt("concurrent_fragments", concurrentFragments.getValue());
|
editor.putInt("concurrent_fragments", concurrentFragments.getValue());
|
||||||
editor.putString("limit_rate", limitRate.getText());
|
editor.putString("limit_rate", limitRate.getText());
|
||||||
editor.putBoolean("aria2", aria2.isChecked());
|
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_subtitles", embedSubtitles.isChecked());
|
||||||
editor.putBoolean("embed_thumbnail", embedThumbnail.isChecked());
|
editor.putBoolean("embed_thumbnail", embedThumbnail.isChecked());
|
||||||
editor.putBoolean("add_chapters", addChapters.isChecked());
|
editor.putBoolean("add_chapters", addChapters.isChecked());
|
||||||
|
|
@ -192,9 +196,9 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
removeNonMusic.setOnPreferenceChangeListener((preference, newValue) -> {
|
sponsorblockFilters.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
boolean remove = (Boolean) newValue;
|
sponsorblockFilters.setValues((Set<String>) newValue);
|
||||||
editor.putBoolean("remove_non_music", remove);
|
editor.putString("sponsorblock_filter", String.join(",", (Set<String>)newValue));
|
||||||
editor.apply();
|
editor.apply();
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
5
app/src/main/res/drawable/ic_money.xml
Normal file
5
app/src/main/res/drawable/ic_money.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="?android:textColorPrimary" android:pathData="M11.8,10.9c-2.27,-0.59 -3,-1.2 -3,-2.15 0,-1.09 1.01,-1.85 2.7,-1.85 1.78,0 2.44,0.85 2.5,2.1h2.21c-0.07,-1.72 -1.12,-3.3 -3.21,-3.81V3h-3v2.16c-1.94,0.42 -3.5,1.68 -3.5,3.61 0,2.31 1.91,3.46 4.7,4.13 2.5,0.6 3,1.48 3,2.41 0,0.69 -0.49,1.79 -2.7,1.79 -2.06,0 -2.87,-0.92 -2.98,-2.1h-2.2c0.12,2.19 1.76,3.42 3.68,3.83V21h3v-2.15c1.95,-0.37 3.5,-1.5 3.5,-3.55 0,-2.84 -2.43,-3.81 -4.7,-4.4z"/>
|
||||||
|
</vector>
|
||||||
|
|
@ -28,4 +28,29 @@
|
||||||
<item>Worst Quality</item>
|
<item>Worst Quality</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="sponsorblock_settings_entries">
|
||||||
|
<item>@string/sponsorblock_nonmusic</item>
|
||||||
|
<item>@string/sponsorblock_sponsors</item>
|
||||||
|
<item>@string/sponsorblock_intro</item>
|
||||||
|
<item>@string/sponsorblock_outro</item>
|
||||||
|
<item>@string/sponsorblock_promos</item>
|
||||||
|
<item>@string/sponsorblock_previews</item>
|
||||||
|
<item>@string/sponsorblock_fillers</item>
|
||||||
|
<item>@string/sponsorblock_reminders</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="sponsorblock_settings_values">
|
||||||
|
<item>music_offtopic</item>
|
||||||
|
<item>sponsor</item>
|
||||||
|
<item>intro</item>
|
||||||
|
<item>outro</item>
|
||||||
|
<item>selfpromo</item>
|
||||||
|
<item>preview</item>
|
||||||
|
<item>filler</item>
|
||||||
|
<item>interaction</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="sponsorblock_settings_default">
|
||||||
|
<item>music_offtopic</item>
|
||||||
|
</string-array>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -139,4 +139,13 @@
|
||||||
<string name="request_permission_desc">This app needs File Permissions to save downloads on the device</string>
|
<string name="request_permission_desc">This app needs File Permissions to save downloads on the device</string>
|
||||||
<string name="exit_app">Exit App</string>
|
<string name="exit_app">Exit App</string>
|
||||||
<string name="warning">Warning</string>
|
<string name="warning">Warning</string>
|
||||||
|
<string name="sponsorblock_nonmusic">Non-Music and OffTopic portions</string>
|
||||||
|
<string name="sponsorblock_sponsors">Sponsors</string>
|
||||||
|
<string name="sponsorblock_intro">Intro</string>
|
||||||
|
<string name="sponsorblock_outro">Outro</string>
|
||||||
|
<string name="sponsorblock_promos">Self Promos</string>
|
||||||
|
<string name="sponsorblock_previews">Previews</string>
|
||||||
|
<string name="sponsorblock_fillers">Fillers</string>
|
||||||
|
<string name="sponsorblock_reminders">Subscription Reminders</string>
|
||||||
|
<string name="select_sponsorblock_filtering">Select SponsorBlock Filtering</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -74,12 +74,15 @@
|
||||||
|
|
||||||
|
|
||||||
<PreferenceCategory android:title="@string/processing">
|
<PreferenceCategory android:title="@string/processing">
|
||||||
<SwitchPreferenceCompat
|
<MultiSelectListPreference
|
||||||
app:defaultValue="true"
|
app:defaultValue="@array/sponsorblock_settings_default"
|
||||||
app:icon="@drawable/ic_music"
|
app:icon="@drawable/ic_money"
|
||||||
app:key="remove_non_music"
|
app:dialogTitle="@string/select_sponsorblock_filtering"
|
||||||
app:summary="@string/remove_non_music_summary"
|
app:entries="@array/sponsorblock_settings_entries"
|
||||||
app:title="@string/remove_non_music" />
|
app:entryValues="@array/sponsorblock_settings_values"
|
||||||
|
app:key="sponsorblock_filter"
|
||||||
|
app:summary="@string/select_sponsorblock_filtering"
|
||||||
|
app:title="SponsorBlock" />
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreferenceCompat
|
||||||
app:defaultValue="true"
|
app:defaultValue="true"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ buildscript {
|
||||||
|
|
||||||
def versionMajor = 1
|
def versionMajor = 1
|
||||||
def versionMinor = 4
|
def versionMinor = 4
|
||||||
def versionPatch = 5
|
def versionPatch = 6
|
||||||
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
|
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue