diff options
-rw-r--r-- | Gopkg.lock | 2 | ||||
-rw-r--r-- | integration_test.go | 19 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/README.md | 15 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/client.go | 17 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/miniflux.go | 18 |
5 files changed, 62 insertions, 9 deletions
@@ -41,7 +41,7 @@ branch = "master" name = "github.com/miniflux/miniflux-go" packages = ["."] - revision = "3d654932d84b6afdbd5e66b34b08392f62229e61" + revision = "887ba3b062946784f0e64edb1734f435beb204f9" [[projects]] name = "github.com/tdewolff/minify" diff --git a/integration_test.go b/integration_test.go index 0a53bef..fb0a785 100644 --- a/integration_test.go +++ b/integration_test.go @@ -634,6 +634,25 @@ func TestCreateFeedWithInexistingCategory(t *testing.T) { } } +func TestExport(t *testing.T) { + username := getRandomUsername() + client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword) + _, err := client.CreateUser(username, testStandardPassword, false) + if err != nil { + t.Fatal(err) + } + + client = miniflux.NewClient(testBaseURL, username, testStandardPassword) + output, err := client.Export() + if err != nil { + t.Fatal(err) + } + + if !strings.HasPrefix(string(output), "<?xml") { + t.Fatalf(`Invalid OPML export, got "%s"`, string(output)) + } +} + func TestUpdateFeed(t *testing.T) { username := getRandomUsername() client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword) diff --git a/vendor/github.com/miniflux/miniflux-go/README.md b/vendor/github.com/miniflux/miniflux-go/README.md index 3b232b4..d1b5cda 100644 --- a/vendor/github.com/miniflux/miniflux-go/README.md +++ b/vendor/github.com/miniflux/miniflux-go/README.md @@ -40,6 +40,21 @@ func main() { return } fmt.Println(feeds) + + // Backup to opml file. + opml, err := client.Export() + if err != nil { + fmt.Println(err) + return + } + + err = ioutil.WriteFile("opml.xml", opml, 0644) + if err != nil { + fmt.Println(err) + return + } + fmt.Println("backup done!") + } ``` diff --git a/vendor/github.com/miniflux/miniflux-go/client.go b/vendor/github.com/miniflux/miniflux-go/client.go index 8440a31..d6036dd 100644 --- a/vendor/github.com/miniflux/miniflux-go/client.go +++ b/vendor/github.com/miniflux/miniflux-go/client.go @@ -7,6 +7,7 @@ package miniflux import ( "encoding/json" "fmt" + "io/ioutil" "net/url" "strconv" ) @@ -213,6 +214,22 @@ func (c *Client) Feeds() (Feeds, error) { return feeds, nil } +// Export creates OPML file. +func (c *Client) Export() ([]byte, error) { + body, err := c.request.Get("/v1/export") + if err != nil { + return nil, err + } + defer body.Close() + + opml, err := ioutil.ReadAll(body) + if err != nil { + return nil, err + } + + return opml, nil +} + // Feed gets a feed. func (c *Client) Feed(feedID int64) (*Feed, error) { body, err := c.request.Get(fmt.Sprintf("/v1/feeds/%d", feedID)) diff --git a/vendor/github.com/miniflux/miniflux-go/miniflux.go b/vendor/github.com/miniflux/miniflux-go/miniflux.go index 9cbdc72..08db2f9 100644 --- a/vendor/github.com/miniflux/miniflux-go/miniflux.go +++ b/vendor/github.com/miniflux/miniflux-go/miniflux.go @@ -18,14 +18,16 @@ const ( // 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"` - LastLoginAt *time.Time `json:"last_login_at"` + 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 { |