shithub: hell

Download patch

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
 }
 
--