summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--vendor/github.com/gorilla/feeds/.editorconfig20
-rw-r--r--vendor/github.com/gorilla/feeds/.gitignore1
-rw-r--r--vendor/github.com/gorilla/feeds/.travis.yml16
-rw-r--r--vendor/github.com/gorilla/feeds/AUTHORS29
-rw-r--r--vendor/github.com/gorilla/feeds/LICENSE40
-rw-r--r--vendor/github.com/gorilla/feeds/Makefile34
-rw-r--r--vendor/github.com/gorilla/feeds/README.md25
-rw-r--r--vendor/github.com/gorilla/feeds/atom.go31
-rw-r--r--vendor/github.com/gorilla/feeds/json.go41
-rw-r--r--vendor/github.com/gorilla/feeds/rss.go10
-rw-r--r--vendor/modules.txt4
13 files changed, 154 insertions, 103 deletions
diff --git a/go.mod b/go.mod
index b7cd1a8f5..51c3ffe3f 100644
--- a/go.mod
+++ b/go.mod
@@ -31,7 +31,7 @@ require (
github.com/go-fed/httpsig v1.1.0
github.com/go-playground/form/v4 v4.2.1
github.com/google/uuid v1.4.0
- github.com/gorilla/feeds v1.1.1
+ github.com/gorilla/feeds v1.1.2
github.com/gorilla/websocket v1.5.1
github.com/h2non/filetype v1.1.3
github.com/jackc/pgx/v5 v5.5.0
diff --git a/go.sum b/go.sum
index b300003c7..fd5df8b47 100644
--- a/go.sum
+++ b/go.sum
@@ -318,8 +318,8 @@ github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
-github.com/gorilla/feeds v1.1.1 h1:HwKXxqzcRNg9to+BbvJog4+f3s/xzvtZXICcQGutYfY=
-github.com/gorilla/feeds v1.1.1/go.mod h1:Nk0jZrvPFZX1OBe5NPiddPw7CfwF6Q9eqzaBbaightA=
+github.com/gorilla/feeds v1.1.2 h1:pxzZ5PD3RJdhFH2FsJJ4x6PqMqbgFk1+Vez4XWBW8Iw=
+github.com/gorilla/feeds v1.1.2/go.mod h1:WMib8uJP3BbY+X8Szd1rA5Pzhdfh+HCCAYT2z7Fza6Y=
github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
diff --git a/vendor/github.com/gorilla/feeds/.editorconfig b/vendor/github.com/gorilla/feeds/.editorconfig
new file mode 100644
index 000000000..2940ec92a
--- /dev/null
+++ b/vendor/github.com/gorilla/feeds/.editorconfig
@@ -0,0 +1,20 @@
+; https://editorconfig.org/
+
+root = true
+
+[*]
+insert_final_newline = true
+charset = utf-8
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 2
+
+[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
+indent_style = tab
+indent_size = 4
+
+[*.md]
+indent_size = 4
+trim_trailing_whitespace = false
+
+eclint_indent_style = unset
diff --git a/vendor/github.com/gorilla/feeds/.gitignore b/vendor/github.com/gorilla/feeds/.gitignore
new file mode 100644
index 000000000..84039fec6
--- /dev/null
+++ b/vendor/github.com/gorilla/feeds/.gitignore
@@ -0,0 +1 @@
+coverage.coverprofile
diff --git a/vendor/github.com/gorilla/feeds/.travis.yml b/vendor/github.com/gorilla/feeds/.travis.yml
deleted file mode 100644
index 7939a2186..000000000
--- a/vendor/github.com/gorilla/feeds/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-language: go
-sudo: false
-matrix:
- include:
- - go: 1.8
- - go: 1.9
- - go: "1.10"
- - go: 1.x
- - go: tip
- allow_failures:
- - go: tip
-script:
- - go get -t -v ./...
- - diff -u <(echo -n) <(gofmt -d -s .)
- - go vet .
- - go test -v -race ./...
diff --git a/vendor/github.com/gorilla/feeds/AUTHORS b/vendor/github.com/gorilla/feeds/AUTHORS
deleted file mode 100644
index 2c28cf943..000000000
--- a/vendor/github.com/gorilla/feeds/AUTHORS
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is the official list of gorilla/feeds authors for copyright purposes.
-# Please keep the list sorted.
-
-Dmitry Chestnykh <dmitry@codingrobots.com>
-Eddie Scholtz <eascholtz@gmail.com>
-Gabriel Simmer <bladesimmer@gmail.com>
-Google LLC (https://opensource.google.com/)
-honky <honky@defendtheplanet.net>
-James Gregory <james@jagregory.com>
-Jason Hall <imjasonh@gmail.com>
-Jason Moiron <jmoiron@jmoiron.net>
-Kamil Kisiel <kamil@kamilkisiel.net>
-Kevin Stock <kevinstock@tantalic.com>
-Markus Zimmermann <markus.zimmermann@nethead.at>
-Matt Silverlock <matt@eatsleeprepeat.net>
-Matthew Dawson <matthew@mjdsystems.ca>
-Milan Aleksic <milanaleksic@gmail.com>
-Milan Aleksić <milanaleksic@gmail.com>
-nlimpid <jshuangzl@gmail.com>
-Paul Petring <paul@defendtheplanet.net>
-Sean Enck <enckse@users.noreply.github.com>
-Sue Spence <virtuallysue@gmail.com>
-Supermighty <ukiah@faction.com>
-Toru Fukui <fukuimone@gmail.com>
-Vabd <vabd@anon.acme>
-Volker <lists.volker@gmail.com>
-ZhiFeng Hu <hufeng1987@gmail.com>
-weberc2 <weberc2@gmail.com>
-
diff --git a/vendor/github.com/gorilla/feeds/LICENSE b/vendor/github.com/gorilla/feeds/LICENSE
index e24412d56..ee0d53cef 100644
--- a/vendor/github.com/gorilla/feeds/LICENSE
+++ b/vendor/github.com/gorilla/feeds/LICENSE
@@ -1,22 +1,28 @@
-Copyright (c) 2013-2018 The Gorilla Feeds Authors. All rights reserved.
+Copyright (c) 2023 The Gorilla Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
+modification, are permitted provided that the following conditions are
+met:
- Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
- Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/vendor/github.com/gorilla/feeds/Makefile b/vendor/github.com/gorilla/feeds/Makefile
new file mode 100644
index 000000000..ac37ffd32
--- /dev/null
+++ b/vendor/github.com/gorilla/feeds/Makefile
@@ -0,0 +1,34 @@
+GO_LINT=$(shell which golangci-lint 2> /dev/null || echo '')
+GO_LINT_URI=github.com/golangci/golangci-lint/cmd/golangci-lint@latest
+
+GO_SEC=$(shell which gosec 2> /dev/null || echo '')
+GO_SEC_URI=github.com/securego/gosec/v2/cmd/gosec@latest
+
+GO_VULNCHECK=$(shell which govulncheck 2> /dev/null || echo '')
+GO_VULNCHECK_URI=golang.org/x/vuln/cmd/govulncheck@latest
+
+.PHONY: golangci-lint
+golangci-lint:
+ $(if $(GO_LINT), ,go install $(GO_LINT_URI))
+ @echo "##### Running golangci-lint"
+ golangci-lint run -v
+
+.PHONY: gosec
+gosec:
+ $(if $(GO_SEC), ,go install $(GO_SEC_URI))
+ @echo "##### Running gosec"
+ gosec ./...
+
+.PHONY: govulncheck
+govulncheck:
+ $(if $(GO_VULNCHECK), ,go install $(GO_VULNCHECK_URI))
+ @echo "##### Running govulncheck"
+ govulncheck ./...
+
+.PHONY: verify
+verify: golangci-lint gosec govulncheck
+
+.PHONY: test
+test:
+ @echo "##### Running tests"
+ go test -race -cover -coverprofile=coverage.coverprofile -covermode=atomic -v ./...
diff --git a/vendor/github.com/gorilla/feeds/README.md b/vendor/github.com/gorilla/feeds/README.md
index 4d733cf53..7d7137b46 100644
--- a/vendor/github.com/gorilla/feeds/README.md
+++ b/vendor/github.com/gorilla/feeds/README.md
@@ -1,6 +1,10 @@
## gorilla/feeds
-[![GoDoc](https://godoc.org/github.com/gorilla/feeds?status.svg)](https://godoc.org/github.com/gorilla/feeds)
-[![Build Status](https://travis-ci.org/gorilla/feeds.svg?branch=master)](https://travis-ci.org/gorilla/feeds)
+![testing](https://github.com/gorilla/feeds/actions/workflows/test.yml/badge.svg)
+[![codecov](https://codecov.io/github/gorilla/feeds/branch/main/graph/badge.svg)](https://codecov.io/github/gorilla/feeds)
+[![godoc](https://godoc.org/github.com/gorilla/feeds?status.svg)](https://godoc.org/github.com/gorilla/feeds)
+[![sourcegraph](https://sourcegraph.com/github.com/gorilla/feeds/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/feeds?badge)
+
+![Gorilla Logo](https://github.com/gorilla/.github/assets/53367916/d92caabf-98e0-473e-bfbf-ab554ba435e5)
feeds is a web feed generator library for generating RSS, Atom and JSON feeds from Go
applications.
@@ -13,7 +17,7 @@ applications.
[atom]: https://tools.ietf.org/html/rfc4287
[rss]: http://www.rssboard.org/rss-specification
-[jsonfeed]: https://jsonfeed.org/version/1
+[jsonfeed]: https://jsonfeed.org/version/1.1
### Usage
@@ -147,13 +151,18 @@ Outputs:
</rss>
{
- "version": "https://jsonfeed.org/version/1",
+ "version": "https://jsonfeed.org/version/1.1",
"title": "jmoiron.net blog",
"home_page_url": "http://jmoiron.net/blog",
"description": "discussion about tech, footie, photos",
"author": {
"name": "Jason Moiron"
},
+ "authors": [
+ {
+ "name": "Jason Moiron"
+ }
+ ],
"items": [
{
"id": "",
@@ -163,7 +172,12 @@ Outputs:
"date_published": "2013-01-16T03:22:24.530817846-05:00",
"author": {
"name": "Jason Moiron"
- }
+ },
+ "authors": [
+ {
+ "name": "Jason Moiron"
+ }
+ ]
},
{
"id": "",
@@ -182,4 +196,3 @@ Outputs:
]
}
```
-
diff --git a/vendor/github.com/gorilla/feeds/atom.go b/vendor/github.com/gorilla/feeds/atom.go
index 7196f4781..73de995c1 100644
--- a/vendor/github.com/gorilla/feeds/atom.go
+++ b/vendor/github.com/gorilla/feeds/atom.go
@@ -89,15 +89,16 @@ type Atom struct {
func newAtomEntry(i *Item) *AtomEntry {
id := i.Id
- // assume the description is html
- s := &AtomSummary{Content: i.Description, Type: "html"}
-
+ link := i.Link
+ if link == nil {
+ link = &Link{}
+ }
if len(id) == 0 {
// if there's no id set, try to create one, either from data or just a uuid
- if len(i.Link.Href) > 0 && (!i.Created.IsZero() || !i.Updated.IsZero()) {
+ if len(link.Href) > 0 && (!i.Created.IsZero() || !i.Updated.IsZero()) {
dateStr := anyTimeFormat("2006-01-02", i.Updated, i.Created)
- host, path := i.Link.Href, "/invalid.html"
- if url, err := url.Parse(i.Link.Href); err == nil {
+ host, path := link.Href, "/invalid.html"
+ if url, err := url.Parse(link.Href); err == nil {
host, path = url.Host, url.Path
}
id = fmt.Sprintf("tag:%s,%s:%s", host, dateStr, path)
@@ -110,16 +111,20 @@ func newAtomEntry(i *Item) *AtomEntry {
name, email = i.Author.Name, i.Author.Email
}
- link_rel := i.Link.Rel
+ link_rel := link.Rel
if link_rel == "" {
link_rel = "alternate"
}
x := &AtomEntry{
Title: i.Title,
- Links: []AtomLink{{Href: i.Link.Href, Rel: link_rel, Type: i.Link.Type}},
+ Links: []AtomLink{{Href: link.Href, Rel: link_rel, Type: link.Type}},
Id: id,
Updated: anyTimeFormat(time.RFC3339, i.Updated, i.Created),
- Summary: s,
+ }
+
+ // if there's a description, assume it's html
+ if len(i.Description) > 0 {
+ x.Summary = &AtomSummary{Content: i.Description, Type: "html"}
}
// if there's a content, assume it's html
@@ -140,12 +145,16 @@ func newAtomEntry(i *Item) *AtomEntry {
// create a new AtomFeed with a generic Feed struct's data
func (a *Atom) AtomFeed() *AtomFeed {
updated := anyTimeFormat(time.RFC3339, a.Updated, a.Created)
+ link := a.Link
+ if link == nil {
+ link = &Link{}
+ }
feed := &AtomFeed{
Xmlns: ns,
Title: a.Title,
- Link: &AtomLink{Href: a.Link.Href, Rel: a.Link.Rel},
+ Link: &AtomLink{Href: link.Href, Rel: link.Rel},
Subtitle: a.Description,
- Id: a.Link.Href,
+ Id: link.Href,
Updated: updated,
Rights: a.Copyright,
}
diff --git a/vendor/github.com/gorilla/feeds/json.go b/vendor/github.com/gorilla/feeds/json.go
index 75a82fd62..ae5deb76d 100644
--- a/vendor/github.com/gorilla/feeds/json.go
+++ b/vendor/github.com/gorilla/feeds/json.go
@@ -6,7 +6,7 @@ import (
"time"
)
-const jsonFeedVersion = "https://jsonfeed.org/version/1"
+const jsonFeedVersion = "https://jsonfeed.org/version/1.1"
// JSONAuthor represents the author of the feed or of an individual item
// in the feed
@@ -77,7 +77,8 @@ type JSONItem struct {
BannerImage string `json:"banner_,omitempty"`
PublishedDate *time.Time `json:"date_published,omitempty"`
ModifiedDate *time.Time `json:"date_modified,omitempty"`
- Author *JSONAuthor `json:"author,omitempty"`
+ Author *JSONAuthor `json:"author,omitempty"` // deprecated in JSON Feed v1.1, keeping for backwards compatibility
+ Authors []*JSONAuthor `json:"authors,omitempty"`
Tags []string `json:"tags,omitempty"`
Attachments []JSONAttachment `json:"attachments,omitempty"`
}
@@ -92,19 +93,21 @@ type JSONHub struct {
// JSONFeed represents a syndication feed in the JSON Feed Version 1 format.
// Matching the specification found here: https://jsonfeed.org/version/1.
type JSONFeed struct {
- Version string `json:"version"`
- Title string `json:"title"`
- HomePageUrl string `json:"home_page_url,omitempty"`
- FeedUrl string `json:"feed_url,omitempty"`
- Description string `json:"description,omitempty"`
- UserComment string `json:"user_comment,omitempty"`
- NextUrl string `json:"next_url,omitempty"`
- Icon string `json:"icon,omitempty"`
- Favicon string `json:"favicon,omitempty"`
- Author *JSONAuthor `json:"author,omitempty"`
- Expired *bool `json:"expired,omitempty"`
- Hubs []*JSONItem `json:"hubs,omitempty"`
- Items []*JSONItem `json:"items,omitempty"`
+ Version string `json:"version"`
+ Title string `json:"title"`
+ Language string `json:"language,omitempty"`
+ HomePageUrl string `json:"home_page_url,omitempty"`
+ FeedUrl string `json:"feed_url,omitempty"`
+ Description string `json:"description,omitempty"`
+ UserComment string `json:"user_comment,omitempty"`
+ NextUrl string `json:"next_url,omitempty"`
+ Icon string `json:"icon,omitempty"`
+ Favicon string `json:"favicon,omitempty"`
+ Author *JSONAuthor `json:"author,omitempty"` // deprecated in JSON Feed v1.1, keeping for backwards compatibility
+ Authors []*JSONAuthor `json:"authors,omitempty"`
+ Expired *bool `json:"expired,omitempty"`
+ Hubs []*JSONHub `json:"hubs,omitempty"`
+ Items []*JSONItem `json:"items,omitempty"`
}
// JSON is used to convert a generic Feed to a JSONFeed.
@@ -139,9 +142,11 @@ func (f *JSON) JSONFeed() *JSONFeed {
feed.HomePageUrl = f.Link.Href
}
if f.Author != nil {
- feed.Author = &JSONAuthor{
+ author := &JSONAuthor{
Name: f.Author.Name,
}
+ feed.Author = author
+ feed.Authors = []*JSONAuthor{author}
}
for _, e := range f.Items {
feed.Items = append(feed.Items, newJSONItem(e))
@@ -165,9 +170,11 @@ func newJSONItem(i *Item) *JSONItem {
item.ExternalUrl = i.Source.Href
}
if i.Author != nil {
- item.Author = &JSONAuthor{
+ author := &JSONAuthor{
Name: i.Author.Name,
}
+ item.Author = author
+ item.Authors = []*JSONAuthor{author}
}
if !i.Created.IsZero() {
item.PublishedDate = &i.Created
diff --git a/vendor/github.com/gorilla/feeds/rss.go b/vendor/github.com/gorilla/feeds/rss.go
index 09179dfb2..8c227a8b7 100644
--- a/vendor/github.com/gorilla/feeds/rss.go
+++ b/vendor/github.com/gorilla/feeds/rss.go
@@ -95,11 +95,13 @@ type Rss struct {
func newRssItem(i *Item) *RssItem {
item := &RssItem{
Title: i.Title,
- Link: i.Link.Href,
Description: i.Description,
Guid: i.Id,
PubDate: anyTimeFormat(time.RFC1123Z, i.Created, i.Updated),
}
+ if i.Link != nil {
+ item.Link = i.Link.Href
+ }
if len(i.Content) > 0 {
item.Content = &RssContent{Content: i.Content}
}
@@ -135,9 +137,13 @@ func (r *Rss) RssFeed() *RssFeed {
image = &RssImage{Url: r.Image.Url, Title: r.Image.Title, Link: r.Image.Link, Width: r.Image.Width, Height: r.Image.Height}
}
+ var href string
+ if r.Link != nil {
+ href = r.Link.Href
+ }
channel := &RssFeed{
Title: r.Title,
- Link: r.Link.Href,
+ Link: href,
Description: r.Description,
ManagingEditor: author,
PubDate: pub,
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 32ae1af05..fb73dc7d8 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -278,8 +278,8 @@ github.com/gorilla/context
# github.com/gorilla/css v1.0.0
## explicit
github.com/gorilla/css/scanner
-# github.com/gorilla/feeds v1.1.1
-## explicit
+# github.com/gorilla/feeds v1.1.2
+## explicit; go 1.20
github.com/gorilla/feeds
# github.com/gorilla/securecookie v1.1.1
## explicit