diff --git a/cmd/goread/main.go b/cmd/goread/main.go index 9f3ce16..7021bd5 100644 --- a/cmd/goread/main.go +++ b/cmd/goread/main.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/TypicalAM/goread/internal/backend" + "github.com/TypicalAM/goread/internal/backend/web" "github.com/TypicalAM/goread/internal/model" "github.com/TypicalAM/goread/internal/style" tea "github.com/charmbracelet/bubbletea" @@ -18,7 +18,7 @@ func main() { } // Create the main model - model := model.New(backend.NewWebBackend()) + model := model.New(web.New()) // Start the program p := tea.NewProgram(model) diff --git a/internal/backend/fake.go b/internal/backend/fake/fake.go similarity index 94% rename from internal/backend/fake.go rename to internal/backend/fake/fake.go index b4e61a7..583b23f 100644 --- a/internal/backend/fake.go +++ b/internal/backend/fake/fake.go @@ -1,4 +1,4 @@ -package backend +package fake import ( "os" @@ -6,6 +6,7 @@ import ( "time" "github.com/PuerkitoBio/goquery" + "github.com/TypicalAM/goread/internal/backend" simpleList "github.com/TypicalAM/goread/internal/list" "github.com/TypicalAM/goread/internal/style" "github.com/charmbracelet/bubbles/list" @@ -25,7 +26,7 @@ func (b FakeBackend) Name() string { // Return some fake categories func (b FakeBackend) FetchCategories() tea.Cmd { return func() tea.Msg { - return FetchSuccessMessage{ + return backend.FetchSuccessMessage{ Items: []list.Item{ simpleList.NewListItem("All", "All the categories", ""), simpleList.NewListItem("Books", "Books", "books"), @@ -42,7 +43,7 @@ func (b FakeBackend) FetchCategories() tea.Cmd { func (b FakeBackend) FetchFeeds(catName string) tea.Cmd { return func() tea.Msg { time.Sleep(1 * time.Second) - return FetchSuccessMessage{ + return backend.FetchSuccessMessage{ Items: []list.Item{ simpleList.NewListItem("feed 1", "cat1", "more content"), simpleList.NewListItem("feed 2", "cat2", "more content"), @@ -58,7 +59,7 @@ func (b FakeBackend) FetchArticles(feedName string) tea.Cmd { time.Sleep(1 * time.Second) file, err := os.Open("rss.rss") if err != nil { - return FetchErrorMessage{ + return backend.FetchErrorMessage{ Description: "Could not open file", Err: err, } @@ -68,7 +69,7 @@ func (b FakeBackend) FetchArticles(feedName string) tea.Cmd { fp := gofeed.NewParser() feed, err := fp.Parse(file) if err != nil { - return FetchErrorMessage{ + return backend.FetchErrorMessage{ Description: "Could not parse file", Err: err, } @@ -85,7 +86,7 @@ func (b FakeBackend) FetchArticles(feedName string) tea.Cmd { } // Return the message - return FetchSuccessMessage{Items: result} + return backend.FetchSuccessMessage{Items: result} } } diff --git a/internal/backend/web.go b/internal/backend/web/web.go similarity index 84% rename from internal/backend/web.go rename to internal/backend/web/web.go index 71cee24..c33d3d9 100644 --- a/internal/backend/web.go +++ b/internal/backend/web/web.go @@ -1,6 +1,8 @@ -package backend +package web import ( + "github.com/TypicalAM/goread/internal/backend" + "github.com/TypicalAM/goread/internal/backend/fake" simpleList "github.com/TypicalAM/goread/internal/list" "github.com/TypicalAM/goread/internal/rss" "github.com/charmbracelet/bubbles/list" @@ -14,7 +16,7 @@ type WebBackend struct { } // New returns a new WebBackend -func NewWebBackend() WebBackend { +func New() WebBackend { return WebBackend{rss: rss.New()} } @@ -37,7 +39,7 @@ func (b WebBackend) FetchCategories() tea.Cmd { } // Return the message - return FetchSuccessMessage{Items: items} + return backend.FetchSuccessMessage{Items: items} } } @@ -48,7 +50,7 @@ func (b WebBackend) FetchFeeds(catName string) tea.Cmd { // Create a list of feeds category, err := b.rss.GetCategory(catName) if err != nil { - return FetchErrorMessage{ + return backend.FetchErrorMessage{ Description: "Failed to get feeds", Err: err, } @@ -67,7 +69,7 @@ func (b WebBackend) FetchFeeds(catName string) tea.Cmd { } // Return the message - return FetchSuccessMessage{Items: items} + return backend.FetchSuccessMessage{Items: items} } } @@ -78,7 +80,7 @@ func (b WebBackend) FetchArticles(feedName string) tea.Cmd { // Create a list of articles url, err := b.rss.GetFeedUrl(feedName) if err != nil { - return FetchErrorMessage{ + return backend.FetchErrorMessage{ Description: "Failed to get articles", Err: err, } @@ -88,7 +90,7 @@ func (b WebBackend) FetchArticles(feedName string) tea.Cmd { fp := gofeed.NewParser() feed, err := fp.ParseURL(url) if err != nil { - return FetchErrorMessage{ + return backend.FetchErrorMessage{ Description: "Failed to parse the articles", Err: err, } @@ -97,7 +99,7 @@ func (b WebBackend) FetchArticles(feedName string) tea.Cmd { // Create the list of list items var result []list.Item for i := range feed.Items { - content := CreateFakeContent(i, feed) + content := fake.CreateFakeContent(i, feed) result = append(result, simpleList.NewListItem( content.Title, content.Description, @@ -106,6 +108,6 @@ func (b WebBackend) FetchArticles(feedName string) tea.Cmd { } // Return the message - return FetchSuccessMessage{Items: result} + return backend.FetchSuccessMessage{Items: result} } }