Skip to content

Commit b744f89

Browse files
authored
Support empty categories for remote diff state (#6)
Closes #5. Categories in the remote diff state were being created from those in feeds, so empty categories were ignored.
1 parent a1ae5a1 commit b744f89

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

Diff for: api/state.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,18 @@ import (
77
)
88

99
// GenerateDiffState generates a diff.State struct from a list of feeds.
10-
func GenerateDiffState(feeds []*miniflux.Feed) (*diff.State, error) {
10+
func GenerateDiffState(
11+
feeds []*miniflux.Feed, categories []*miniflux.Category,
12+
) (*diff.State, error) {
1113
state := diff.State{
1214
FeedURLsByCategoryTitle: map[string][]string{},
1315
}
1416

17+
// Initialise empty slices for each category.
18+
for _, category := range categories {
19+
state.FeedURLsByCategoryTitle[category.Title] = []string{}
20+
}
21+
1522
// Populate state with values, and create category set.
1623
for _, feed := range feeds {
1724
if feed.Category == nil {

Diff for: cmd/dump.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ import (
1717
func dump(ctx context.Context, flags *config.DumpFlags, client *miniflux.Client) error {
1818
log.Info(ctx, "exporting data from miniflux")
1919

20-
feeds, _, err := api.FetchData(ctx, client)
20+
feeds, categories, err := api.FetchData(ctx, client)
2121
if err != nil {
2222
return errors.Wrap(err, "fetching data")
2323
}
2424

25-
remoteState, err := api.GenerateDiffState(feeds)
25+
remoteState, err := api.GenerateDiffState(feeds, categories)
2626
if err != nil {
2727
return errors.Wrap(err, "generating remote state")
2828
}

Diff for: cmd/sync.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func sync( //nolint:cyclop,funlen
4343
return errors.Wrap(err, "fetching data")
4444
}
4545

46-
remoteState, err := api.GenerateDiffState(feeds)
46+
remoteState, err := api.GenerateDiffState(feeds, categories)
4747
if err != nil {
4848
return errors.Wrap(err, "generating remote state")
4949
}

0 commit comments

Comments
 (0)