Documentation
¶
Overview ¶
Package client implements a client library for the Miniflux REST API.
Examples ¶
This code snippet fetch the list of users:
import ( miniflux "miniflux.app/v2/client" ) client := miniflux.NewClient("https://api.example.org", "admin", "secret") users, err := client.Users() if err != nil { fmt.Println(err) return } fmt.Println(users, err)
This one discover subscriptions on a website:
subscriptions, err := client.Discover("https://example.org/") if err != nil { fmt.Println(err) return } fmt.Println(subscriptions)
Index ¶
- Constants
- Variables
- func SetOptionalField[T any](value T) *T
- type Categories
- type Category
- type Client
- func (c *Client) Categories() (Categories, error)
- func (c *Client) CategoryEntries(categoryID int64, filter *Filter) (*EntryResultSet, error)
- func (c *Client) CategoryEntry(categoryID, entryID int64) (*Entry, error)
- func (c *Client) CategoryFeeds(categoryID int64) (Feeds, error)
- func (c *Client) CreateCategory(title string) (*Category, error)
- func (c *Client) CreateFeed(feedCreationRequest *FeedCreationRequest) (int64, error)
- func (c *Client) CreateUser(username, password string, isAdmin bool) (*User, error)
- func (c *Client) DeleteCategory(categoryID int64) error
- func (c *Client) DeleteFeed(feedID int64) error
- func (c *Client) DeleteUser(userID int64) error
- func (c *Client) Discover(url string) (Subscriptions, error)
- func (c *Client) Enclosure(enclosureID int64) (*Enclosure, error)
- func (c *Client) Entries(filter *Filter) (*EntryResultSet, error)
- func (c *Client) Entry(entryID int64) (*Entry, error)
- func (c *Client) Export() ([]byte, error)
- func (c *Client) Feed(feedID int64) (*Feed, error)
- func (c *Client) FeedEntries(feedID int64, filter *Filter) (*EntryResultSet, error)
- func (c *Client) FeedEntry(feedID, entryID int64) (*Entry, error)
- func (c *Client) FeedIcon(feedID int64) (*FeedIcon, error)
- func (c *Client) Feeds() (Feeds, error)
- func (c *Client) FetchCounters() (*FeedCounters, error)
- func (c *Client) FetchEntryOriginalContent(entryID int64) (string, error)
- func (c *Client) FlushHistory() error
- func (c *Client) Healthcheck() error
- func (c *Client) Icon(iconID int64) (*FeedIcon, error)
- func (c *Client) Import(f io.ReadCloser) error
- func (c *Client) IntegrationsStatus() (bool, error)
- func (c *Client) MarkAllAsRead(userID int64) error
- func (c *Client) MarkCategoryAsRead(categoryID int64) error
- func (c *Client) MarkFeedAsRead(feedID int64) error
- func (c *Client) Me() (*User, error)
- func (c *Client) RefreshAllFeeds() error
- func (c *Client) RefreshCategory(categoryID int64) error
- func (c *Client) RefreshFeed(feedID int64) error
- func (c *Client) SaveEntry(entryID int64) error
- func (c *Client) ToggleBookmark(entryID int64) error
- func (c *Client) UpdateCategory(categoryID int64, title string) (*Category, error)
- func (c *Client) UpdateEnclosure(enclosureID int64, enclosureUpdate *EnclosureUpdateRequest) error
- func (c *Client) UpdateEntries(entryIDs []int64, status string) error
- func (c *Client) UpdateEntry(entryID int64, entryChanges *EntryModificationRequest) (*Entry, error)
- func (c *Client) UpdateFeed(feedID int64, feedChanges *FeedModificationRequest) (*Feed, error)
- func (c *Client) UpdateUser(userID int64, userChanges *UserModificationRequest) (*User, error)
- func (c *Client) UserByID(userID int64) (*User, error)
- func (c *Client) UserByUsername(username string) (*User, error)
- func (c *Client) Users() (Users, error)
- func (c *Client) Version() (*VersionResponse, error)
- type Enclosure
- type EnclosureUpdateRequest
- type Enclosures
- type Entries
- type Entry
- type EntryModificationRequest
- type EntryResultSet
- type Feed
- type FeedCounters
- type FeedCreationRequest
- type FeedIcon
- type FeedModificationRequest
- type Feeds
- type Filter
- type Subscription
- type Subscriptions
- type User
- type UserCreationRequest
- type UserModificationRequest
- type Users
- type VersionResponse
Constants ¶
const ( EntryStatusUnread = "unread" EntryStatusRead = "read" EntryStatusRemoved = "removed" )
Entry statuses.
const ( FilterNotStarred = "0" FilterOnlyStarred = "1" )
Variables ¶
var ( ErrNotAuthorized = errors.New("miniflux: unauthorized (bad credentials)") ErrForbidden = errors.New("miniflux: access forbidden") ErrServerError = errors.New("miniflux: internal server error") ErrNotFound = errors.New("miniflux: resource not found") ErrBadRequest = errors.New("miniflux: bad request") ErrEmptyEndpoint = errors.New("miniflux: empty endpoint provided") )
List of exposed errors.
Functions ¶
func SetOptionalField ¶ added in v2.1.2
func SetOptionalField[T any](value T) *T
Types ¶
type Category ¶
type Category struct { ID int64 `json:"id,omitempty"` Title string `json:"title,omitempty"` UserID int64 `json:"user_id,omitempty"` }
Category represents a feed category.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client holds API procedure calls.
func (*Client) Categories ¶
func (c *Client) Categories() (Categories, error)
Categories gets the list of categories.
func (*Client) CategoryEntries ¶
func (c *Client) CategoryEntries(categoryID int64, filter *Filter) (*EntryResultSet, error)
CategoryEntries fetch entries of a category.
func (*Client) CategoryEntry ¶
CategoryEntry gets a single category entry.
func (*Client) CategoryFeeds ¶
CategoryFeeds gets feeds of a category.
func (*Client) CreateCategory ¶
CreateCategory creates a new category.
func (*Client) CreateFeed ¶
func (c *Client) CreateFeed(feedCreationRequest *FeedCreationRequest) (int64, error)
CreateFeed creates a new feed.
func (*Client) CreateUser ¶
CreateUser creates a new user in the system.
func (*Client) DeleteCategory ¶
DeleteCategory removes a category.
func (*Client) DeleteFeed ¶
DeleteFeed removes a feed.
func (*Client) DeleteUser ¶
DeleteUser removes a user from the system.
func (*Client) Discover ¶
func (c *Client) Discover(url string) (Subscriptions, error)
Discover try to find subscriptions from a website.
func (*Client) Entries ¶
func (c *Client) Entries(filter *Filter) (*EntryResultSet, error)
Entries fetch entries.
func (*Client) FeedEntries ¶
func (c *Client) FeedEntries(feedID int64, filter *Filter) (*EntryResultSet, error)
FeedEntries fetch feed entries.
func (*Client) FetchCounters ¶
func (c *Client) FetchCounters() (*FeedCounters, error)
FetchCounters fetches feed counters.
func (*Client) FetchEntryOriginalContent ¶ added in v2.1.2
FetchEntryOriginalContent fetches the original content of an entry using the scraper.
func (*Client) FlushHistory ¶ added in v2.0.49
FlushHistory changes all entries with the status "read" to "removed".
func (*Client) Healthcheck ¶ added in v2.1.2
Healthcheck checks if the application is up and running.
func (*Client) IntegrationsStatus ¶ added in v2.2.3
IntegrationsStatus fetches the integrations status for the logged user.
func (*Client) MarkAllAsRead ¶
MarkAllAsRead marks all unread entries as read for a given user.
func (*Client) MarkCategoryAsRead ¶
MarkCategoryAsRead marks all unread entries in a category as read.
func (*Client) MarkFeedAsRead ¶
MarkFeedAsRead marks all unread entries of the feed as read.
func (*Client) RefreshAllFeeds ¶
RefreshAllFeeds refreshes all feeds.
func (*Client) RefreshCategory ¶
RefreshCategory refreshes a category.
func (*Client) RefreshFeed ¶
RefreshFeed refreshes a feed.
func (*Client) ToggleBookmark ¶
ToggleBookmark toggles entry bookmark value.
func (*Client) UpdateCategory ¶
UpdateCategory updates a category.
func (*Client) UpdateEnclosure ¶ added in v2.2.0
func (c *Client) UpdateEnclosure(enclosureID int64, enclosureUpdate *EnclosureUpdateRequest) error
UpdateEnclosure updates an enclosure.
func (*Client) UpdateEntries ¶
UpdateEntries updates the status of a list of entries.
func (*Client) UpdateEntry ¶ added in v2.0.49
func (c *Client) UpdateEntry(entryID int64, entryChanges *EntryModificationRequest) (*Entry, error)
UpdateEntry updates an entry.
func (*Client) UpdateFeed ¶
func (c *Client) UpdateFeed(feedID int64, feedChanges *FeedModificationRequest) (*Feed, error)
UpdateFeed updates a feed.
func (*Client) UpdateUser ¶
func (c *Client) UpdateUser(userID int64, userChanges *UserModificationRequest) (*User, error)
UpdateUser updates a user in the system.
func (*Client) UserByUsername ¶
UserByUsername returns a single user.
func (*Client) Version ¶ added in v2.0.49
func (c *Client) Version() (*VersionResponse, error)
Version returns the version of the Miniflux instance.
type Enclosure ¶
type Enclosure struct { ID int64 `json:"id"` UserID int64 `json:"user_id"` EntryID int64 `json:"entry_id"` URL string `json:"url"` MimeType string `json:"mime_type"` Size int `json:"size"` MediaProgression int64 `json:"media_progression"` }
Enclosure represents an attachment.
type EnclosureUpdateRequest ¶ added in v2.2.0
type EnclosureUpdateRequest struct {
MediaProgression int64 `json:"media_progression"`
}
type Entry ¶
type Entry struct { ID int64 `json:"id"` Date time.Time `json:"published_at"` ChangedAt time.Time `json:"changed_at"` CreatedAt time.Time `json:"created_at"` Feed *Feed `json:"feed,omitempty"` Hash string `json:"hash"` URL string `json:"url"` CommentsURL string `json:"comments_url"` Title string `json:"title"` Status string `json:"status"` Content string `json:"content"` Author string `json:"author"` Enclosures Enclosures `json:"enclosures,omitempty"` Tags []string `json:"tags"` ReadingTime int `json:"reading_time"` UserID int64 `json:"user_id"` FeedID int64 `json:"feed_id"` Starred bool `json:"starred"` }
Entry represents a subscription item in the system.
type EntryModificationRequest ¶ added in v2.0.49
type EntryModificationRequest struct { Title *string `json:"title"` Content *string `json:"content"` }
EntryModificationRequest represents a request to modify an entry.
type EntryResultSet ¶
EntryResultSet represents the response when fetching entries.
type Feed ¶
type Feed struct { ID int64 `json:"id"` UserID int64 `json:"user_id"` FeedURL string `json:"feed_url"` SiteURL string `json:"site_url"` Title string `json:"title"` CheckedAt time.Time `json:"checked_at,omitempty"` EtagHeader string `json:"etag_header,omitempty"` LastModifiedHeader string `json:"last_modified_header,omitempty"` ParsingErrorMsg string `json:"parsing_error_message,omitempty"` ParsingErrorCount int `json:"parsing_error_count,omitempty"` Disabled bool `json:"disabled"` IgnoreHTTPCache bool `json:"ignore_http_cache"` AllowSelfSignedCertificates bool `json:"allow_self_signed_certificates"` FetchViaProxy bool `json:"fetch_via_proxy"` ScraperRules string `json:"scraper_rules"` RewriteRules string `json:"rewrite_rules"` BlocklistRules string `json:"blocklist_rules"` KeeplistRules string `json:"keeplist_rules"` Crawler bool `json:"crawler"` UserAgent string `json:"user_agent"` Cookie string `json:"cookie"` Username string `json:"username"` Password string `json:"password"` Category *Category `json:"category,omitempty"` HideGlobally bool `json:"hide_globally"` DisableHTTP2 bool `json:"disable_http2"` }
Feed represents a Miniflux feed.
type FeedCounters ¶
type FeedCreationRequest ¶
type FeedCreationRequest struct { FeedURL string `json:"feed_url"` CategoryID int64 `json:"category_id"` UserAgent string `json:"user_agent"` Cookie string `json:"cookie"` Username string `json:"username"` Password string `json:"password"` Crawler bool `json:"crawler"` Disabled bool `json:"disabled"` IgnoreHTTPCache bool `json:"ignore_http_cache"` AllowSelfSignedCertificates bool `json:"allow_self_signed_certificates"` FetchViaProxy bool `json:"fetch_via_proxy"` ScraperRules string `json:"scraper_rules"` RewriteRules string `json:"rewrite_rules"` BlocklistRules string `json:"blocklist_rules"` KeeplistRules string `json:"keeplist_rules"` HideGlobally bool `json:"hide_globally"` DisableHTTP2 bool `json:"disable_http2"` }
FeedCreationRequest represents the request to create a feed.
type FeedIcon ¶
type FeedIcon struct { ID int64 `json:"id"` MimeType string `json:"mime_type"` Data string `json:"data"` }
FeedIcon represents the feed icon.
type FeedModificationRequest ¶
type FeedModificationRequest struct { FeedURL *string `json:"feed_url"` SiteURL *string `json:"site_url"` Title *string `json:"title"` ScraperRules *string `json:"scraper_rules"` RewriteRules *string `json:"rewrite_rules"` BlocklistRules *string `json:"blocklist_rules"` KeeplistRules *string `json:"keeplist_rules"` Crawler *bool `json:"crawler"` UserAgent *string `json:"user_agent"` Cookie *string `json:"cookie"` Username *string `json:"username"` Password *string `json:"password"` CategoryID *int64 `json:"category_id"` Disabled *bool `json:"disabled"` IgnoreHTTPCache *bool `json:"ignore_http_cache"` AllowSelfSignedCertificates *bool `json:"allow_self_signed_certificates"` FetchViaProxy *bool `json:"fetch_via_proxy"` HideGlobally *bool `json:"hide_globally"` DisableHTTP2 *bool `json:"disable_http2"` }
FeedModificationRequest represents the request to update a feed.
type Filter ¶
type Filter struct { Status string Offset int Limit int Order string Direction string Starred string Before int64 After int64 PublishedBefore int64 PublishedAfter int64 ChangedBefore int64 ChangedAfter int64 BeforeEntryID int64 AfterEntryID int64 Search string CategoryID int64 FeedID int64 Statuses []string GloballyVisible bool }
Filter is used to filter entries.
type Subscription ¶
type Subscription struct { Title string `json:"title"` URL string `json:"url"` Type string `json:"type"` }
Subscription represents a feed subscription.
func (Subscription) String ¶
func (s Subscription) String() string
type Subscriptions ¶
type Subscriptions []*Subscription
Subscriptions represents a list of subscriptions.
type User ¶
type User struct { ID int64 `json:"id"` Username string `json:"username"` Password string `json:"password,omitempty"` IsAdmin bool `json:"is_admin"` Theme string `json:"theme"` Language string `json:"language"` Timezone string `json:"timezone"` EntryDirection string `json:"entry_sorting_direction"` EntryOrder string `json:"entry_sorting_order"` Stylesheet string `json:"stylesheet"` CustomJS string `json:"custom_js"` GoogleID string `json:"google_id"` OpenIDConnectID string `json:"openid_connect_id"` EntriesPerPage int `json:"entries_per_page"` KeyboardShortcuts bool `json:"keyboard_shortcuts"` ShowReadingTime bool `json:"show_reading_time"` EntrySwipe bool `json:"entry_swipe"` LastLoginAt *time.Time `json:"last_login_at"` DisplayMode string `json:"display_mode"` DefaultReadingSpeed int `json:"default_reading_speed"` CJKReadingSpeed int `json:"cjk_reading_speed"` DefaultHomePage string `json:"default_home_page"` CategoriesSortingOrder string `json:"categories_sorting_order"` MarkReadOnView bool `json:"mark_read_on_view"` MediaPlaybackRate float64 `json:"media_playback_rate"` BlockFilterEntryRules string `json:"block_filter_entry_rules"` KeepFilterEntryRules string `json:"keep_filter_entry_rules"` ExternalFontHosts string `json:"external_font_hosts"` }
User represents a user in the system.
type UserCreationRequest ¶
type UserCreationRequest struct { Username string `json:"username"` Password string `json:"password"` IsAdmin bool `json:"is_admin"` GoogleID string `json:"google_id"` OpenIDConnectID string `json:"openid_connect_id"` }
UserCreationRequest represents the request to create a user.
type UserModificationRequest ¶
type UserModificationRequest struct { Username *string `json:"username"` Password *string `json:"password"` IsAdmin *bool `json:"is_admin"` Theme *string `json:"theme"` Language *string `json:"language"` Timezone *string `json:"timezone"` EntryDirection *string `json:"entry_sorting_direction"` EntryOrder *string `json:"entry_sorting_order"` Stylesheet *string `json:"stylesheet"` CustomJS *string `json:"custom_js"` GoogleID *string `json:"google_id"` OpenIDConnectID *string `json:"openid_connect_id"` EntriesPerPage *int `json:"entries_per_page"` KeyboardShortcuts *bool `json:"keyboard_shortcuts"` ShowReadingTime *bool `json:"show_reading_time"` EntrySwipe *bool `json:"entry_swipe"` DisplayMode *string `json:"display_mode"` DefaultReadingSpeed *int `json:"default_reading_speed"` CJKReadingSpeed *int `json:"cjk_reading_speed"` DefaultHomePage *string `json:"default_home_page"` CategoriesSortingOrder *string `json:"categories_sorting_order"` MarkReadOnView *bool `json:"mark_read_on_view"` MediaPlaybackRate *float64 `json:"media_playback_rate"` BlockFilterEntryRules *string `json:"block_filter_entry_rules"` KeepFilterEntryRules *string `json:"keep_filter_entry_rules"` ExternalFontHosts *string `json:"external_font_hosts"` }
UserModificationRequest represents the request to update a user.
type VersionResponse ¶ added in v2.0.49
type VersionResponse struct { Version string `json:"version"` Commit string `json:"commit"` BuildDate string `json:"build_date"` GoVersion string `json:"go_version"` Compiler string `json:"compiler"` Arch string `json:"arch"` OS string `json:"os"` }
VersionResponse represents the version and the build information of the Miniflux instance.