specify banner: in profile

Ted Unangst 2 years ago
parent 2c70095ee3
commit f83d2a086b

@ -1539,6 +1539,13 @@ func junkuser(user *WhatAbout) junk.Junk {
a["url"] = u a["url"] = u
} }
j["icon"] = a j["icon"] = a
if ban := user.Options.Banner; ban != "" {
a := junk.New()
a["type"] = "Image"
a["mediaType"] = "image/jpg"
a["url"] = ban
j["image"] = a
}
} else { } else {
j["type"] = "Service" j["type"] = "Service"
} }

@ -2,6 +2,8 @@ changelog
=== next === next
+ Specify banner: image in profile.
+ Update activity compatibility with mastodon. + Update activity compatibility with mastodon.
- Signed fetch. - Signed fetch.

@ -178,6 +178,8 @@ meme collection by adding
.Dq avatar: filename.png .Dq avatar: filename.png
to one's profile info. to one's profile info.
If truly necessary. If truly necessary.
A banner may be set by specifying
.Dq banner: image.jpg .
See See
.Xr honk 8 .Xr honk 8
for more about the funzone. for more about the funzone.

@ -419,6 +419,7 @@ func herdofemus(noise string) []Emu {
var re_memes = regexp.MustCompile("meme: ?([^\n]+)") var re_memes = regexp.MustCompile("meme: ?([^\n]+)")
var re_avatar = regexp.MustCompile("avatar: ?([^\n]+)") var re_avatar = regexp.MustCompile("avatar: ?([^\n]+)")
var re_banner = regexp.MustCompile("banner: ?([^\n]+)")
func memetize(honk *Honk) { func memetize(honk *Honk) {
repl := func(x string) string { repl := func(x string) string {

@ -56,6 +56,7 @@ type UserOptions struct {
Avahex bool `json:",omitempty"` Avahex bool `json:",omitempty"`
MentionAll bool `json:",omitempty"` MentionAll bool `json:",omitempty"`
Avatar string `json:",omitempty"` Avatar string `json:",omitempty"`
Banner string `json:",omitempty"`
MapLink string `json:",omitempty"` MapLink string `json:",omitempty"`
Reaction string `json:",omitempty"` Reaction string `json:",omitempty"`
MeCount int64 MeCount int64

@ -1147,6 +1147,19 @@ func saveuser(w http.ResponseWriter, r *http.Request) {
options.Avatar = ava options.Avatar = ava
sendupdate = true sendupdate = true
} }
ban := re_banner.FindString(whatabout)
if ban != "" {
whatabout = re_banner.ReplaceAllString(whatabout, "")
ban = ban[7:]
if ban[0] == ' ' {
ban = ban[1:]
}
ban = fmt.Sprintf("https://%s/meme/%s", serverName, ban)
}
if ban != options.Banner {
options.Banner = ban
sendupdate = true
}
whatabout = strings.TrimSpace(whatabout) whatabout = strings.TrimSpace(whatabout)
if whatabout != user.About { if whatabout != user.About {
sendupdate = true sendupdate = true
@ -2017,6 +2030,9 @@ func accountpage(w http.ResponseWriter, r *http.Request) {
if ava := user.Options.Avatar; ava != "" { if ava := user.Options.Avatar; ava != "" {
about += "\n\navatar: " + ava[strings.LastIndexByte(ava, '/')+1:] about += "\n\navatar: " + ava[strings.LastIndexByte(ava, '/')+1:]
} }
if ban := user.Options.Banner; ban != "" {
about += "\n\nbanner: " + ban[strings.LastIndexByte(ban, '/')+1:]
}
templinfo["WhatAbout"] = about templinfo["WhatAbout"] = about
err := readviews.Execute(w, "account.html", templinfo) err := readviews.Execute(w, "account.html", templinfo)
if err != nil { if err != nil {

Loading…
Cancel
Save