storage

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2020 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database struct {
	// contains filtered or unexported fields
}

func NewDatabase

func NewDatabase(file string) (*Database, error)

func (*Database) BulkModify

func (d *Database) BulkModify(filter *Filter, modifier *Modifier) (int, error)

Bulk modify modifies multple bookmarks defined with filter to state defined in modifier

func (*Database) Close

func (d *Database) Close() error

func (*Database) DeleteBookmark

func (d *Database) DeleteBookmark(bookmark *models.Bookmark) error

DeleteBookmark deletes bookmark and its metadata

func (*Database) Engine

func (d *Database) Engine() *sqlx.DB

func (*Database) FilterBookmarks

func (d *Database) FilterBookmarks(filter *Filter) ([]*models.Bookmark, error)

FilterBookmarks applies given filter to return matching bookmarks

func (*Database) FilterProject

func (d *Database) FilterProject(filter *Filter) ([]*models.Project, error)

FilterProject filters projects by given filter. If only filter.Project is defined filter project by that. Otherwise filter projects by bookmarks that match given filter

func (*Database) FullTextSearchSupported

func (d *Database) FullTextSearchSupported() (bool, error)

FullTextSearchSupported returns whether sqlite FTS5-module is enabled

func (*Database) GetAllBookmarks

func (d *Database) GetAllBookmarks() ([]*models.Bookmark, error)

GetAllBookmarks returns all bookmarks filtered by their name. cnofig.HideArchived is obeyd and limit is 500

func (*Database) GetAllProjects

func (d *Database) GetAllProjects(name string, strict bool) ([]*models.Project, error)

GetAllProjects gets all projects If name is specified, search for that name If strict is set to true, then name must match project name exactly, Otherwise use wildcards If name == "", get all projects

func (*Database) GetAllTags

func (d *Database) GetAllTags() (*map[string]int, error)

GetAllTags returns all tags

func (*Database) GetBookmark

func (d *Database) GetBookmark(id int) (*models.Bookmark, error)

GetBookmark returns single bookmark

func (*Database) GetBookmarkMetadata

func (d *Database) GetBookmarkMetadata(bookmark *models.Bookmark) error

GetBookmarkMetadata gets metadata related to bookmark

func (*Database) GetMetadataKeys

func (d *Database) GetMetadataKeys() ([]string, error)

GetMetadataKeys returns all known metadata keys

func (*Database) GetStatistics

func (d *Database) GetStatistics() (*Statistics, error)

GetStatistics gets various stats related to stored bookmarks

func (*Database) InsertTags

func (d *Database) InsertTags(tags []string, tx *sqlx.Tx) error

InsertTag inserts tag for bookmark

func (*Database) NewBookmark

func (d *Database) NewBookmark(b *models.Bookmark) error

NewBookmark stores new bookmark

func (*Database) NewBookmarks

func (d *Database) NewBookmarks(bookmarks []*models.Bookmark, AddTags []string) error

NewBookmarks creates batch of new bookmarks. Bookmark ids are not collected and need to be queried separately AddTags allows defining any custom tags that are assigned to all bookmarks

func (*Database) RenameProject

func (d *Database) RenameProject(old string, new string) error

RenameProject renames project and all its children. e.g. old: my-awesome-project, new: project: results in my-awesome-project.a -> project.a

func (*Database) SearchBookmarks

func (d *Database) SearchBookmarks(text string) ([]*models.Bookmark, error)

SearchBookmarks searches both bookmarks table and additional metadata fields If full text search is enabled, combine those results as well

func (*Database) SearchKeyValue

func (d *Database) SearchKeyValue(key, value string) ([]string, error)

SearchKeyValue searches any key-value item for bookmark

func (*Database) UpdateBookmark

func (d *Database) UpdateBookmark(b *models.Bookmark) error

UpdateBookmark updates all fields on bookmark

func (*Database) UpdateBookmarkTags

func (d *Database) UpdateBookmarkTags(bookmark *models.Bookmark, tags []string, tx *sqlx.Tx) error

AddTagsToBookmark adds tags to bookmark. Tags must exist before calling this function. If tx is nil, use database connection directly

type Filter

type Filter struct {
	Name          StringFilter
	Description   StringFilter
	Project       StringFilter
	Tags          StringFilter
	Content       StringFilter
	CreatedAfter  time.Time
	CreatedBefore time.Time
	Archived      StringFilter
	CustomTags    map[string]StringFilter
	SortField     string
	SortDir       string
	Query         string
	// contains filtered or unexported fields
}

Filter is a filter that represents user defined filterin and sorting

func NewFilter

func NewFilter(query string) (*Filter, error)

NewFilter parses and constructs new filter based on raw query. Query example: "name:asdf* author:'jack' my bookmark" Rules: Each parameter is separated by ' ', Strict match: enclose word with '\”,

func (*Filter) Clear

func (f *Filter) Clear()

Clear clears filter

func (*Filter) CustomOnly

func (f *Filter) CustomOnly() bool

func (*Filter) IsEmpty

func (f *Filter) IsEmpty() bool

func (*Filter) IsPlainQuery

func (f *Filter) IsPlainQuery() bool

type Modifier

type Modifier struct {
	Project    StringFilter
	Tags       StringFilter
	Archived   StringFilter
	CustomTags map[string]StringFilter
}

func NewModifier

func NewModifier(key, value string) (*Modifier, error)

type Statistics

type Statistics struct {
	Bookmarks               int
	Archived                int
	Tags                    int
	Projects                int
	IpfsLinks               int
	LastBookmark            time.Time
	FullTextSearchSupported bool
	MetadataKeys            []string
}

type StringFilter

type StringFilter struct {
	Name    string
	Strict  bool
	Inverse bool
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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