zonking of bonking

This commit is contained in:
Ted Unangst 2019-05-03 14:43:08 -04:00
parent 5ef64966f3
commit bf18145db8
3 changed files with 13 additions and 8 deletions

View File

@ -268,7 +268,13 @@ func needxonkid(user *WhatAbout, xid string) bool {
func savexonk(user *WhatAbout, x *Honk) {
if x.What == "eradicate" {
log.Printf("eradicating %s by %s", x.RID, x.Honker)
_, err := stmtDeleteHonk.Exec(x.RID, x.Honker, user.ID)
mh := re_unurl.FindStringSubmatch(x.Honker)
mr := re_unurl.FindStringSubmatch(x.RID)
if len(mh) < 2 || len(mr) < 2 || mh[1] != mr[1] {
log.Printf("not deleting owner mismatch")
return
}
_, err := stmtZonkIt.Exec(user.ID, x.RID)
if err != nil {
log.Printf("error eradicating: %s", err)
}

View File

@ -51,10 +51,10 @@ view. (Previously this was accomplished via separate tables. That made some
queries more difficult, but I think it's possible to workaround this. It would
be considerably safer.) The honker column will be empty for local honks.
The what column further refines the type of honk. If a reply, tonk. If
deleted, zonk. If shared, bonk. In particular for the case of bonk, there
aren't enough columns to store original honker and bonker. This seems to work
out okay though.
The what column further refines the type of honk. If a reply, tonk.
If shared, bonk. In particular for the case of bonk, there
aren't enough columns to store original honker and bonker.
This seems to work out okay though.
Attachments are physically saved as files, and logically joined to honks via
the donks table. Emus are saved as donks as well.
@ -73,7 +73,7 @@ The xid column generally corresponds to ActivityPub id. For local honks, it
will be a short string, not a complete URL.
Note that some logical seeming joins won't work. The honker column of honks
does not have a corresponding entry in the honkers table, since we frequently
may not have a corresponding entry in the honkers table, since we frequently
receive messages from people we don't follow. Should we track everybody whose
identity crosses our path? This seems unnecessary. The honkers table is more
like a mapping of active relationships, not a directory of all peoples.

View File

@ -1303,7 +1303,7 @@ func serve() {
var stmtHonkers, stmtDubbers, stmtSaveHonker, stmtUpdateFlavor, stmtUpdateCombos *sql.Stmt
var stmtOneXonk, stmtPublicHonks, stmtUserHonks, stmtHonksByCombo, stmtHonksByConvoy *sql.Stmt
var stmtHonksForUser, stmtHonksForMe, stmtDeleteHonk, stmtSaveDub *sql.Stmt
var stmtHonksForUser, stmtHonksForMe, stmtSaveDub *sql.Stmt
var stmtHonksByHonker, stmtSaveHonk, stmtFileData, stmtWhatAbout *sql.Stmt
var stmtFindXonk, stmtSaveDonk, stmtFindFile, stmtSaveFile *sql.Stmt
var stmtAddDoover, stmtGetDoovers, stmtLoadDoover, stmtZapDoover *sql.Stmt
@ -1342,7 +1342,6 @@ func prepareStatements(db *sql.DB) {
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 (?, ?)")
stmtDeleteHonk = preparetodie(db, "delete from honks where xid = ? and honker = ? and userid = ?")
stmtZonkIt = preparetodie(db, "delete from honks where userid = ? and xid = ?")
stmtFindFile = preparetodie(db, "select fileid from files where url = ?")
stmtSaveFile = preparetodie(db, "insert into files (xid, name, url, media, content) values (?, ?, ?, ?, ?)")