| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- // Copyright 2018 Frédéric Guillot. All rights reserved.
- // Use of this source code is governed by the Apache 2.0
- // license that can be found in the LICENSE file.
- package client // import "miniflux.app/client"
- import (
- "fmt"
- "time"
- )
- // Entry statuses.
- const (
- EntryStatusUnread = "unread"
- EntryStatusRead = "read"
- EntryStatusRemoved = "removed"
- )
- // User represents a user in the system.
- 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"`
- LastLoginAt *time.Time `json:"last_login_at"`
- Extra map[string]string `json:"extra"`
- }
- func (u User) String() string {
- return fmt.Sprintf("#%d - %s (admin=%v)", u.ID, u.Username, u.IsAdmin)
- }
- // UserModification is used to update a user.
- type UserModification 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"`
- }
- // Users represents a list of users.
- type Users []User
- // Category represents a category in the system.
- type Category struct {
- ID int64 `json:"id,omitempty"`
- Title string `json:"title,omitempty"`
- UserID int64 `json:"user_id,omitempty"`
- }
- func (c Category) String() string {
- return fmt.Sprintf("#%d %s", c.ID, c.Title)
- }
- // Categories represents a list of categories.
- type Categories []*Category
- // Subscription represents a feed subscription.
- type Subscription struct {
- Title string `json:"title"`
- URL string `json:"url"`
- Type string `json:"type"`
- }
- func (s Subscription) String() string {
- return fmt.Sprintf(`Title="%s", URL="%s", Type="%s"`, s.Title, s.URL, s.Type)
- }
- // Subscriptions represents a list of subscriptions.
- type Subscriptions []*Subscription
- // Feed represents a Miniflux 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"`
- ScraperRules string `json:"scraper_rules"`
- RewriteRules string `json:"rewrite_rules"`
- Crawler bool `json:"crawler"`
- UserAgent string `json:"user_agent"`
- Username string `json:"username"`
- Password string `json:"password"`
- Category *Category `json:"category,omitempty"`
- Entries Entries `json:"entries,omitempty"`
- }
- // FeedModification represents changes for a feed.
- type FeedModification 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"`
- Crawler *bool `json:"crawler"`
- UserAgent *string `json:"user_agent"`
- Username *string `json:"username"`
- Password *string `json:"password"`
- CategoryID *int64 `json:"category_id"`
- }
- // FeedIcon represents the feed icon.
- type FeedIcon struct {
- ID int64 `json:"id"`
- MimeType string `json:"mime_type"`
- Data string `json:"data"`
- }
- // Feeds represents a list of feeds.
- type Feeds []*Feed
- // Entry represents a subscription item in the system.
- type Entry struct {
- ID int64 `json:"id"`
- UserID int64 `json:"user_id"`
- FeedID int64 `json:"feed_id"`
- Status string `json:"status"`
- Hash string `json:"hash"`
- Title string `json:"title"`
- URL string `json:"url"`
- Date time.Time `json:"published_at"`
- Content string `json:"content"`
- Author string `json:"author"`
- Starred bool `json:"starred"`
- Enclosures Enclosures `json:"enclosures,omitempty"`
- Feed *Feed `json:"feed,omitempty"`
- Category *Category `json:"category,omitempty"`
- }
- // Entries represents a list of entries.
- type Entries []*Entry
- // Enclosure represents an attachment.
- 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"`
- }
- // Enclosures represents a list of attachments.
- type Enclosures []*Enclosure
- // Filter is used to filter entries.
- type Filter struct {
- Status string
- Offset int
- Limit int
- Order string
- Direction string
- Starred bool
- Before int64
- After int64
- BeforeEntryID int64
- AfterEntryID int64
- Search string
- }
- // EntryResultSet represents the response when fetching entries.
- type EntryResultSet struct {
- Total int `json:"total"`
- Entries Entries `json:"entries"`
- }
|