summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go17
1 files changed, 12 insertions, 5 deletions
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)