diff --git a/app/src/fullLinks/AndroidManifest.xml b/app/src/fullLinks/AndroidManifest.xml index ef39f10..1efc731 100644 --- a/app/src/fullLinks/AndroidManifest.xml +++ b/app/src/fullLinks/AndroidManifest.xml @@ -118,6 +118,12 @@ + + + + + + @@ -175,31 +181,16 @@ + + + + + - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cb4c314..d7be1b6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -88,32 +88,16 @@ + + + + + - - - - - - - - - - - - - - - - - - - - - @@ -165,6 +149,11 @@ + + + + + diff --git a/app/src/main/java/app/fedilab/nitterizeme/helpers/Utils.java b/app/src/main/java/app/fedilab/nitterizeme/helpers/Utils.java index 624ba5d..8df86bf 100644 --- a/app/src/main/java/app/fedilab/nitterizeme/helpers/Utils.java +++ b/app/src/main/java/app/fedilab/nitterizeme/helpers/Utils.java @@ -108,6 +108,7 @@ public class Utils { 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/([\\w-/@]+)"); + public static final Pattern scriberipSubdomainPattern = Pattern.compile("([\\w_-]+)\\.medium.com/([\\w-/@]+)"); public static final Pattern bibliogramAccountPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(((?!/p/).)+)"); public static final Pattern maps = Pattern.compile("/maps/place/([^@]+@)?([\\d.,z]+).*"); @@ -310,7 +311,7 @@ public class Utils { } else { return url; } - } else if (Arrays.asList(medium_domains).contains(host)) { + } else if (host != null && host.endsWith(medium_domains[0])) { boolean scriberip_enabled = sharedpreferences.getBoolean(MainActivity.SET_SCRIBERIP_ENABLED, true); if (scriberip_enabled) { String scriberipHost = sharedpreferences.getString(MainActivity.SET_SCRIBERIP_HOST, MainActivity.DEFAULT_SCRIBERIP_HOST); @@ -319,7 +320,15 @@ public class Utils { if (scriberipHost.startsWith("http")) { scheme = ""; } - Matcher matcher = scriberipPattern.matcher(url); + Matcher matcher = scriberipSubdomainPattern.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 + "medium.com" + "/@" + subdomain + "/" + path; + } + } + matcher = scriberipPattern.matcher(url); while (matcher.find()) { final String scriberip_directory = matcher.group(2); newUrl = scheme + scriberipHost + "/" + scriberip_directory; @@ -1218,7 +1227,7 @@ public class Utils { return Arrays.asList(twitter_domains).contains(host) || Arrays.asList(nitter_instances).contains(host) || Arrays.asList(reddit_domains).contains(host) || Arrays.asList(instagram_domains).contains(host) || Arrays.asList(bibliogram_instances).contains(host) || 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(medium_domains).contains(host); + || Arrays.asList(youtube_domains).contains(host) || Arrays.asList(invidious_instances).contains(host) || (host != null && host.endsWith(medium_domains[0])); } public static boolean routerEnabledForHost(Context context, String url) { @@ -1242,7 +1251,7 @@ public class Utils { return sharedpreferences.getBoolean(SET_INVIDIOUS_ENABLED, true); } else if (Arrays.asList(reddit_domains).contains(host)) { return sharedpreferences.getBoolean(SET_TEDDIT_ENABLED, true); - } else if (Arrays.asList(medium_domains).contains(host)) { + } else if (host != null && host.endsWith(medium_domains[0])) { return sharedpreferences.getBoolean(SET_SCRIBERIP_ENABLED, true); } else return url.contains("/amp/s/") || (host != null && host.contains(outlook_safe_domain));