From aaafafbdfe07754b771b824c71034f65c77cc76e Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 25 Jul 2018 09:18:08 +0200 Subject: add title caching --- main.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index d9394c6..00e64dd 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "time" irc "github.com/fluffle/goirc/client" + lru "github.com/hashicorp/golang-lru" ) var ( @@ -44,8 +45,9 @@ func (n *Notify) Write(p []byte) (int, error) { func privmsg(room string) irc.HandlerFunc { var ( - last = make(map[string]string) - lastRe = make(map[string]time.Time) + last = make(map[string]string) + lastRe = make(map[string]time.Time) + titles, _ = lru.New(100) ) return func(conn *irc.Conn, line *irc.Line) { defer func() { @@ -77,9 +79,14 @@ func privmsg(room string) irc.HandlerFunc { fallthrough default: for _, v := range getLinks(t) { - title, err := getTitle(v) - if err != nil { - log.Println(v, err) + title, ok := titles.Get(v) + if !ok { + var err error + title, err = getTitle(v) + if err != nil { + log.Println(v, err) + } + titles.Add(v, title) } if title != "" { fmt.Fprintf(NewNotify(conn, line.Target()), "Title: %v", title) -- cgit v1.2.3