shithub: hell

ref: 9ab6febaf561d60c49f62f003245e80340873ffc
dir: /pages.go/

View raw version
package main

import (
	"context"
	"fmt"
	"strings"
	
	"codeberg.org/penny64/hellclient-go-mastodon"
)

type StatusLoader interface {
	Load(int) *[]PageItem
}

type Page struct {
	loader StatusLoader
	index int
}
type NotificationPages struct {
	hc *Hellclient
	page *mastodon.Pagination
}

type PageItem struct {
	itemtext string
	lines    int
}

func (noticeData *NotificationPages) Load(limit int) *[]PageItem {
	if noticeData.page == nil {
		noticeData.page = &mastodon.Pagination{}
	}
	noticeData.page.Limit = int64(limit)
	notices, err := noticeData.hc.client.GetNotifications(context.Background(), noticeData.page)
	if err != nil {
		fmt.Printf("Error getting notification page: %s\n", err)
	}
	
	fmt.Printf("%+v\n", noticeData.page)
	notices = reverseArray(notices)
	noticeArray := noticeData.hc.RenderNotificationsArray(notices)
	
	var itemArray []PageItem
	for i, _ := range noticeArray {
		item := PageItem{itemtext: noticeArray[i]}
		itemArray = append(itemArray, item)
	}
	
	return &itemArray
}


func (page *Page) String() string {
	items := page.loader.Load(5)
	var sb strings.Builder
	
	for i, _ := range *items {
		sb.WriteString((*items)[i].itemtext)
	}
	return sb.String()
}

func (page *Page) Next() {
}

func (page *Page) Prev() {
}

func (page *Page) Current() int {
	return 0
}