nvimboat

package module
v0.0.0-...-02bb789 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2024 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CompleteNvimboat

func CompleteNvimboat(args *nvim.CommandCompletionArgs) (suggestions []string, err error)

func SetupLogging

func SetupLogging(path string) error

Types

type Action

type Action func(*Nvimboat, *nvim.Nvim, ...string) error

type Article

type Article struct {
	Author  string
	Content string
	FeedUrl string
	Guid    string
	PubDate int
	Title   string
	Unread  int
	Url     string
}

func QueryArticle

func QueryArticle(db *sql.DB, url string) (article Article, err error)

func (*Article) ChildIdx

func (a *Article) ChildIdx(Page) (int, error)

func (*Article) Prefix

func (a *Article) Prefix() string

func (*Article) QueryChild

func (a *Article) QueryChild(*sql.DB, string) (Page, error)

func (*Article) QuerySelf

func (a *Article) QuerySelf(db *sql.DB) (Page, error)

func (*Article) Render

func (a *Article) Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)

func (*Article) ToggleUnread

func (a *Article) ToggleUnread(nb *Nvimboat, urls ...string) (err error)

type ArticlesPage

type ArticlesPage interface {
	FindUnread(direction string, a Article) (Article, error)
	SetArticleRead(article Article) error
}

type Feed

type Feed struct {
	Title        string
	RssUrl       string
	UnreadCount  int
	ArticleCount int
	Articles     []*Article
}

func QueryFeed

func QueryFeed(db *sql.DB, feedUrl string) (feed Feed, err error)

func QueryFeeds

func QueryFeeds(db *sql.DB) (feeds []*Feed, err error)

func (*Feed) AuthorCol

func (f *Feed) AuthorCol() []string

func (*Feed) ChildIdx

func (f *Feed) ChildIdx(article Page) (int, error)

func (*Feed) FindUnread

func (f *Feed) FindUnread(direction string, a Article) (article Article, err error)

func (*Feed) MainPrefix

func (f *Feed) MainPrefix() string

func (*Feed) PrefixCol

func (f *Feed) PrefixCol() []string

func (*Feed) PubDateCol

func (f *Feed) PubDateCol() ([]string, error)

func (*Feed) QueryChild

func (f *Feed) QueryChild(db *sql.DB, articleUrl string) (Page, error)

func (*Feed) QuerySelf

func (f *Feed) QuerySelf(db *sql.DB) (Page, error)

func (*Feed) Render

func (f *Feed) Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)

func (*Feed) SetArticleRead

func (f *Feed) SetArticleRead(article Article) (err error)

func (*Feed) TitleCol

func (f *Feed) TitleCol() []string

func (*Feed) ToggleUnread

func (f *Feed) ToggleUnread(nb *Nvimboat, urls ...string) (err error)

func (*Feed) UrlCol

func (f *Feed) UrlCol() []string

type Filter

type Filter struct {
	Name         string
	FilterID     string
	Query        string
	IncludeTags  []string
	ExcludeTags  []string
	UnreadCount  int
	ArticleCount int
	Articles     []*Article
}

func QueryFilter

func QueryFilter(db *sql.DB, configFeeds []map[string]any, query string, inTags, exTags []string) (filter Filter, err error)

func (*Filter) AuthorCol

func (f *Filter) AuthorCol() []string

func (*Filter) ChildIdx

func (f *Filter) ChildIdx(article Page) (int, error)

func (*Filter) FindUnread

func (f *Filter) FindUnread(direction string, a Article) (article Article, err error)

func (*Filter) MainPrefix

func (f *Filter) MainPrefix() string

func (*Filter) PrefixCol

func (f *Filter) PrefixCol() []string

func (*Filter) PubDateCol

func (f *Filter) PubDateCol() ([]string, error)

func (*Filter) QueryChild

func (f *Filter) QueryChild(db *sql.DB, articleUrl string) (Page, error)

func (*Filter) QuerySelf

func (f *Filter) QuerySelf(*sql.DB) (Page, error)

func (*Filter) Render

func (f *Filter) Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)

func (*Filter) SetArticleRead

func (f *Filter) SetArticleRead(article Article) (err error)

func (*Filter) TitleCol

func (f *Filter) TitleCol() []string

func (*Filter) ToggleUnread

func (f *Filter) ToggleUnread(nb *Nvimboat, urls ...string) (err error)

func (*Filter) UrlCol

func (f *Filter) UrlCol() []string
type MainMenu struct {
	ConfigFeeds   []map[string]any
	ConfigFilters []map[string]any
	Filters       []*Filter
	Feeds         []*Feed
}

func QueryMain

func QueryMain(db *sql.DB, configFeeds []map[string]any, configFilters []map[string]any) (mainmenu *MainMenu, err error)
func (mm *MainMenu) ChildIdx(feed Page) (int, error)
func (mm *MainMenu) QueryChild(db *sql.DB, id string) (Page, error)
func (mm *MainMenu) QuerySelf(db *sql.DB) (Page, error)
func (mm *MainMenu) Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)
func (mm *MainMenu) ToggleUnread(nb *Nvimboat, urls ...string) (err error)

type Nvimboat

type Nvimboat struct {
	Config     map[string]any
	Pages      PageStack
	Feeds      []map[string]any
	Filters    []map[string]any
	LogFile    *os.File
	DBHandler  *sql.DB
	SyncDBchan chan SyncDB
	Nvim       *nvim.Nvim
	Window     *nvim.Window
	Buffer     *nvim.Buffer
	UnreadOnly bool
}

func (*Nvimboat) Back

func (nb *Nvimboat) Back(nv *nvim.Nvim, args ...string) (err error)

func (*Nvimboat) Command

func (nb *Nvimboat) Command(nv *nvim.Nvim, args []string) (err error)

func (*Nvimboat) Disable

func (nb *Nvimboat) Disable(nv *nvim.Nvim, args ...string) (err error)

func (*Nvimboat) Enable

func (nb *Nvimboat) Enable(nv *nvim.Nvim, args ...string) (err error)

func (*Nvimboat) Log

func (nb *Nvimboat) Log(val ...any)

func (*Nvimboat) NextArticle

func (nb *Nvimboat) NextArticle(nv *nvim.Nvim, args ...string) error

func (*Nvimboat) NextUnread

func (nb *Nvimboat) NextUnread(nv *nvim.Nvim, args ...string) error

func (*Nvimboat) Pop

func (nb *Nvimboat) Pop() (err error)

func (*Nvimboat) PrevArticle

func (nb *Nvimboat) PrevArticle(nv *nvim.Nvim, args ...string) error

func (*Nvimboat) PrevUnread

func (nb *Nvimboat) PrevUnread(nv *nvim.Nvim, args ...string) error

func (*Nvimboat) Push

func (nb *Nvimboat) Push(newPage Page) (err error)

func (*Nvimboat) Select

func (nb *Nvimboat) Select(nv *nvim.Nvim, args ...string) (err error)

func (*Nvimboat) Show

func (nb *Nvimboat) Show(newPage Page) (err error)

func (*Nvimboat) ShowMain

func (nb *Nvimboat) ShowMain(nv *nvim.Nvim, args ...string) (err error)

func (*Nvimboat) ShowTags

func (nb *Nvimboat) ShowTags(nv *nvim.Nvim, args ...string) (err error)

func (*Nvimboat) ToggleArticleRead

func (nb *Nvimboat) ToggleArticleRead(nv *nvim.Nvim, args ...string) (err error)

type Page

type Page interface {
	Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)
	ChildIdx(Page) (int, error)
	QuerySelf(*sql.DB) (Page, error)
	QueryChild(*sql.DB, string) (Page, error)
	ToggleUnread(nb *Nvimboat, urls ...string) (err error)
}

type PageStack

type PageStack struct {
	Pages []Page
}

func (*PageStack) Pop

func (ps *PageStack) Pop()

func (*PageStack) Push

func (ps *PageStack) Push(newPage Page)

func (*PageStack) Top

func (ps *PageStack) Top() Page

type SyncDB

type SyncDB struct {
	Unread      int
	FeedUrls    []string
	ArticleUrls []string
}

type TagFeeds

type TagFeeds struct {
	Tag   string
	Feeds []*Feed
}

func QueryTagFeeds

func QueryTagFeeds(db *sql.DB, tag string, configFeeds []map[string]any) (tf TagFeeds, err error)

func (*TagFeeds) ChildIdx

func (tf *TagFeeds) ChildIdx(feed Page) (int, error)

func (*TagFeeds) QueryChild

func (tf *TagFeeds) QueryChild(db *sql.DB, feedUrl string) (Page, error)

func (*TagFeeds) QuerySelf

func (tf *TagFeeds) QuerySelf(db *sql.DB) (Page, error)

func (*TagFeeds) Render

func (tf *TagFeeds) Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)

func (*TagFeeds) ToggleUnread

func (tf *TagFeeds) ToggleUnread(nb *Nvimboat, urls ...string) (err error)

type TagsPage

type TagsPage struct {
	Feeds        []map[string]any
	TagFeedCount map[string]int
}

func QueryTags

func QueryTags(configFeeds []map[string]any) (tp *TagsPage, err error)

func (*TagsPage) ChildIdx

func (tp *TagsPage) ChildIdx(tagFeeds Page) (int, error)

func (*TagsPage) QueryChild

func (tp *TagsPage) QueryChild(db *sql.DB, tag string) (Page, error)

func (*TagsPage) QuerySelf

func (tp *TagsPage) QuerySelf(*sql.DB) (Page, error)

func (*TagsPage) Render

func (tp *TagsPage) Render(nv *nvim.Nvim, buffer nvim.Buffer, unreadOnly bool, separator string) (err error)

func (*TagsPage) ToggleUnread

func (tp *TagsPage) ToggleUnread(nb *Nvimboat, urls ...string) (err error)

Jump to

Keyboard shortcuts

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