people really want to believe that deletion can work.

i think it's dangerous to perpetuate this belief,
but i'm not interested in being the internet archive either.
master
Ted Unangst 5 years ago
parent fb75d9f4b1
commit 90a6e0f7c3

@ -680,22 +680,14 @@ func jonkjonk(user *WhatAbout, h *Honk) (map[string]interface{}, map[string]inte
}
switch h.What {
case "zonk":
fallthrough
case "tonk":
fallthrough
case "honk":
j["type"] = "Create"
if h.What == "zonk" {
j["type"] = "Delete"
}
jo = NewJunk()
jo["id"] = user.URL + "/h/" + h.XID
jo["type"] = "Note"
if h.What == "zonk" {
jo["type"] = "Tombstone"
}
jo["published"] = dt
jo["url"] = user.URL + "/h/" + h.XID
jo["attributedTo"] = user.URL
@ -756,6 +748,9 @@ func jonkjonk(user *WhatAbout, h *Honk) (map[string]interface{}, map[string]inte
case "bonk":
j["type"] = "Announce"
j["object"] = h.XID
case "zonk":
j["type"] = "Delete"
j["object"] = user.URL + "/h/" + h.XID
}
return j, jo

@ -26,9 +26,8 @@ Cant be useful for managing as part of a combo, however.
-- zonking
You can zonk anything you like (or dislike), either your own honk or
those of others that you're tired of seeing. This reduces its visibility, but
doesn't attempt to delete it, which is infeasible.
It's more like disavow or disregard.
those of others that you're tired of seeing. Be advised that deletion
works poorly in a federated environment. It's more like please disregard.
The killzone supports blocking unwanted contacts. One may block an actor
(zonker), a domain (zurl), or thread (zonvoy).

@ -711,9 +711,6 @@ func donksforhonks(honks []*Honk) {
var ids []string
hmap := make(map[int64]*Honk)
for _, h := range honks {
if h.What == "zonk" {
continue
}
ids = append(ids, fmt.Sprintf("%d", h.ID))
hmap[h.ID] = h
}
@ -814,7 +811,20 @@ func zonkit(w http.ResponseWriter, r *http.Request) {
log.Printf("zonking %s %s", wherefore, what)
userinfo := login.GetUserInfo(r)
if wherefore == "zonk" {
xonk := getxonk(userinfo.Username, what)
stmtZonkIt.Exec(userinfo.UserID, what)
if xonk != nil && xonk.Honker == "" {
zonk := Honk{
What: "zonk",
XID: xonk.XID,
Date: time.Now().UTC(),
Audience: oneofakind(xonk.Audience),
}
user, _ := butwhatabout(userinfo.Username)
log.Printf("announcing deleted honk: %s", what)
go honkworldwide(user, &zonk)
}
} else {
_, err := stmtSaveZonker.Exec(userinfo.UserID, what, wherefore)
if err != nil {
@ -1331,7 +1341,8 @@ 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, "update honks set what = 'zonk' where xid = ? and honker = ? and userid = ?")
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 (?, ?, ?, ?, ?)")
stmtWhatAbout = preparetodie(db, "select userid, username, displayname, about, pubkey from users where username = ?")
@ -1340,7 +1351,6 @@ func prepareStatements(db *sql.DB) {
stmtGetDoovers = preparetodie(db, "select dooverid, dt from doovers")
stmtLoadDoover = preparetodie(db, "select tries, username, rcpt, msg from doovers where dooverid = ?")
stmtZapDoover = preparetodie(db, "delete from doovers where dooverid = ?")
stmtZonkIt = preparetodie(db, "update honks set what = 'zonk' where userid = ? and xid = ?")
stmtThumbBiters = preparetodie(db, "select userid, name, wherefore from zonkers where (wherefore = 'zonker' or wherefore = 'zurl')")
stmtSaveZonker = preparetodie(db, "insert into zonkers (userid, name, wherefore) values (?, ?, ?)")
stmtGetBoxes = preparetodie(db, "select ibox, obox, sbox from xonkers where xid = ?")

@ -65,6 +65,10 @@ func upgradedb() {
doordie(db, "update config set value = 5 where key = 'dbversion'")
fallthrough
case 5:
doordie(db, "delete from honks where what = 'zonk'")
doordie(db, "update config set value = 6 where key = 'dbversion'")
fallthrough
case 6:
default:
log.Fatalf("can't upgrade unknown version %d", dbversion)
}

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

@ -25,7 +25,7 @@ convoy: <a href="/t?c={{ .Convoy }}">{{ .Convoy }}</a>
{{ end }}
</div>
{{ end }}
{{ if and .BonkCSRF (not (eq .Honk.What "zonked")) }}
{{ if .BonkCSRF }}
<p>
<div>
{{ if not .Honk.Privacy }}

@ -140,17 +140,6 @@ button a {
.tonked .noise a {
color: #aab;
}
.zonked {
color: #a79;
}
.zonked .noise {
color: #a79;
font-size: 0.8em;
text-decoration: line-through;
}
.zonked .noise a {
color: #a79;
}
.limited {
border: 1px solid #a04;
color: #a79;

Loading…
Cancel
Save