From 324dd411454696c73fbd7d1517b3616014c2cde2 Mon Sep 17 00:00:00 2001 From: Anthony Date: Mon, 2 Apr 2018 10:16:08 -0400 Subject: [PATCH] Added SoundCloud source --- src/main/java/netneutrality/music/SourceFinder.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/netneutrality/music/SourceFinder.java b/src/main/java/netneutrality/music/SourceFinder.java index 47a1ad7..2d6a41d 100644 --- a/src/main/java/netneutrality/music/SourceFinder.java +++ b/src/main/java/netneutrality/music/SourceFinder.java @@ -23,16 +23,21 @@ enum SourceEnum { public class SourceFinder { private static Pattern youtubePattern = Pattern.compile("^(?:https?://)?(?:(?:www\\.)?)?(?:youtube\\.com|youtu\\.be)/.*?(?:embed|e|v|watch.*?v=)?/?([-_a-z0-9]{10,})?(?:&?index=\\d+)?(?>(?:playlist\\?|&)?list=([^#\\\\&\\?]{12,}))?", Pattern.CASE_INSENSITIVE); private static Matcher youtubeMatcher; - private static Matcher soudcloudMatcher; + private static Pattern soundcloudPattern = Pattern.compile("^(?:https?://)?(?:www\\.)?(?:m\\.)?soundcloud\\.com/([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)(?:\\\\?.*|)$", Pattern.CASE_INSENSITIVE); + private static Matcher soundcloudMatcher; private static Matcher BandcampMatcher; private static Matcher vimeoMatcher; public static SourceEnum getSource(String url) { youtubeMatcher = youtubePattern.matcher(url); + soundcloudMatcher = soundcloudPattern.matcher(url); if (youtubeMatcher.find()) return SourceEnum.Youtube; + if (soundcloudMatcher.find()) + return SourceEnum.Soundcloud; + if (url.startsWith("ytsearch:")) return SourceEnum.YTSearch; @@ -47,6 +52,9 @@ public class SourceFinder { case Youtube: identifier = youtubeMatcher.group(1); break; + case Soundcloud: + identifier = url; + break; case YTSearch: identifier = url; break;