add unread count for chatter
This commit is contained in:
parent
9752faf404
commit
f547153ecc
41
database.go
41
database.go
|
@ -596,12 +596,53 @@ func savechonk(ch *Chonk) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = tx.Commit()
|
err = tx.Commit()
|
||||||
|
chatplusone(ch.UserID)
|
||||||
} else {
|
} else {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func chatplusone(userid int64) {
|
||||||
|
var user *WhatAbout
|
||||||
|
ok := somenumberedusers.Get(userid, &user)
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
options := user.Options
|
||||||
|
options.Chats += 1
|
||||||
|
j, err := jsonify(options)
|
||||||
|
if err == nil {
|
||||||
|
db := opendatabase()
|
||||||
|
_, err = db.Exec("update users set options = ? where username = ?", j, user.Name)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("error plussing chat: %s", err)
|
||||||
|
}
|
||||||
|
somenamedusers.Clear(user.Name)
|
||||||
|
somenumberedusers.Clear(user.ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func chatnewnone(userid int64) {
|
||||||
|
var user *WhatAbout
|
||||||
|
ok := somenumberedusers.Get(userid, &user)
|
||||||
|
if !ok || user.Options.Chats == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
options := user.Options
|
||||||
|
options.Chats = 0
|
||||||
|
j, err := jsonify(options)
|
||||||
|
if err == nil {
|
||||||
|
db := opendatabase()
|
||||||
|
_, err = db.Exec("update users set options = ? where username = ?", j, user.Name)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("error noneing chat: %s", err)
|
||||||
|
}
|
||||||
|
somenamedusers.Clear(user.Name)
|
||||||
|
somenumberedusers.Clear(user.ID)
|
||||||
|
}
|
||||||
|
|
||||||
func loadchatter(userid int64) []*Chatter {
|
func loadchatter(userid int64) []*Chatter {
|
||||||
duedt := time.Now().Add(-3 * 24 * time.Hour).UTC().Format(dbtimeformat)
|
duedt := time.Now().Add(-3 * 24 * time.Hour).UTC().Format(dbtimeformat)
|
||||||
rows, err := stmtLoadChonks.Query(userid, duedt)
|
rows, err := stmtLoadChonks.Query(userid, duedt)
|
||||||
|
|
|
@ -2,6 +2,8 @@ changelog
|
||||||
|
|
||||||
=== next
|
=== next
|
||||||
|
|
||||||
|
+ Unread count for chatter.
|
||||||
|
|
||||||
+ More flexible hashtag characters.
|
+ More flexible hashtag characters.
|
||||||
|
|
||||||
+ Fix the memetizer to work in more environments.
|
+ Fix the memetizer to work in more environments.
|
||||||
|
|
1
honk.go
1
honk.go
|
@ -55,6 +55,7 @@ type UserOptions struct {
|
||||||
MapLink string `json:",omitempty"`
|
MapLink string `json:",omitempty"`
|
||||||
Reaction string `json:",omitempty"`
|
Reaction string `json:",omitempty"`
|
||||||
MentionAll bool
|
MentionAll bool
|
||||||
|
Chats int
|
||||||
}
|
}
|
||||||
|
|
||||||
type KeyInfo struct {
|
type KeyInfo struct {
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<header>
|
<header>
|
||||||
{{ if .UserInfo }}
|
{{ if .UserInfo }}
|
||||||
<details id="topmenu">
|
<details id="topmenu">
|
||||||
<summary>menu<span> {{ .UserInfo.Username }}</span></summary>
|
<summary>menu<span> {{ .UserInfo.Name }}</span></summary>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a id="homelink" href="/">home</a>
|
<li><a id="homelink" href="/">home</a>
|
||||||
<li><a id="atmelink" href="/atme">@me</a>
|
<li><a id="atmelink" href="/atme">@me</a>
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</details>
|
</details>
|
||||||
<li><a href="/chatter">chatter</a>
|
<li><a href="/chatter">chatter{{ if .UserInfo.Options.Chats }} ({{ .UserInfo.Options.Chats }}){{ end }}</a>
|
||||||
<li><a href="/o">tags</a>
|
<li><a href="/o">tags</a>
|
||||||
<li><a href="/events">events</a>
|
<li><a href="/events">events</a>
|
||||||
<li><a id="longagolink" href="/longago">long ago</a>
|
<li><a id="longagolink" href="/longago">long ago</a>
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<details>
|
<details>
|
||||||
<summary>more stuff</summary>
|
<summary>more stuff</summary>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/{{ .UserSep }}/{{ .UserInfo.Username }}">my honks</a>
|
<li><a href="/{{ .UserSep }}/{{ .UserInfo.Name }}">my honks</a>
|
||||||
<li><a href="/about">about</a>
|
<li><a href="/about">about</a>
|
||||||
<li><a href="/front">front</a>
|
<li><a href="/front">front</a>
|
||||||
<li><a href="/funzone">funzone</a>
|
<li><a href="/funzone">funzone</a>
|
||||||
|
|
8
web.go
8
web.go
|
@ -75,17 +75,16 @@ func getmaplink(u *login.UserInfo) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func getInfo(r *http.Request) map[string]interface{} {
|
func getInfo(r *http.Request) map[string]interface{} {
|
||||||
u := login.GetUserInfo(r)
|
|
||||||
templinfo := make(map[string]interface{})
|
templinfo := make(map[string]interface{})
|
||||||
templinfo["StyleParam"] = getassetparam(viewDir + "/views/style.css")
|
templinfo["StyleParam"] = getassetparam(viewDir + "/views/style.css")
|
||||||
templinfo["LocalStyleParam"] = getassetparam(dataDir + "/views/local.css")
|
templinfo["LocalStyleParam"] = getassetparam(dataDir + "/views/local.css")
|
||||||
templinfo["JSParam"] = getassetparam(viewDir + "/views/honkpage.js")
|
templinfo["JSParam"] = getassetparam(viewDir + "/views/honkpage.js")
|
||||||
templinfo["UserStyle"] = getuserstyle(u)
|
|
||||||
templinfo["ServerName"] = serverName
|
templinfo["ServerName"] = serverName
|
||||||
templinfo["IconName"] = iconName
|
templinfo["IconName"] = iconName
|
||||||
templinfo["UserInfo"] = u
|
|
||||||
templinfo["UserSep"] = userSep
|
templinfo["UserSep"] = userSep
|
||||||
if u != nil {
|
if u := login.GetUserInfo(r); u != nil {
|
||||||
|
templinfo["UserInfo"], _ = butwhatabout(u.Username)
|
||||||
|
templinfo["UserStyle"] = getuserstyle(u)
|
||||||
var combos []string
|
var combos []string
|
||||||
combocache.Get(u.UserID, &combos)
|
combocache.Get(u.UserID, &combos)
|
||||||
templinfo["Combos"] = combos
|
templinfo["Combos"] = combos
|
||||||
|
@ -1763,6 +1762,7 @@ func showhonkers(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
func showchatter(w http.ResponseWriter, r *http.Request) {
|
func showchatter(w http.ResponseWriter, r *http.Request) {
|
||||||
u := login.GetUserInfo(r)
|
u := login.GetUserInfo(r)
|
||||||
|
chatnewnone(u.UserID)
|
||||||
chatter := loadchatter(u.UserID)
|
chatter := loadchatter(u.UserID)
|
||||||
for _, chat := range chatter {
|
for _, chat := range chatter {
|
||||||
for _, ch := range chat.Chonks {
|
for _, ch := range chat.Chonks {
|
||||||
|
|
Loading…
Reference in New Issue