Optimise regexp usage (#1502)
* Optimise regexp usage * Revert regexp removal * Atleast use the semioptimised version
This commit is contained in:
parent
cc2a9b8d8e
commit
f0a11cac5d
@ -124,6 +124,11 @@ func RenderMarkdown(raw string) string {
|
|||||||
return buf.String()
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
_sanitizeReSrcMatch = regexp.MustCompile(`(?i)^/img/emoji`)
|
||||||
|
_sanitizeReAltTitleMatch = regexp.MustCompile(`:\S+:`)
|
||||||
|
)
|
||||||
|
|
||||||
func sanitize(raw string) string {
|
func sanitize(raw string) string {
|
||||||
p := bluemonday.StrictPolicy()
|
p := bluemonday.StrictPolicy()
|
||||||
|
|
||||||
@ -146,8 +151,8 @@ func sanitize(raw string) string {
|
|||||||
p.AllowElementsContent("p")
|
p.AllowElementsContent("p")
|
||||||
|
|
||||||
// Allow img tags from the the local emoji directory only
|
// Allow img tags from the the local emoji directory only
|
||||||
p.AllowAttrs("src").Matching(regexp.MustCompile(`(?i)^/img/emoji`)).OnElements("img")
|
p.AllowAttrs("src").Matching(_sanitizeReSrcMatch).OnElements("img")
|
||||||
p.AllowAttrs("alt", "title").Matching(regexp.MustCompile(`:\S+:`)).OnElements("img")
|
p.AllowAttrs("alt", "title").Matching(_sanitizeReAltTitleMatch).OnElements("img")
|
||||||
p.AllowAttrs("class").OnElements("img")
|
p.AllowAttrs("class").OnElements("img")
|
||||||
|
|
||||||
// Allow bold
|
// Allow bold
|
||||||
|
@ -14,13 +14,15 @@ import (
|
|||||||
|
|
||||||
const unknownString = "Unknown"
|
const unknownString = "Unknown"
|
||||||
|
|
||||||
|
var _getInboundDetailsFromMetadataRE = regexp.MustCompile(`\{(.*?)\}`)
|
||||||
|
|
||||||
func getInboundDetailsFromMetadata(metadata []interface{}) (models.RTMPStreamMetadata, error) {
|
func getInboundDetailsFromMetadata(metadata []interface{}) (models.RTMPStreamMetadata, error) {
|
||||||
metadataComponentsString := fmt.Sprintf("%+v", metadata)
|
metadataComponentsString := fmt.Sprintf("%+v", metadata)
|
||||||
if !strings.Contains(metadataComponentsString, "onMetaData") {
|
if !strings.Contains(metadataComponentsString, "onMetaData") {
|
||||||
return models.RTMPStreamMetadata{}, errors.New("Not a onMetaData message")
|
return models.RTMPStreamMetadata{}, errors.New("Not a onMetaData message")
|
||||||
}
|
}
|
||||||
re := regexp.MustCompile(`\{(.*?)\}`)
|
|
||||||
submatchall := re.FindAllString(metadataComponentsString, 1)
|
submatchall := _getInboundDetailsFromMetadataRE.FindAllString(metadataComponentsString, 1)
|
||||||
|
|
||||||
if len(submatchall) == 0 {
|
if len(submatchall) == 0 {
|
||||||
return models.RTMPStreamMetadata{}, errors.New("unable to parse inbound metadata")
|
return models.RTMPStreamMetadata{}, errors.New("unable to parse inbound metadata")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user