Comment #33 - Add support for Outlook URLs

This commit is contained in:
Thomas 2020-07-10 14:06:14 +02:00
parent 53ee824793
commit dc40a3c558
3 changed files with 19 additions and 0 deletions

View File

@ -98,6 +98,9 @@ public class CheckAppActivity extends AppCompatActivity {
"bibliogram.dsrev.ru",
"bibliogram.pussthecat.org"
};
public static String outlook_safe_domain = "safelinks.protection.outlook.com";
private RecyclerView list_apps;
private String[] domains;

View File

@ -26,6 +26,7 @@ import android.util.Patterns;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Arrays;
import java.util.Objects;
@ -39,6 +40,7 @@ import static app.fedilab.nitterizeme.activities.CheckAppActivity.bibliogram_ins
import static app.fedilab.nitterizeme.activities.CheckAppActivity.instagram_domains;
import static app.fedilab.nitterizeme.activities.CheckAppActivity.invidious_instances;
import static app.fedilab.nitterizeme.activities.CheckAppActivity.nitter_instances;
import static app.fedilab.nitterizeme.activities.CheckAppActivity.outlook_safe_domain;
import static app.fedilab.nitterizeme.activities.CheckAppActivity.shortener_domains;
import static app.fedilab.nitterizeme.activities.CheckAppActivity.twitter_domains;
import static app.fedilab.nitterizeme.activities.CheckAppActivity.youtube_domains;
@ -54,6 +56,7 @@ import static app.fedilab.nitterizeme.helpers.Utils.manageShortened;
import static app.fedilab.nitterizeme.helpers.Utils.manageShortenedShare;
import static app.fedilab.nitterizeme.helpers.Utils.maps;
import static app.fedilab.nitterizeme.helpers.Utils.nitterPattern;
import static app.fedilab.nitterizeme.helpers.Utils.outlookRedirect;
import static app.fedilab.nitterizeme.helpers.Utils.remove_tracking_param;
import static app.fedilab.nitterizeme.helpers.Utils.transformUrl;
import static app.fedilab.nitterizeme.helpers.Utils.youtubePattern;
@ -259,6 +262,17 @@ public class TransformActivity extends Activity {
}
forwardToBrowser(TransformActivity.this, intent);
} else if (host != null && host.contains(outlook_safe_domain)) {
Matcher matcher = outlookRedirect.matcher(url);
if (matcher.find()) {
url = matcher.group(3);
try {
url = URLDecoder.decode(url, "UTF-8");
} catch (UnsupportedEncodingException ignored) {
}
}
intent.setData(Uri.parse(url));
forwardToBrowser(TransformActivity.this, intent);
} else {
String newUrl = remove_tracking_param(url);
try {

View File

@ -89,12 +89,14 @@ public class Utils {
public static final Pattern youtubePattern = Pattern.compile("(www\\.|m\\.)?(youtube\\.com|youtu\\.be|youtube-nocookie\\.com)/(((?!([\"'<])).)*)");
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 bibliogramAccountPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(((?!/p/).)+)");
public static final Pattern maps = Pattern.compile("/maps/place/([^@]+@)?([\\d.,z]+).*");
public static final Pattern ampExtract = Pattern.compile("amp/s/(.*)");
public static final String RECEIVE_STREAMING_URL = "receive_streaming_url";
private static final Pattern extractPlace = Pattern.compile("/maps/place/(((?!/data).)*)");
private static final Pattern googleRedirect = Pattern.compile("https?://(www\\.)?google(\\.\\w{2,})?(\\.\\w{2,})/url\\?q=(.*)");
public static final Pattern outlookRedirect = Pattern.compile("(.*)safelinks\\.protection\\.outlook\\.com/?[?]?((?!url).)*url=([^&]+)");
private static final String[] G_TRACKING = {
"sourceid",
"aqs",