mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
fix(sanitize): improve handling for newline tabs etc (#1733)
* fix(sanitize): filter properly \t,,, / etc * jesus christ. * bah. probably helps if a human reads the tests. * k done. * should be safe now? * edna? * real life man
This commit is contained in:
parent
a4452e4fdc
commit
e9cd6b0049
4 changed files with 172 additions and 16 deletions
|
@ -1,6 +1,8 @@
|
|||
package sanitize
|
||||
|
||||
import "strings"
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
func String(str string) string {
|
||||
str = strings.TrimSpace(str)
|
||||
|
@ -8,12 +10,48 @@ func String(str string) string {
|
|||
}
|
||||
|
||||
func FilterString(str string) string {
|
||||
str = strings.TrimSpace(str)
|
||||
str = strings.Trim(str, ",")
|
||||
|
||||
// replace newline with comma
|
||||
str = strings.ReplaceAll(str, "\r", ",")
|
||||
str = strings.ReplaceAll(str, "\n", ",")
|
||||
str = strings.ReplaceAll(str, ",,", ",")
|
||||
str = strings.ReplaceAll(str, "\v", ",")
|
||||
str = strings.ReplaceAll(str, "\t", " ")
|
||||
str = strings.ReplaceAll(str, "\f", "")
|
||||
|
||||
str = repeatedReplaceAll(str, " ", " ")
|
||||
str = repeatedReplaceAll(str, ", ", ",")
|
||||
str = repeatedReplaceAll(str, " ,", ",")
|
||||
str = repeatedReplaceAll(str, ",,", ",")
|
||||
|
||||
str = strings.Trim(str, ", ")
|
||||
return str
|
||||
}
|
||||
|
||||
func repeatedReplaceAll(src, old, new string) string {
|
||||
for i := 0; i != len(src); {
|
||||
i = len(src)
|
||||
src = strings.ReplaceAll(src, old, new)
|
||||
}
|
||||
|
||||
return src
|
||||
}
|
||||
|
||||
/*
|
||||
var interestingChars = regexp.MustCompile(`[^,\r\n\t\f\v]+`)
|
||||
|
||||
func FilterString(str string) string {
|
||||
str = strings.Join(interestingChars.FindAllString(str, -1), ",")
|
||||
for i := 0; i != len(str); {
|
||||
i = len(str)
|
||||
str = strings.ReplaceAll(str, " ", " ")
|
||||
}
|
||||
|
||||
str = strings.ReplaceAll(str, " ,", ",")
|
||||
str = strings.ReplaceAll(str, ", ", ",")
|
||||
for i := 0; i != len(str); {
|
||||
i = len(str)
|
||||
str = strings.ReplaceAll(str, ",,", ",")
|
||||
}
|
||||
str = strings.Trim(str, ", ")
|
||||
return str
|
||||
}
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue