28 lines
676 B
Go
28 lines
676 B
Go
package common
|
|
|
|
import (
|
|
"regexp"
|
|
)
|
|
|
|
var (
|
|
VIDEOMATCH = "(?i)(\\.)(YUV|WMV|WEBM|VOB|VIV|SVI|ROQ|RMVB|RM|OGV|OGG|NSV|MXF|MTS|M2TS|TS|MPG|MPEG|M2V|MP2|MPE|MPV|MP4|M4P|M4V|MOV|QT|MNG|MKV|FLV|DRC|AVI|ASF|AMV)$"
|
|
SUBMATCH = "(?i)(\\.)(SRT|SUB|SBV|ASS|VTT|TTML|DFXP|STL|SCC|CAP|SMI|TTXT|TDS|USF|JSS|SSA|PSB|RT|LRC|SSB)$"
|
|
)
|
|
|
|
func RegexMatch(regex string, value string) bool {
|
|
re := regexp.MustCompile(regex)
|
|
return re.MatchString(value)
|
|
}
|
|
|
|
func RemoveExtension(value string) string {
|
|
re := regexp.MustCompile(VIDEOMATCH)
|
|
|
|
// Find the last index of the matched extension
|
|
loc := re.FindStringIndex(value)
|
|
if loc != nil {
|
|
return value[:loc[0]]
|
|
} else {
|
|
return value
|
|
}
|
|
}
|