From e1149cd1e95154e4e72aca606e5582ad5dcbc7cf Mon Sep 17 00:00:00 2001
From: Matt Baer
Date: Thu, 7 Nov 2019 17:24:04 +0900
Subject: [PATCH 1/3] Fix URLs in CSV exports
This includes the instance's hostname in calls to export a CSV file and
PublicPost.CanonicalURL().
It also fixes a panic in that method during CSV export caused by draft
posts.
---
account.go | 2 +-
export.go | 5 +++--
posts.go | 6 +++---
read.go | 2 +-
4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/account.go b/account.go
index 920fc9d..180e9b0 100644
--- a/account.go
+++ b/account.go
@@ -625,7 +625,7 @@ func viewExportPosts(app *App, w http.ResponseWriter, r *http.Request) ([]byte,
// Export as CSV
if strings.HasSuffix(r.URL.Path, ".csv") {
- data = exportPostsCSV(u, posts)
+ data = exportPostsCSV(app.cfg.App.Host, u, posts)
return data, filename, err
}
if strings.HasSuffix(r.URL.Path, ".zip") {
diff --git a/export.go b/export.go
index 3b5ac49..592bc0c 100644
--- a/export.go
+++ b/export.go
@@ -20,7 +20,7 @@ import (
"github.com/writeas/web-core/log"
)
-func exportPostsCSV(u *User, posts *[]PublicPost) []byte {
+func exportPostsCSV(hostName string, u *User, posts *[]PublicPost) []byte {
var b bytes.Buffer
r := [][]string{
@@ -30,8 +30,9 @@ func exportPostsCSV(u *User, posts *[]PublicPost) []byte {
var blog string
if p.Collection != nil {
blog = p.Collection.Alias
+ p.Collection.hostName = hostName
}
- f := []string{p.ID, p.Slug.String, blog, p.CanonicalURL(), p.Created8601(), p.Title.String, strings.Replace(p.Content, "\n", "\\n", -1)}
+ f := []string{p.ID, p.Slug.String, blog, p.CanonicalURL(hostName), p.Created8601(), p.Title.String, strings.Replace(p.Content, "\n", "\\n", -1)}
r = append(r, f)
}
diff --git a/posts.go b/posts.go
index 1f35eda..d004296 100644
--- a/posts.go
+++ b/posts.go
@@ -1061,9 +1061,9 @@ func (p *Post) processPost() PublicPost {
return *res
}
-func (p *PublicPost) CanonicalURL() string {
+func (p *PublicPost) CanonicalURL(hostName string) string {
if p.Collection == nil || p.Collection.Alias == "" {
- return p.Collection.hostName + "/" + p.ID
+ return hostName + "/" + p.ID
}
return p.Collection.CanonicalURL() + p.Slug.String
}
@@ -1072,7 +1072,7 @@ func (p *PublicPost) ActivityObject(cfg *config.Config) *activitystreams.Object
o := activitystreams.NewArticleObject()
o.ID = p.Collection.FederatedAPIBase() + "api/posts/" + p.ID
o.Published = p.Created
- o.URL = p.CanonicalURL()
+ o.URL = p.CanonicalURL(cfg.App.Host)
o.AttributedTo = p.Collection.FederatedAccount()
o.CC = []string{
p.Collection.FederatedAccount() + "/followers",
diff --git a/read.go b/read.go
index ec0305a..df24621 100644
--- a/read.go
+++ b/read.go
@@ -293,7 +293,7 @@ func viewLocalTimelineFeed(app *App, w http.ResponseWriter, req *http.Request) e
}
title = p.PlainDisplayTitle()
- permalink = p.CanonicalURL()
+ permalink = p.CanonicalURL(app.cfg.App.Host)
if p.Collection != nil {
author = p.Collection.Title
} else {
From c0b75f6b65e375b04a100ca6b9963e579d4282d5 Mon Sep 17 00:00:00 2001
From: Rob Loranger
Date: Fri, 8 Nov 2019 08:47:03 -0800
Subject: [PATCH 2/3] pass hostname to canonical url in post templates
the change to take a hostname in Post.CanonicalURL broke a few template
using that function. This adds a Hostname string to the Post being
passed to templates and passes it to calls to Post.CanonicalURL
---
posts.go | 2 ++
templates/chorus-collection-post.tmpl | 6 +++---
templates/chorus-collection.tmpl | 2 +-
templates/collection-post.tmpl | 6 +++---
templates/collection-tags.tmpl | 2 +-
templates/collection.tmpl | 2 +-
templates/read.tmpl | 8 ++++----
7 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/posts.go b/posts.go
index d004296..6cb76a2 100644
--- a/posts.go
+++ b/posts.go
@@ -1380,12 +1380,14 @@ Are you sure it was ever here?`,
IsFound bool
IsAdmin bool
CanInvite bool
+ Hostname string
}{
PublicPost: p,
StaticPage: pageForReq(app, r),
IsOwner: cr.isCollOwner,
IsCustomDomain: cr.isCustomDomain,
IsFound: postFound,
+ Hostname: app.cfg.App.Host,
}
tp.IsAdmin = u != nil && u.IsAdmin()
tp.CanInvite = canUserInvite(app.cfg, tp.IsAdmin)
diff --git a/templates/chorus-collection-post.tmpl b/templates/chorus-collection-post.tmpl
index bab2e31..d229c62 100644
--- a/templates/chorus-collection-post.tmpl
+++ b/templates/chorus-collection-post.tmpl
@@ -8,7 +8,7 @@
-
+
@@ -25,7 +25,7 @@
-
+
{{range .Images}}{{else}}{{end}}
@@ -77,7 +77,7 @@ article time.dt-published {
diff --git a/templates/chorus-collection.tmpl b/templates/chorus-collection.tmpl
index e36d3b5..ebee403 100644
--- a/templates/chorus-collection.tmpl
+++ b/templates/chorus-collection.tmpl
@@ -68,7 +68,7 @@ body#collection header nav.tabs a:first-child {
{{/*end*/}}
{{if .PinnedPosts}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
{{end}}
diff --git a/templates/collection-post.tmpl b/templates/collection-post.tmpl
index 7075226..a4084b3 100644
--- a/templates/collection-post.tmpl
+++ b/templates/collection-post.tmpl
@@ -9,7 +9,7 @@
{{ if .IsFound }}
-
+
@@ -26,7 +26,7 @@
-
+
{{range .Images}}{{else}}{{end}}
@@ -50,7 +50,7 @@
{{end}}
diff --git a/templates/read.tmpl b/templates/read.tmpl
index 9541ab5..91fbeb4 100644
--- a/templates/read.tmpl
+++ b/templates/read.tmpl
@@ -87,17 +87,17 @@
{{ if gt (len .Posts) 0 }}
{{ else }}
From f66d5bf1e8fa35330f52c2bb6b58f9720831029b Mon Sep 17 00:00:00 2001
From: Rob Loranger
Date: Sat, 9 Nov 2019 11:41:39 -0800
Subject: [PATCH 3/3] use .Host instead of adding .Hostname
---
posts.go | 2 --
templates/chorus-collection-post.tmpl | 6 +++---
templates/chorus-collection.tmpl | 2 +-
templates/collection-post.tmpl | 6 +++---
templates/collection-tags.tmpl | 2 +-
templates/collection.tmpl | 2 +-
templates/read.tmpl | 8 ++++----
7 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/posts.go b/posts.go
index 6cb76a2..d004296 100644
--- a/posts.go
+++ b/posts.go
@@ -1380,14 +1380,12 @@ Are you sure it was ever here?`,
IsFound bool
IsAdmin bool
CanInvite bool
- Hostname string
}{
PublicPost: p,
StaticPage: pageForReq(app, r),
IsOwner: cr.isCollOwner,
IsCustomDomain: cr.isCustomDomain,
IsFound: postFound,
- Hostname: app.cfg.App.Host,
}
tp.IsAdmin = u != nil && u.IsAdmin()
tp.CanInvite = canUserInvite(app.cfg, tp.IsAdmin)
diff --git a/templates/chorus-collection-post.tmpl b/templates/chorus-collection-post.tmpl
index d229c62..18fb632 100644
--- a/templates/chorus-collection-post.tmpl
+++ b/templates/chorus-collection-post.tmpl
@@ -8,7 +8,7 @@
-
+
@@ -25,7 +25,7 @@
-
+
{{range .Images}}{{else}}{{end}}
@@ -77,7 +77,7 @@ article time.dt-published {
{{if .PinnedPosts}}
- {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
{{end}}
diff --git a/templates/chorus-collection.tmpl b/templates/chorus-collection.tmpl
index ebee403..14d5fbd 100644
--- a/templates/chorus-collection.tmpl
+++ b/templates/chorus-collection.tmpl
@@ -68,7 +68,7 @@ body#collection header nav.tabs a:first-child {
{{/*end*/}}
{{if .PinnedPosts}}
- {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
{{end}}
diff --git a/templates/collection-post.tmpl b/templates/collection-post.tmpl
index a4084b3..4af5cb8 100644
--- a/templates/collection-post.tmpl
+++ b/templates/collection-post.tmpl
@@ -9,7 +9,7 @@
{{ if .IsFound }}
-
+
@@ -26,7 +26,7 @@
-
+
{{range .Images}}{{else}}{{end}}
@@ -50,7 +50,7 @@
{{if .PinnedPosts}}
- {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
{{end}}
{{ if and .IsOwner .IsFound }}{{largeNumFmt .Views}} {{pluralize "view" "views" .Views}}
Edit
diff --git a/templates/collection-tags.tmpl b/templates/collection-tags.tmpl
index 039e071..ff9c2b9 100644
--- a/templates/collection-tags.tmpl
+++ b/templates/collection-tags.tmpl
@@ -48,7 +48,7 @@
{{if .PinnedPosts}}
- {{range .PinnedPosts}}{{.DisplayTitle}}{{end}}
+ {{range .PinnedPosts}}{{.DisplayTitle}}{{end}}
{{end}}
diff --git a/templates/collection.tmpl b/templates/collection.tmpl
index fa66f69..34eb076 100644
--- a/templates/collection.tmpl
+++ b/templates/collection.tmpl
@@ -68,7 +68,7 @@
{{/*end*/}}
{{if .PinnedPosts}}
- {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}}{{end}}
{{end}}
diff --git a/templates/read.tmpl b/templates/read.tmpl
index 91fbeb4..f1cbf29 100644
--- a/templates/read.tmpl
+++ b/templates/read.tmpl
@@ -87,17 +87,17 @@
{{ if gt (len .Posts) 0 }}
{{ else }}