schema change to add flags to honks

This commit is contained in:
Ted Unangst 2019-08-16 15:13:33 -04:00
parent 55f4c74ed0
commit 840224e3b9
6 changed files with 18 additions and 9 deletions

View File

@ -253,7 +253,7 @@ func savexonk(user *WhatAbout, x *Honk) {
whofore = 1 whofore = 1
} }
res, err := stmtSaveHonk.Exec(x.UserID, x.What, x.Honker, x.XID, x.RID, dt, x.URL, aud, res, err := stmtSaveHonk.Exec(x.UserID, x.What, x.Honker, x.XID, x.RID, dt, x.URL, aud,
x.Noise, x.Convoy, whofore, "html", x.Precis, x.Oonker) x.Noise, x.Convoy, whofore, "html", x.Precis, x.Oonker, 0)
if err != nil { if err != nil {
log.Printf("err saving xonk: %s", err) log.Printf("err saving xonk: %s", err)
return return

View File

@ -2,6 +2,8 @@ changelog
-- next -- next
+ Schema change. (add flags to honks table)
+ Better understanding of ActivityPub Persons. No need to enter names! + Better understanding of ActivityPub Persons. No need to enter names!
+ More robust retries for fetching objects. + More robust retries for fetching objects.

14
honk.go
View File

@ -71,6 +71,7 @@ type Honk struct {
Audience []string Audience []string
Public bool Public bool
Whofore int64 Whofore int64
Flags int64
HTML template.HTML HTML template.HTML
Style string Style string
Open string Open string
@ -740,7 +741,7 @@ func getxonk(userid int64, xid string) *Honk {
var dt, aud string var dt, aud string
row := stmtOneXonk.QueryRow(userid, xid) row := stmtOneXonk.QueryRow(userid, xid)
err := row.Scan(&h.ID, &h.UserID, &h.Username, &h.What, &h.Honker, &h.Oonker, &h.XID, &h.RID, err := row.Scan(&h.ID, &h.UserID, &h.Username, &h.What, &h.Honker, &h.Oonker, &h.XID, &h.RID,
&dt, &h.URL, &aud, &h.Noise, &h.Precis, &h.Convoy, &h.Whofore) &dt, &h.URL, &aud, &h.Noise, &h.Precis, &h.Convoy, &h.Whofore, &h.Flags)
if err != nil { if err != nil {
if err != sql.ErrNoRows { if err != sql.ErrNoRows {
log.Printf("error scanning xonk: %s", err) log.Printf("error scanning xonk: %s", err)
@ -810,7 +811,7 @@ func getsomehonks(rows *sql.Rows, err error) []*Honk {
var h Honk var h Honk
var dt, aud string var dt, aud string
err = rows.Scan(&h.ID, &h.UserID, &h.Username, &h.What, &h.Honker, &h.Oonker, err = rows.Scan(&h.ID, &h.UserID, &h.Username, &h.What, &h.Honker, &h.Oonker,
&h.XID, &h.RID, &dt, &h.URL, &aud, &h.Noise, &h.Precis, &h.Convoy, &h.Whofore) &h.XID, &h.RID, &dt, &h.URL, &aud, &h.Noise, &h.Precis, &h.Convoy, &h.Whofore, &h.Flags)
if err != nil { if err != nil {
log.Printf("error scanning honks: %s", err) log.Printf("error scanning honks: %s", err)
return nil return nil
@ -891,7 +892,7 @@ func savebonk(w http.ResponseWriter, r *http.Request) {
whofore := 2 whofore := 2
res, err := stmtSaveHonk.Exec(userinfo.UserID, "bonk", bonk.Honker, xid, "", res, err := stmtSaveHonk.Exec(userinfo.UserID, "bonk", bonk.Honker, xid, "",
dt.Format(dbtimeformat), "", aud, xonk.Noise, xonk.Convoy, whofore, "html", dt.Format(dbtimeformat), "", aud, xonk.Noise, xonk.Convoy, whofore, "html",
xonk.Precis, oonker) xonk.Precis, oonker, 0)
if err != nil { if err != nil {
log.Printf("error saving bonk: %s", err) log.Printf("error saving bonk: %s", err)
return return
@ -1133,7 +1134,8 @@ func savehonk(w http.ResponseWriter, r *http.Request) {
return return
} }
res, err := stmtSaveHonk.Exec(userinfo.UserID, what, honk.Honker, xid, rid, res, err := stmtSaveHonk.Exec(userinfo.UserID, what, honk.Honker, xid, rid,
dt.Format(dbtimeformat), "", aud, honk.Noise, convoy, whofore, "html", honk.Precis, honk.Oonker) dt.Format(dbtimeformat), "", aud, honk.Noise, convoy, whofore, "html",
honk.Precis, honk.Oonker, 0)
if err != nil { if err != nil {
log.Printf("error saving honk: %s", err) log.Printf("error saving honk: %s", err)
http.Error(w, "something bad happened while saving", http.StatusInternalServerError) http.Error(w, "something bad happened while saving", http.StatusInternalServerError)
@ -1601,7 +1603,7 @@ func prepareStatements(db *sql.DB) {
stmtHasHonker = preparetodie(db, "select honkerid from honkers where xid = ? and userid = ?") stmtHasHonker = preparetodie(db, "select honkerid from honkers where xid = ? and userid = ?")
stmtDubbers = preparetodie(db, "select honkerid, userid, name, xid, flavor from honkers where userid = ? and flavor = 'dub'") stmtDubbers = preparetodie(db, "select honkerid, userid, name, xid, flavor from honkers where userid = ? and flavor = 'dub'")
selecthonks := "select honkid, honks.userid, username, what, honker, oonker, honks.xid, rid, dt, url, audience, noise, precis, convoy, whofore from honks join users on honks.userid = users.userid " selecthonks := "select honkid, honks.userid, username, what, honker, oonker, honks.xid, rid, dt, url, audience, noise, precis, convoy, whofore, flags from honks join users on honks.userid = users.userid "
limit := " order by honkid desc limit 250" limit := " order by honkid desc limit 250"
butnotthose := " and convoy not in (select name from zonkers where userid = ? and wherefore = 'zonvoy' order by zonkerid desc limit 100)" butnotthose := " and convoy not in (select name from zonkers where userid = ? and wherefore = 'zonvoy' order by zonkerid desc limit 100)"
stmtOneXonk = preparetodie(db, selecthonks+"where honks.userid = ? and xid = ?") stmtOneXonk = preparetodie(db, selecthonks+"where honks.userid = ? and xid = ?")
@ -1614,7 +1616,7 @@ func prepareStatements(db *sql.DB) {
stmtHonksByCombo = preparetodie(db, selecthonks+"join honkers on honkers.xid = honks.honker where honks.userid = ? and honkers.combos like ?"+butnotthose+limit) stmtHonksByCombo = preparetodie(db, selecthonks+"join honkers on honkers.xid = honks.honker where honks.userid = ? and honkers.combos like ?"+butnotthose+limit)
stmtHonksByConvoy = preparetodie(db, selecthonks+"where (honks.userid = ? or (? = -1 and whofore = 2)) and convoy = ?"+limit) stmtHonksByConvoy = preparetodie(db, selecthonks+"where (honks.userid = ? or (? = -1 and whofore = 2)) and convoy = ?"+limit)
stmtSaveHonk = preparetodie(db, "insert into honks (userid, what, honker, xid, rid, dt, url, audience, noise, convoy, whofore, format, precis, oonker) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") stmtSaveHonk = preparetodie(db, "insert into honks (userid, what, honker, xid, rid, dt, url, audience, noise, convoy, whofore, format, precis, oonker, flags) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
stmtFileData = preparetodie(db, "select media, content from files where xid = ?") stmtFileData = preparetodie(db, "select media, content from files where xid = ?")
stmtFindXonk = preparetodie(db, "select honkid from honks where userid = ? and xid = ?") stmtFindXonk = preparetodie(db, "select honkid from honks where userid = ? and xid = ?")
stmtSaveDonk = preparetodie(db, "insert into donks (honkid, fileid) values (?, ?)") stmtSaveDonk = preparetodie(db, "insert into donks (honkid, fileid) values (?, ?)")

View File

@ -1,5 +1,5 @@
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, whofore integer, format text, precis text, oonker 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, whofore integer, format text, precis text, oonker text, flags integer);
create table donks (honkid integer, fileid integer); create table donks (honkid integer, fileid integer);
create table files(fileid integer primary key, xid text, name text, url text, media text, local integer, content blob); create table files(fileid integer primary key, xid text, name text, url text, media text, local integer, content blob);
create table honkers (honkerid integer primary key, userid integer, name text, xid text, flavor text, combos text); create table honkers (honkerid integer primary key, userid integer, name text, xid text, flavor text, combos text);

View File

@ -115,6 +115,11 @@ func upgradedb() {
doordie(db, "update config set value = 13 where key = 'dbversion'") doordie(db, "update config set value = 13 where key = 'dbversion'")
fallthrough fallthrough
case 13: case 13:
doordie(db, "alter table honks add column flags integer")
doordie(db, "update honks set flags = 0")
doordie(db, "update config set value = 14 where key = 'dbversion'")
fallthrough
case 14:
default: default:
log.Fatalf("can't upgrade unknown version %d", dbversion) log.Fatalf("can't upgrade unknown version %d", dbversion)
} }

View File

@ -72,7 +72,7 @@ var dbtimeformat = "2006-01-02 15:04:05"
var alreadyopendb *sql.DB var alreadyopendb *sql.DB
var dbname = "honk.db" var dbname = "honk.db"
var stmtConfig *sql.Stmt var stmtConfig *sql.Stmt
var myVersion = 13 var myVersion = 14
func initdb() { func initdb() {
schema, err := ioutil.ReadFile("schema.sql") schema, err := ioutil.ReadFile("schema.sql")