schema updates for future changes. xonkers, zonkers, and convoys, oh my.
This commit is contained in:
parent
c7c5001e53
commit
b5249fd53d
|
@ -254,7 +254,7 @@ func savexonk(x *Honk) {
|
|||
}
|
||||
dt := x.Date.UTC().Format(dbtimeformat)
|
||||
aud := strings.Join(x.Audience, " ")
|
||||
res, err := stmtSaveHonk.Exec(x.UserID, x.What, x.Honker, x.XID, x.RID, dt, x.URL, aud, x.Noise)
|
||||
res, err := stmtSaveHonk.Exec(x.UserID, x.What, x.Honker, x.XID, x.RID, dt, x.URL, aud, x.Noise, x.Convoy)
|
||||
if err != nil {
|
||||
log.Printf("err saving xonk: %s", err)
|
||||
return
|
||||
|
|
6
fun.go
6
fun.go
|
@ -260,7 +260,7 @@ func zaggy(keyname string) (key *rsa.PublicKey) {
|
|||
return
|
||||
}
|
||||
db := opendatabase()
|
||||
row := db.QueryRow("select pubkey from honkers where flavor = 'key' and xid = ?", keyname)
|
||||
row := db.QueryRow("select pubkey from xonkers where xid = ?", keyname)
|
||||
var data string
|
||||
err := row.Scan(&data)
|
||||
savekey := false
|
||||
|
@ -293,8 +293,8 @@ func zaggy(keyname string) (key *rsa.PublicKey) {
|
|||
zaggies[keyname] = key
|
||||
ziggylock.Unlock()
|
||||
if savekey {
|
||||
db.Exec("insert into honkers (name, xid, flavor, pubkey) values (?, ?, ?, ?)",
|
||||
"", keyname, "key", data)
|
||||
db.Exec("insert into xonkers (xid, ibox, obox, sbox, pubkey) values (?, ?, ?, ?, ?)",
|
||||
keyname, "", "", "", data)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
25
honk.go
25
honk.go
|
@ -65,6 +65,7 @@ type Honk struct {
|
|||
Date time.Time
|
||||
URL string
|
||||
Noise string
|
||||
Convoy string
|
||||
Audience []string
|
||||
HTML template.HTML
|
||||
Donks []*Donk
|
||||
|
@ -561,7 +562,7 @@ func getxonk(name, xid string) *Honk {
|
|||
var dt, aud string
|
||||
row := stmtOneXonk.QueryRow(xid)
|
||||
err := row.Scan(&h.ID, &h.UserID, &h.Username, &h.What, &h.Honker, &h.XID, &h.RID,
|
||||
&dt, &h.URL, &aud, &h.Noise)
|
||||
&dt, &h.URL, &aud, &h.Noise, &h.Convoy)
|
||||
if err != nil {
|
||||
log.Printf("error scanning xonk: %s", err)
|
||||
return nil
|
||||
|
@ -605,7 +606,7 @@ func getsomehonks(rows *sql.Rows, err error) []*Honk {
|
|||
var h Honk
|
||||
var dt, aud string
|
||||
err = rows.Scan(&h.ID, &h.UserID, &h.Username, &h.What, &h.Honker, &h.XID, &h.RID,
|
||||
&dt, &h.URL, &aud, &h.Noise)
|
||||
&dt, &h.URL, &aud, &h.Noise, &h.Convoy)
|
||||
if err != nil {
|
||||
log.Printf("error scanning honks: %s", err)
|
||||
return nil
|
||||
|
@ -662,6 +663,7 @@ func savebonk(w http.ResponseWriter, r *http.Request) {
|
|||
if xonk.Honker == "" {
|
||||
xonk.XID = fmt.Sprintf("https://%s/u/%s/h/%s", serverName, xonk.Username, xonk.XID)
|
||||
}
|
||||
convoy := ""
|
||||
|
||||
userinfo := GetUserInfo(r)
|
||||
|
||||
|
@ -674,13 +676,14 @@ func savebonk(w http.ResponseWriter, r *http.Request) {
|
|||
XID: xonk.XID,
|
||||
Date: dt,
|
||||
Noise: xonk.Noise,
|
||||
Convoy: convoy,
|
||||
Donks: xonk.Donks,
|
||||
Audience: oneofakind(prepend(thewholeworld, xonk.Audience)),
|
||||
}
|
||||
|
||||
aud := strings.Join(bonk.Audience, " ")
|
||||
res, err := stmtSaveHonk.Exec(userinfo.UserID, "bonk", "", xid, "",
|
||||
dt.Format(dbtimeformat), "", aud, bonk.Noise)
|
||||
dt.Format(dbtimeformat), "", aud, bonk.Noise, bonk.Convoy)
|
||||
if err != nil {
|
||||
log.Printf("error saving bonk: %s", err)
|
||||
return
|
||||
|
@ -720,6 +723,7 @@ func savehonk(w http.ResponseWriter, r *http.Request) {
|
|||
if rid != "" {
|
||||
what = "tonk"
|
||||
}
|
||||
convoy := ""
|
||||
honk := Honk{
|
||||
UserID: userinfo.UserID,
|
||||
Username: userinfo.Username,
|
||||
|
@ -727,6 +731,7 @@ func savehonk(w http.ResponseWriter, r *http.Request) {
|
|||
XID: xid,
|
||||
RID: rid,
|
||||
Date: dt,
|
||||
Convoy: convoy,
|
||||
}
|
||||
if noise[0] == '@' {
|
||||
honk.Audience = append(grapevine(noise), thewholeworld)
|
||||
|
@ -813,7 +818,7 @@ func savehonk(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
aud := strings.Join(honk.Audience, " ")
|
||||
res, err := stmtSaveHonk.Exec(userinfo.UserID, what, "", xid, rid,
|
||||
dt.Format(dbtimeformat), "", aud, noise)
|
||||
dt.Format(dbtimeformat), "", aud, noise, convoy)
|
||||
if err != nil {
|
||||
log.Printf("error saving honk: %s", err)
|
||||
return
|
||||
|
@ -1050,12 +1055,12 @@ func preparetodie(db *sql.DB, s string) *sql.Stmt {
|
|||
func prepareStatements(db *sql.DB) {
|
||||
stmtHonkers = preparetodie(db, "select honkerid, userid, name, xid, flavor from honkers where userid = ? and flavor = 'sub' or flavor = 'peep'")
|
||||
stmtDubbers = preparetodie(db, "select honkerid, userid, name, xid, flavor from honkers where userid = ? and flavor = 'dub'")
|
||||
stmtOneXonk = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, xid, rid, dt, url, audience, noise from honks join users on honks.userid = users.userid where xid = ?")
|
||||
stmtHonks = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, xid, rid, dt, url, audience, noise from honks join users on honks.userid = users.userid where honker = '' order by honkid desc limit 50")
|
||||
stmtUserHonks = preparetodie(db, "select honkid, honks.userid, username, what, honker, xid, rid, dt, url, audience, noise from honks join users on honks.userid = users.userid where honker = '' and username = ? order by honkid desc limit 50")
|
||||
stmtHonksForUser = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, xid, rid, dt, url, audience, noise from honks join users on honks.userid = users.userid where honks.userid = ? and dt > ? order by honkid desc limit 250")
|
||||
stmtHonksByHonker = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, honks.xid, rid, dt, url, audience, noise from honks join users on honks.userid = users.userid join honkers on honkers.xid = honks.honker where honks.userid = ? and honkers.name = ? order by honkid desc limit 50")
|
||||
stmtSaveHonk = preparetodie(db, "insert into honks (userid, what, honker, xid, rid, dt, url, audience, noise) values (?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
||||
stmtOneXonk = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, xid, rid, dt, url, audience, noise, convoy from honks join users on honks.userid = users.userid where xid = ?")
|
||||
stmtHonks = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, xid, rid, dt, url, audience, noise, convoy from honks join users on honks.userid = users.userid where honker = '' order by honkid desc limit 50")
|
||||
stmtUserHonks = preparetodie(db, "select honkid, honks.userid, username, what, honker, xid, rid, dt, url, audience, noise, convoy from honks join users on honks.userid = users.userid where honker = '' and username = ? order by honkid desc limit 50")
|
||||
stmtHonksForUser = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, xid, rid, dt, url, audience, noise, convoy from honks join users on honks.userid = users.userid where honks.userid = ? and dt > ? order by honkid desc limit 250")
|
||||
stmtHonksByHonker = preparetodie(db, "select honkid, honks.userid, users.username, what, honker, honks.xid, rid, dt, url, audience, noise, convoy from honks join users on honks.userid = users.userid join honkers on honkers.xid = honks.honker where honks.userid = ? and honkers.name = ? order by honkid desc limit 50")
|
||||
stmtSaveHonk = preparetodie(db, "insert into honks (userid, what, honker, xid, rid, dt, url, audience, noise, convoy) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
||||
stmtFileData = preparetodie(db, "select media, content from files where xid = ?")
|
||||
stmtFindXonk = preparetodie(db, "select honkid from honks where userid = ? and xid = ?")
|
||||
stmtSaveDonk = preparetodie(db, "insert into donks (honkid, fileid) values (?, ?)")
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
|
||||
create table honks (honkid integer primary key, userid integer, what text, honker text, xid text, rid text, dt text, url text, audience text, noise text);
|
||||
create table honks (honkid integer primary key, userid integer, what text, honker text, xid text, rid text, dt text, url text, audience text, noise text, convoy text);
|
||||
create table donks (honkid integer, fileid integer);
|
||||
create table files(fileid integer primary key, xid text, name text, url text, media text, content blob);
|
||||
create table honkers (honkerid integer primary key, userid integer, name text, xid text, flavor text, pubkey text);
|
||||
create table xonkers (xonkerid integer primary key, xid text, ibox text, obox text, sbox text, pubkey text);
|
||||
create table zonkers (zonkerid integer primary key, name text, wherefore text);
|
||||
create table doovers(dooverid integer primary key, dt text, tries integer, username text, rcpt text, msg blob);
|
||||
|
||||
create index idx_honksxid on honks(xid);
|
||||
create index idx_honksconvoy on honks(convoy);
|
||||
create index idx_honkshonker on honks(honker);
|
||||
create index idx_honkerxid on honkers(xid);
|
||||
create index idx_xonkerxid on xonkers(xid);
|
||||
create index idx_xonkerxid on xonkers(xid);
|
||||
create index idx_zonkersname on zonkers(name);
|
||||
create index idx_filesxid on files(xid);
|
||||
create index idx_filesurl on files(url);
|
||||
|
||||
|
|
12
upgradedb.go
12
upgradedb.go
|
@ -42,6 +42,18 @@ func upgradedb() {
|
|||
doordie(db, "update config set value = 2 where key = 'dbversion'")
|
||||
fallthrough
|
||||
case 2:
|
||||
doordie(db, "alter table honks add column convoy text")
|
||||
doordie(db, "update honks set convoy = ''")
|
||||
doordie(db, "create index idx_honksconvoy on honks(convoy)")
|
||||
doordie(db, "create table xonkers (xonkerid integer primary key, xid text, ibox text, obox text, sbox text, pubkey text)")
|
||||
doordie(db, "insert into xonkers (xid, ibox, obox, sbox, pubkey) select xid, '', '', '', pubkey from honkers where flavor = 'key'")
|
||||
doordie(db, "delete from honkers where flavor = 'key'")
|
||||
doordie(db, "create index idx_xonkerxid on xonkers(xid)")
|
||||
doordie(db, "create table zonkers (zonkerid integer primary key, name text, wherefore text)")
|
||||
doordie(db, "create index idx_zonkersname on zonkers(name)")
|
||||
doordie(db, "update config set value = 3 where key = 'dbversion'")
|
||||
fallthrough
|
||||
case 3:
|
||||
default:
|
||||
log.Fatalf("can't upgrade unknown version %d", dbversion)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue