all repos — honk @ 3232f951e9f9a3b00a25f23e131aca3b50d7df9a

my fork of honk

zonking of bonking
Ted Unangst tedu@tedunangst.com
Fri, 03 May 2019 14:43:08 -0400
commit

3232f951e9f9a3b00a25f23e131aca3b50d7df9a

parent

6a957a5a46f5bb43246df10b4404cc5ceadb7b77

3 files changed, 13 insertions(+), 8 deletions(-)

jump to
M activity.goactivity.go

@@ -268,7 +268,13 @@

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) }
M docs/spec.txtdocs/spec.txt

@@ -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.
M honk.gohonk.go

@@ -1303,7 +1303,7 @@ }

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 @@ stmtSaveHonk = preparetodie(db, "insert into honks (userid, what, honker, xid, rid, dt, url, audience, noise, convoy, whofore) 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 (?, ?)") - 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 (?, ?, ?, ?, ?)")