backend

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2023 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultCacheDuration = 24 * time.Hour

DefaultCacheDuration is the default duration for which an item is cached

View Source
var DefaultCacheSize = 100

DefaultCacheSize is the default size of the cache

View Source
var ErrOfflineMode = fmt.Errorf("offline mode")

ErrOfflineMode is returned when the backend is in offline mode

Functions

func DeleteItem

func DeleteItem(sender tab.Tab, key string) tea.Cmd

DeleteItem is a function to tell the main model that a new item needs to be removed from the list

func DownloadItem added in v1.1.0

func DownloadItem(key string, index int) tea.Cmd

DownloadItem is a function to tell the main model that a new item needs to be downloaded

func NewItem

func NewItem(sender tab.Tab, editing bool, fields []string) tea.Cmd

NewItem is a function to tell the main model that a new item needs to be added to the list

Types

type Backend

type Backend struct {
	Rss   *rss.Rss
	Cache *Cache
}

Backend uses a local cache to get all the feeds and their articles

func New

func New(urlPath, cachePath string, resetCache bool) (Backend, error)

New creates a new Cache Backend

func (Backend) Close

func (b Backend) Close() error

Close closes the backend

func (Backend) DownloadItem added in v1.1.0

func (b Backend) DownloadItem(key string, index int) tea.Cmd

DownloadItem returns a tea.Cmd which downloads an item

func (Backend) FetchAllArticles added in v1.0.2

func (b Backend) FetchAllArticles(_ string) tea.Cmd

FetchAllArticles returns a tea.Cmd which gets all the articles from the backend

func (Backend) FetchArticles

func (b Backend) FetchArticles(feedName string) tea.Cmd

FetchArticles returns a tea.Cmd which gets the articles from the backend via a string key

func (Backend) FetchCategories

func (b Backend) FetchCategories() tea.Cmd

FetchCategories returns a tea.Cmd which gets the category list from the backend

func (Backend) FetchDownloadedArticles added in v1.1.0

func (b Backend) FetchDownloadedArticles(_ string) tea.Cmd

FetchDownloaded returns a tea.Cmd which gets all the downloaded articles from the backend

func (Backend) FetchFeeds

func (b Backend) FetchFeeds(catName string) tea.Cmd

FetchFeeds returns a tea.Cmd which gets the feed list from the backend via a string key

func (Backend) RemoveDownload added in v1.2.0

func (b Backend) RemoveDownload(key string) error

RemoveDownload tries to remove a download from the backend

func (*Backend) SetOfflineMode added in v1.2.0

func (b *Backend) SetOfflineMode(mode bool)

SetOfflineMode sets the offline mode of the backend

type Cache

type Cache struct {
	Content    map[string]Entry `json:"content"`
	Downloaded SortableArticles `json:"downloaded"`
	// contains filtered or unexported fields
}

Cache handles the caching of feeds and storing downloaded articles

func (*Cache) AddToDownloaded added in v1.1.0

func (c *Cache) AddToDownloaded(url string, index int) error

AddToDownloaded adds an item to the downloaded list

func (*Cache) GetArticles added in v1.2.0

func (c *Cache) GetArticles(url string) (SortableArticles, error)

GetArticles returns an article list using the cache if possible

func (*Cache) GetArticlesBulk added in v1.2.0

func (c *Cache) GetArticlesBulk(urls []string) SortableArticles

GetArticlesBulk returns a sorted list of articles from all the given urls, ignoring any errors

func (*Cache) GetDownloaded added in v1.1.0

func (c *Cache) GetDownloaded() SortableArticles

GetDownloaded returns a list of downloaded items

func (*Cache) Load

func (c *Cache) Load() error

Load reads the cache from disk

func (*Cache) RemoveFromDownloaded added in v1.2.0

func (c *Cache) RemoveFromDownloaded(index int) error

RemoveFromDownloaded removes an item from the downloaded list

func (*Cache) Save

func (c *Cache) Save() error

Save writes the cache to disk

func (*Cache) SetOfflineMode added in v1.2.0

func (c *Cache) SetOfflineMode(mode bool)

SetOfflineMode sets the offline mode

type DeleteItemMessage

type DeleteItemMessage struct {
	Sender tab.Tab
	Key    string
}

DeleteItemMessage is a message to tell the main model that a new item needs to be removed from the list

type DownloadItemMessage added in v1.1.0

type DownloadItemMessage struct {
	Key   string
	Index int
}

DownloadItemMessage is a message to tell the main model that a new item needs to be downloaded

type Entry added in v1.2.0

type Entry struct {
	Expire   time.Time        `json:"expire"`
	Articles SortableArticles `json:"articles"`
}

Entry is a cache entry

type FetchArticleSuccessMessage added in v1.2.0

type FetchArticleSuccessMessage struct {
	Items        []list.Item
	Descriptions []string
}

FetchArticleSuccessMessage is a message that is sent when the fetching of the articles was successful

type FetchErrorMessage

type FetchErrorMessage struct {
	Description string
	Err         error
}

FetchErrorMessage is a message that is sent when the fetching of the categories or feeds failed

type FetchSuccessMessage

type FetchSuccessMessage struct {
	Items []list.Item
}

FetchSuccessMessage is a message that is sent when the fetching of the categories or feeds was successful

type NewItemMessage

type NewItemMessage struct {
	Sender    tab.Tab
	Editing   bool
	OldFields []string
}

NewItemMessage is a message to tell the main model that a new item needs to be added to the list

type SortableArticles added in v1.2.0

type SortableArticles []gofeed.Item

SortableArticles is a sortable list of articles

func (SortableArticles) Len added in v1.2.0

func (sa SortableArticles) Len() int

Len returns the length of the item list, needed for sorting

func (SortableArticles) Less added in v1.2.0

func (sa SortableArticles) Less(a, b int) bool

Less returns true if the item at index i is less than the item at index j, needed for sorting

func (SortableArticles) Swap added in v1.2.0

func (sa SortableArticles) Swap(a, b int)

Swap swaps the items at index i and j, needed for sorting

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL