diff --git a/utils/match.go b/utils/match.go deleted file mode 100644 index 4a58859..0000000 --- a/utils/match.go +++ /dev/null @@ -1,44 +0,0 @@ -package utils - -import "regexp" - -// MatchVideo tries to extract the crunchyroll series / movie name out of the given url -func MatchVideo(url string) (seriesName string, ok bool) { - pattern := regexp.MustCompile(`(?m)^https?://(www\.)?crunchyroll\.com(/\w{2}(-\w{2})?)?/(?P[^/]+)/?$`) - if urlMatch := pattern.FindAllStringSubmatch(url, -1); len(urlMatch) != 0 { - groups := regexGroups(urlMatch, pattern.SubexpNames()...) - seriesName = groups["series"] - - if seriesName != "" { - ok = true - } - } - return -} - -// MatchEpisode tries to extract the crunchyroll series name and title out of the given url -func MatchEpisode(url string) (seriesName, title string, ok bool) { - pattern := regexp.MustCompile(`(?m)^https?://(www\.)?crunchyroll\.com(/\w{2}(-\w{2})?)?/(?P[^/]+)/episode-\d+-(?P\D+).*`) - if urlMatch := pattern.FindAllStringSubmatch(url, -1); len(urlMatch) != 0 { - groups := regexGroups(urlMatch, pattern.SubexpNames()...) - seriesName = groups["series"] - title = groups["title"] - - if seriesName != "" && title != "" { - ok = true - } - } - return -} - -func regexGroups(parsed [][]string, subexpNames ...string) map[string]string { - groups := map[string]string{} - for _, match := range parsed { - for i, content := range match { - if subexpName := subexpNames[i]; subexpName != "" { - groups[subexpName] = content - } - } - } - return groups -}