optimize HasFeed to speed up submission

j3s.sh 105d8094 27d786d8

verified
Changed files
+29 -5
reaper
reaper/go_test.db

This is a binary file and will not be displayed.

+3 -5
reaper/reaper.go
··· 93 93 } 94 94 } 95 95 96 - // Have checks whether a given url is represented 96 + // HasFeed checks whether a given url is represented 97 97 // in the reaper cache. 98 98 func (r *Reaper) HasFeed(url string) bool { 99 - for _, f := range r.feeds { 100 - if f.UpdateURL == url { 101 - return true 102 - } 99 + if _, ok := r.feeds[url]; ok { 100 + return true 103 101 } 104 102 return false 105 103 }
+26
reaper/reaper_test.go
··· 1 + package reaper 2 + 3 + import ( 4 + "testing" 5 + 6 + "git.j3s.sh/vore/rss" 7 + "git.j3s.sh/vore/sqlite" 8 + ) 9 + 10 + func TestHasFeed(t *testing.T) { 11 + db := sqlite.New("go_test.db") 12 + r := New(db) 13 + f1 := rss.Feed{UpdateURL: "something"} 14 + f2 := rss.Feed{UpdateURL: "strange"} 15 + r.addFeed(&f1) 16 + r.addFeed(&f2) 17 + if r.HasFeed("banana") == true { 18 + t.Fatal("reaper should not have a banana") 19 + } 20 + if r.HasFeed("something") == false { 21 + t.Fatal("reaper should have something") 22 + } 23 + if r.HasFeed("strange") == false { 24 + t.Fatal("reaper should have strange") 25 + } 26 + }