mirror of https://github.com/jlelse/GoBlog
Show comment threads
This commit is contained in:
parent
8baf4877c1
commit
5760355769
|
@ -1,18 +1,9 @@
|
||||||
{{ define "interactions" }}
|
{{ define "interactions" }}
|
||||||
<details class="p" id="interactions">
|
<details class="p" id="interactions">
|
||||||
<summary><b>{{ string .Blog.Lang "interactions" }}</b></summary>
|
<summary><b>{{ string .Blog.Lang "interactions" }}</b></summary>
|
||||||
|
{{ $rd := . }}
|
||||||
{{ with ( mentions .Canonical ) }}
|
{{ with ( mentions .Canonical ) }}
|
||||||
<ul>
|
{{ include "mentions" $rd . }}
|
||||||
{{ range $i, $mention := . }}
|
|
||||||
<li><a href="{{$mention.Source}}" target="_blank" rel="nofollow noopener noreferrer ugc">
|
|
||||||
{{ if $mention.Author }}
|
|
||||||
{{ $mention.Author }}
|
|
||||||
{{ else }}
|
|
||||||
{{ $mention.Source }}
|
|
||||||
{{ end }}
|
|
||||||
</a>{{ with $mention.Title }} <b>{{.}}</b>{{ end }}{{ with $mention.Content }} <i>{{.}}</i>{{ end }}</li>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<form class="fw p" method="post" action="/webmention">
|
<form class="fw p" method="post" action="/webmention">
|
||||||
<label for="wm-source" class="p">{{ string .Blog.Lang "interactionslabel" }}</label>
|
<label for="wm-source" class="p">{{ string .Blog.Lang "interactionslabel" }}</label>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
{{ define "mentions" }}
|
||||||
|
{{ $rd := . }}
|
||||||
|
<ul>
|
||||||
|
{{ range $i, $mention := .Data }}
|
||||||
|
<li>
|
||||||
|
<a href="{{$mention.Source}}" target="_blank" rel="nofollow noopener noreferrer ugc">
|
||||||
|
{{ if $mention.Author }}
|
||||||
|
{{ $mention.Author }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $mention.Source }}
|
||||||
|
{{ end }}
|
||||||
|
</a>
|
||||||
|
{{ with $mention.Title }} <b>{{.}}</b>{{ end }}
|
||||||
|
{{ with $mention.Content }} <i>{{.}}</i>{{ end }}
|
||||||
|
{{ with $mention.Submentions }}{{ include "mentions" $rd . }}{{ end }}
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ end }}
|
|
@ -21,15 +21,16 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type mention struct {
|
type mention struct {
|
||||||
ID int
|
ID int
|
||||||
Source string
|
Source string
|
||||||
NewSource string
|
NewSource string
|
||||||
Target string
|
Target string
|
||||||
Created int64
|
Created int64
|
||||||
Title string
|
Title string
|
||||||
Content string
|
Content string
|
||||||
Author string
|
Author string
|
||||||
Status webmentionStatus
|
Status webmentionStatus
|
||||||
|
Submentions []*mention
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *goBlog) initWebmention() {
|
func (a *goBlog) initWebmention() {
|
||||||
|
@ -156,6 +157,7 @@ type webmentionsRequestConfig struct {
|
||||||
id int
|
id int
|
||||||
asc bool
|
asc bool
|
||||||
offset, limit int
|
offset, limit int
|
||||||
|
submentions bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildWebmentionsQuery(config *webmentionsRequestConfig) (query string, args []interface{}) {
|
func buildWebmentionsQuery(config *webmentionsRequestConfig) (query string, args []interface{}) {
|
||||||
|
@ -206,6 +208,17 @@ func (db *database) getWebmentions(config *webmentionsRequestConfig) ([]*mention
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if config.submentions {
|
||||||
|
m.Submentions, err = db.getWebmentions(&webmentionsRequestConfig{
|
||||||
|
target: m.Source,
|
||||||
|
submentions: true,
|
||||||
|
asc: config.asc,
|
||||||
|
status: config.status,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
mentions = append(mentions, m)
|
mentions = append(mentions, m)
|
||||||
}
|
}
|
||||||
return mentions, nil
|
return mentions, nil
|
||||||
|
@ -213,9 +226,10 @@ func (db *database) getWebmentions(config *webmentionsRequestConfig) ([]*mention
|
||||||
|
|
||||||
func (db *database) getWebmentionsByAddress(address string) []*mention {
|
func (db *database) getWebmentionsByAddress(address string) []*mention {
|
||||||
mentions, _ := db.getWebmentions(&webmentionsRequestConfig{
|
mentions, _ := db.getWebmentions(&webmentionsRequestConfig{
|
||||||
target: address,
|
target: address,
|
||||||
status: webmentionStatusApproved,
|
status: webmentionStatusApproved,
|
||||||
asc: true,
|
asc: true,
|
||||||
|
submentions: true,
|
||||||
})
|
})
|
||||||
return mentions
|
return mentions
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue