mirror of
https://github.com/charmbracelet/glow.git
synced 2026-08-09 09:49:09 +02:00
Sort stash by CreatedAt desc
This commit is contained in:
parent
d147dd43a3
commit
55947c5662
1 changed files with 16 additions and 14 deletions
|
|
@ -6,6 +6,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
"github.com/charmbracelet/charm/kv"
|
||||
|
|
@ -18,19 +19,6 @@ type Client struct {
|
|||
kv *kv.KV
|
||||
}
|
||||
|
||||
// NewClient creates a new Client with the default settings
|
||||
func NewClient() (*Client, error) {
|
||||
kv, err := kv.OpenWithDefaults("charm.sh.glow", "./data")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = kv.Sync()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Client{kv: kv}, nil
|
||||
}
|
||||
|
||||
var stashPrefix = []byte("stash_")
|
||||
|
||||
// ErrorPageOutOfBounds is an error for an invalid page number.
|
||||
|
|
@ -56,6 +44,19 @@ type Markdown struct {
|
|||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
// NewClient creates a new Client with the default settings
|
||||
func NewClient() (*Client, error) {
|
||||
kv, err := kv.OpenWithDefaults("charm.sh.glow", "./data")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = kv.Sync()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Client{kv: kv}, nil
|
||||
}
|
||||
|
||||
// GetNews returns the Glow paginated news results.
|
||||
func (cc *Client) GetNews(page int) ([]*Markdown, error) {
|
||||
if page < 1 {
|
||||
|
|
@ -87,7 +88,7 @@ func (cc *Client) GetStash(page int) ([]*Markdown, error) {
|
|||
limit := 50
|
||||
startOffset := (page * limit) - limit
|
||||
endOffset := page * limit
|
||||
var stash []*Markdown
|
||||
var stash MarkdownsByCreatedAtDesc
|
||||
err := cc.kv.View(func(txn *badger.Txn) error {
|
||||
opt := badger.DefaultIteratorOptions
|
||||
opt.Prefix = stashPrefix
|
||||
|
|
@ -116,6 +117,7 @@ func (cc *Client) GetStash(page int) ([]*Markdown, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sort.Sort(stash)
|
||||
if startOffset >= len(stash) {
|
||||
return []*Markdown{}, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue