Support *.reddit.com (closes #86)

This commit is contained in:
NoPlagiarism 2022-09-30 12:53:59 +00:00 committed by Thomas
parent 7e73c9c5d0
commit b583cc86c9
3 changed files with 17 additions and 4 deletions

View File

@ -92,6 +92,7 @@
<data android:host="i.redd.it" />
<data android:host="old.reddit.com" />
<data android:host="preview.redd.it" />
<data android:host="*.reddit.com" />
<!-- TIKTOK URLs -->
<data android:host="tiktok.com" />
@ -198,6 +199,7 @@
<data android:host="i.redd.it" />
<data android:host="old.reddit.com" />
<data android:host="preview.redd.it" />
<data android:host="*.reddit.com" />
<!-- MEDIUM URLs -->
<data android:host="www.medium.com" />

View File

@ -93,6 +93,7 @@
<data android:host="i.redd.it" />
<data android:host="old.reddit.com" />
<data android:host="preview.redd.it" />
<data android:host="*.reddit.com" />
<!-- TIKTOK URLs -->
<data android:host="tiktok.com" />
@ -166,6 +167,7 @@
<data android:host="i.redd.it" />
<data android:host="old.reddit.com" />
<data android:host="preview.redd.it" />
<data android:host="*.reddit.com" />
<!-- TIKTOK URLs -->
<data android:host="tiktok.com" />

View File

@ -99,6 +99,7 @@ public class Utils {
public static final String LAST_USED_APP_PACKAGE = "last_used_app_package";
public static final Pattern youtubePattern = Pattern.compile("(www\\.|m\\.)?(youtube\\.com|youtu\\.be|youtube-nocookie\\.com)/(((?!([\"'<])).)*)");
public static final Pattern redditPattern = Pattern.compile("(www\\.|m\\.)?(reddit\\.com|preview\\.redd\\.it|i\\.redd\\.it)/(((?!([\"'<])).)*)");
public static final Pattern redditSubdomainPattern = Pattern.compile("([\\w_-]+)\\.reddit.com/?(?!r/)(((?!([\"'<])).)*)");
public static final Pattern nitterPattern = Pattern.compile("(mobile\\.|www\\.)?twitter.com([\\w-/]+)");
public static final Pattern bibliogramPostPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(/p/[\\w-/]+)");
public static final Pattern scriberipPattern = Pattern.compile("(www\\.)?medium.com/(((?!([\"'<])).)*)");
@ -433,7 +434,7 @@ public class Utils {
} else {
return url;
}
} else if (Arrays.asList(reddit_domains).contains(host)) { //Reddit URL
} else if (Arrays.asList(reddit_domains).contains(host) || (host != null && host.endsWith(reddit_domains[1]))) { //Reddit URL
boolean teddit_enabled = sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
if (teddit_enabled) {
String tedditHost = sharedpreferences.getString(SET_TEDDIT_HOST, MainActivity.DEFAULT_TEDDIT_HOST);
@ -442,7 +443,15 @@ public class Utils {
if (tedditHost.startsWith("http")) {
scheme = "";
}
Matcher matcher = redditPattern.matcher(url);
Matcher matcher = redditSubdomainPattern.matcher(url);
while (matcher.find()) {
final String subdomain = matcher.group(1);
final String path = matcher.group(2);
if (subdomain != null && subdomain.toLowerCase().compareTo("www") != 0) {
url = scheme + "reddit.com" + "/r/" + subdomain + "/" + path;
}
}
matcher = redditPattern.matcher(url);
while (matcher.find()) {
String redditPath = matcher.group(3);
if (Objects.requireNonNull(matcher.group(2)).compareTo("preview.redd.it") == 0 ||
@ -1220,7 +1229,7 @@ public class Utils {
|| url.contains("/maps/place") || url.contains("/amp/s/") || (host != null && host.contains(outlook_safe_domain))
|| Arrays.asList(youtube_domains).contains(host) || Arrays.asList(invidious_instances).contains(host)
|| Arrays.asList(tiktok_domains).contains(host) || (host != null && host.endsWith(medium_domains[0])
|| (host != null && host.endsWith(wikipedia_domains[0])));
|| (host != null && host.endsWith(wikipedia_domains[0])) || (host != null && host.endsWith(reddit_domains[1])));
}
public static boolean routerEnabledForHost(Context context, String url) {
@ -1242,7 +1251,7 @@ public class Utils {
return sharedpreferences.getBoolean(MainActivity.SET_OSM_ENABLED, true);
} else if (Arrays.asList(youtube_domains).contains(host) || Arrays.asList(invidious_instances).contains(host)) {
return sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true);
} else if (Arrays.asList(reddit_domains).contains(host)) {
} else if (Arrays.asList(reddit_domains).contains(host) || (host != null && host.endsWith(reddit_domains[1]))) {
return sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true);
} else if (Arrays.asList(tiktok_domains).contains(host)) {
return sharedpreferences.getBoolean(SET_PROXITOK_ENABLED, true);