dequoter/textfilters.go

47 lines
1.4 KiB
Go
Raw Normal View History

2025-09-06 01:26:54 +00:00
package main
import (
"bufio"
2025-09-06 01:26:54 +00:00
"bytes"
"encoding/json"
"strconv"
"strings"
2025-09-06 01:26:54 +00:00
)
type TextFilter func(input string) (output string, err error)
var TextFilters = map[string]TextFilter{
"upper-case": func(input string) (output string, err error) {
return strings.ToUpper(input), nil
},
"lower-case": func(input string) (output string, err error) {
return strings.ToLower(input), nil
},
2025-09-06 01:26:54 +00:00
"unquote": func(input string) (output string, err error) {
return strconv.Unquote(input)
},
"format-json": func(input string) (output string, err error) {
var dst bytes.Buffer
scnr := bufio.NewScanner(strings.NewReader(input))
for scnr.Scan() {
line := scnr.Text()
if err := json.Indent(&dst, []byte(line), "", " "); err == nil {
dst.WriteString("\n")
} else {
return "", err
}
2025-09-06 01:26:54 +00:00
}
2025-09-06 01:26:54 +00:00
return dst.String(), nil
},
"lorem-ipsum": func(input string) (output string, err error) {
return "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor " +
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud " +
"exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure " +
"dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. " +
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt " +
"mollit anim id est laborum.", nil
},
2025-09-06 01:26:54 +00:00
}