ref: 11884bffdbfcd656a8677854761dfa8428d61561
parent: 728022f0eb78060141d36f422a41d3588d1e55bf
author: penny <penny@limitedideas.org>
date: Fri Sep 26 12:45:35 EDT 2025
Use a getter interfaces for statuses
--- a/main.go
+++ b/main.go
@@ -128,7 +128,8 @@
case "bookmarks":
hc.pause(true)
hc.page = &Page{}- hc.page.loader = &StatusPages{hc: hc, getter: hc.client.GetBookmarks}+ getter := &BasicStatusGetter{getter: hc.client.GetBookmarks}+ hc.page.loader = &StatusPages{hc: hc, getter: getter}fmt.Print(hc.page.String())
return
case "notice":
--- a/pages.go
+++ b/pages.go
@@ -13,6 +13,24 @@
Load(int) *[]PageItem
}
+type StatusGetter interface {+ Get(int) ([]*mastodon.Status, error)
+}
+
+type BasicStatusGetter struct {+ getter func(ctx context.Context, pg *mastodon.Pagination) ([]*mastodon.Status, error)
+ page *mastodon.Pagination
+}
+
+func (getter *BasicStatusGetter) Get(limit int) ([]*mastodon.Status, error) {+ if getter.page == nil {+ getter.page = &mastodon.Pagination{}+ }
+ getter.page.Limit = int64(limit)
+ statuses, err := getter.getter(context.Background(), getter.page)
+ getter.page.MinID = ""
+ return statuses, err
+}
type Page struct {loader StatusLoader
//Array index for the item buffer
@@ -33,9 +51,8 @@
type StatusPages struct {hc *Hellclient
- page *mastodon.Pagination
prefix string
- getter func(ctx context.Context, pg *mastodon.Pagination) ([]*mastodon.Status, error)
+ getter StatusGetter
}
type PageItem struct {@@ -50,23 +67,16 @@
}
func (statusData *StatusPages) Load(limit int) *[]PageItem {- if statusData.page == nil {- statusData.page = &mastodon.Pagination{}- }
- statusData.page.Limit = int64(limit)
- var statuses []*mastodon.Status
- var err error
- statuses, err = statusData.getter(context.Background(), statusData.page)
+ var itemArray []PageItem
+
+ statuses, err := statusData.getter.Get(limit)
if err != nil {- fmt.Printf("Error loading status page: %s\n", err)+ fmt.Printf("Couldn't load status page: %s\n", err)}
-
- var itemArray []PageItem
for i, _ := range statuses {item := makePageItem(statusData.hc.renderAndIncrement(statusData.hc.ctxref, statuses[i]) + "\n")
itemArray = append(itemArray, item)
}
- statusData.page.MinID = ""
return &itemArray
}
--
⑨