Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file removed .docker/.gitkeep
Empty file.
4 changes: 3 additions & 1 deletion pkg/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,10 @@ func (api Api) Get(idx *Index, format Format) http.HandlerFunc {
// refreshes the index by removing all entries, and fetching the feed.
func (api Api) Refresh(idx *Index) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
tempUrls := make([]Url, len(idx.Urls))
copy(tempUrls, idx.Urls)
idx.Clear()
for _, url := range idx.Urls {
for _, url := range tempUrls {
log.Printf("refreshing: %s", url.Url)
err := idx.Add(url.Url, url.Category)
if err != nil {
Expand Down
9 changes: 3 additions & 6 deletions pkg/index.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,7 @@ func (idx *Index) Add(url string, category string) error {
item.parentFeed = &feed
idx.Rank = insertSorted(idx.Rank, &item)
}
idx.Urls = append(idx.Urls, struct {
Url string
Category string
Size int
}{url, category, len(feed.Channel.Items)})
idx.Urls = append(idx.Urls, Url{url, category, len(feed.Channel.Items)})
log.Printf("added to feed: '%s' %v", url, category)
}
return err
Expand Down Expand Up @@ -88,9 +84,10 @@ func (idx *Index) Serve(port string) {
log.Fatal(http.ListenAndServe(port, nil))
}

// removes all entries from rank.
// removes all entries from rank, return copy of urls for re-create.
func (idx *Index) Clear() {
idx.Rank = nil
idx.Urls = nil
}

// initiate rss feed index class (enforce singleton?)
Expand Down
12 changes: 7 additions & 5 deletions pkg/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,15 @@ type Feed struct {
Url string
}

type Url struct {
Url string
Category string
Size int
}

type Index struct {
Rank []*Item
Urls []struct {
Url string
Category string
Size int
}
Urls []Url
}

type Query struct {
Expand Down
Loading