aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/utility/URLChecker.java
blob: ffea53b733d34564e1667e18632ef27e8eab9e4c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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/","");

    }
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage