diff --git a/src/parsing/embed.go b/src/parsing/embed.go index 0073686..66d633d 100644 --- a/src/parsing/embed.go +++ b/src/parsing/embed.go @@ -96,57 +96,6 @@ func (s embedParser) previewOrLegitEmbed(name string, legitHtml string) string { return legitHtml } -func extract(re *regexp.Regexp, src []byte, subexpName string) []byte { - m := re.FindSubmatch(src) - if m == nil { - return nil - } - return m[re.SubexpIndex(subexpName)] -} - -func extractMap(re *regexp.Regexp, src []byte) map[string][]byte { - m := re.FindSubmatch(src) - if m == nil { - return nil - } - res := make(map[string][]byte) - for _, name := range re.SubexpNames() { - if name != "" { - i := re.SubexpIndex(name) - res[name] = m[i] - } - } - res["all"] = m[0] - return res -} - -func extractAll(re *regexp.Regexp, src []byte, subexpName string) [][]byte { - m := re.FindAllSubmatch(src, -1) - if m == nil { - return nil - } - return m[re.SubexpIndex(subexpName)] -} - -func extractAllMap(re *regexp.Regexp, src []byte) map[string][][]byte { - m := re.FindAllSubmatch(src, -1) - if m == nil { - return nil - } - res := make(map[string][][]byte) - for i, name := range re.SubexpNames() { - if name != "" { - var vals [][]byte - for _, specificMatch := range m { - vals = append(vals, specificMatch[i]) - } - res[name] = vals - } - } - res["all"] = m[0] - return res -} - func makeYoutubeEmbed(vid string, preview bool) string { if preview { return ` diff --git a/src/parsing/util.go b/src/parsing/util.go new file mode 100644 index 0000000..b1ec985 --- /dev/null +++ b/src/parsing/util.go @@ -0,0 +1,54 @@ +package parsing + +import "regexp" + +func extract(re *regexp.Regexp, src []byte, subexpName string) []byte { + m := re.FindSubmatch(src) + if m == nil { + return nil + } + return m[re.SubexpIndex(subexpName)] +} + +func extractMap(re *regexp.Regexp, src []byte) map[string][]byte { + m := re.FindSubmatch(src) + if m == nil { + return nil + } + res := make(map[string][]byte) + for _, name := range re.SubexpNames() { + if name != "" { + i := re.SubexpIndex(name) + res[name] = m[i] + } + } + res["all"] = m[0] + return res +} + +func extractAll(re *regexp.Regexp, src []byte, subexpName string) [][]byte { + m := re.FindAllSubmatch(src, -1) + if m == nil { + return nil + } + return m[re.SubexpIndex(subexpName)] +} + +func extractAllMap(re *regexp.Regexp, src []byte) map[string][][]byte { + m := re.FindAllSubmatch(src, -1) + if m == nil { + return nil + } + res := make(map[string][][]byte) + for i, name := range re.SubexpNames() { + if name != "" { + var vals [][]byte + for _, specificMatch := range m { + vals = append(vals, specificMatch[i]) + } + res[name] = vals + } + } + res["all"] = m[0] + return res +}