summaryrefslogtreecommitdiff
path: root/deprecated-webircgateway/pkg/webircgateway/utils.go
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-11-05 15:34:49 +0800
committerMistivia <i@mistivia.com>2025-11-05 15:34:49 +0800
commit95caa5bdaff4e5b5a924a9141b51c756a57abc0f (patch)
treebb0ff8eddfe8a06558317464cea14405e76b7ebc /deprecated-webircgateway/pkg/webircgateway/utils.go
parent8532af453ccc9071ddc919b063788d6b496af991 (diff)
remove deprecated
Diffstat (limited to 'deprecated-webircgateway/pkg/webircgateway/utils.go')
-rw-r--r--deprecated-webircgateway/pkg/webircgateway/utils.go147
1 files changed, 0 insertions, 147 deletions
diff --git a/deprecated-webircgateway/pkg/webircgateway/utils.go b/deprecated-webircgateway/pkg/webircgateway/utils.go
deleted file mode 100644
index 1fc687a..0000000
--- a/deprecated-webircgateway/pkg/webircgateway/utils.go
+++ /dev/null
@@ -1,147 +0,0 @@
-package webircgateway
-
-import (
- "context"
- "fmt"
- "net"
- "strings"
- "unicode/utf8"
-
- "golang.org/x/net/html/charset"
- "golang.org/x/time/rate"
-)
-
-var privateIPBlocks []*net.IPNet
-
-func init() {
- for _, cidr := range []string{
- "127.0.0.0/8", // IPv4 loopback
- "10.0.0.0/8", // RFC1918
- "172.16.0.0/12", // RFC1918
- "192.168.0.0/16", // RFC1918
- "::1/128", // IPv6 loopback
- "fe80::/10", // IPv6 link-local
- } {
- _, block, _ := net.ParseCIDR(cidr)
- privateIPBlocks = append(privateIPBlocks, block)
- }
-}
-
-func isPrivateIP(ip net.IP) bool {
- for _, block := range privateIPBlocks {
- if block.Contains(ip) {
- return true
- }
- }
- return false
-}
-
-// Username / realname / webirc hostname can all have configurable replacements
-func makeClientReplacements(format string, client *Client) string {
- ret := format
- ret = strings.Replace(ret, "%a", client.RemoteAddr, -1)
- ret = strings.Replace(ret, "%i", Ipv4ToHex(client.RemoteAddr), -1)
- ret = strings.Replace(ret, "%h", client.RemoteHostname, -1)
- ret = strings.Replace(ret, "%n", client.IrcState.Nick, -1)
- return ret
-}
-
-func Ipv4ToHex(ip string) string {
- var ipParts [4]int
- fmt.Sscanf(ip, "%d.%d.%d.%d", &ipParts[0], &ipParts[1], &ipParts[2], &ipParts[3])
- ipHex := fmt.Sprintf("%02x%02x%02x%02x", ipParts[0], ipParts[1], ipParts[2], ipParts[3])
- return ipHex
-}
-
-func ensureUtf8(s string, fromEncoding string) string {
- if utf8.ValidString(s) {
- return s
- }
-
- encoding, encErr := charset.Lookup(fromEncoding)
- if encoding == nil {
- println("encErr:", encErr)
- return ""
- }
-
- d := encoding.NewDecoder()
- s2, _ := d.String(s)
- return s2
-}
-
-func utf8ToOther(s string, toEncoding string) string {
- if toEncoding == "UTF-8" && utf8.ValidString(s) {
- return s
- }
-
- encoding, _ := charset.Lookup(toEncoding)
- if encoding == nil {
- return ""
- }
-
- e := encoding.NewEncoder()
- s2, _ := e.String(s)
- return s2
-}
-
-func containsOneOf(s string, substrs []string) bool {
- for _, substr := range substrs {
- if strings.Contains(s, substr) {
- return true
- }
- }
-
- return false
-}
-
-func stringInSlice(s string, slice []string) bool {
- for _, v := range slice {
- if v == s {
- return true
- }
- }
- return false
-}
-
-func stringInSliceOrDefault(s, def string, validStrings []string) string {
- if stringInSlice(s, validStrings) {
- return s
- }
- return def
-}
-
-type ThrottledStringChannel struct {
- in chan string
- Input chan<- string
- out chan string
- Output <-chan string
- *rate.Limiter
-}
-
-func NewThrottledStringChannel(wrappedChan chan string, limiter *rate.Limiter) *ThrottledStringChannel {
- out := make(chan string, 50)
-
- c := &ThrottledStringChannel{
- in: wrappedChan,
- Input: wrappedChan,
- out: out,
- Output: out,
- Limiter: limiter,
- }
-
- go c.run()
-
- return c
-}
-
-func (c *ThrottledStringChannel) run() {
- for msg := range c.in {
- // start := time.Now()
- c.Wait(context.Background())
- c.out <- msg
- // elapsed := time.Since(start)
- // fmt.Printf("waited %v to send %v\n", elapsed, msg)
- }
-
- close(c.out)
-}