From a1e8ba6d27f5d9496c3d389861c963d0a5e51295 Mon Sep 17 00:00:00 2001 From: Donald Shan Date: Mon, 5 Dec 2022 15:04:55 -0800 Subject: Add files via upload --- src/main/java/utility/URLChecker.java | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/utility/URLChecker.java (limited to 'src/main/java/utility/URLChecker.java') diff --git a/src/main/java/utility/URLChecker.java b/src/main/java/utility/URLChecker.java new file mode 100644 index 0000000..ffea53b --- /dev/null +++ b/src/main/java/utility/URLChecker.java @@ -0,0 +1,31 @@ +package utility; + +public class URLChecker { + public boolean isURL(String term){ + return term.matches("^(http|https)://.*"); + } + public String getURLType(String url) { + if (url.matches("^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?$")) { + return "yt"; //Youtube + } else if (url.matches("^(https?:\\/\\/)?(www.)?(m\\.)?soundcloud\\.com\\/[\\w\\-\\.]+(\\/)+[\\w\\-\\.]+/?$")) { + return "snd"; + } else if (url.matches("^(?:https?:\\/\\/)?(?:www\\.|go\\.)?twitch\\.tv\\/([a-z0-9_]+)($|\\?)")) { + return "twitch"; + } else if (url.split("\\?si=")[0].matches("^(https?://)?(www.)?(open.)?spotify.com/(user/[a-zA-Z0-9]+|artist/[a-zA-Z0-9]+|album/[a-zA-Z0-9]+|track/[a-zA-Z0-9]+|playlist/[a-zA-Z0-9]+)$")) { + return url.split("\\?si=")[0].matches("^(https?://)?(www.)?(open.)?spotify.com/playlist/[a-zA-Z0-9]+$") ? "spotify-playlist" : "spotify"; + } + return "unknown"; + + } + + public String getSpotifyTrackID(String uri){ + String[] uriParts = uri.split("\\?si="); + return uriParts[0].replaceAll("https://open.spotify.com/track/",""); + + } + public String getSpotifyPlaylistID(String url){ + String[] uriParts = url.split("\\?si="); + return uriParts[0].replaceAll("https://open.spotify.com/playlist/",""); + + } +} -- cgit v1.2.3