ssb: Be much more generous about what's allowed in a hashtag ref. Fixes #dev-diary not behaving correctly as a channel.
This commit is contained in:
@@ -314,7 +314,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
|
|||||||
"CREATE TRIGGER IF NOT EXISTS messages_ad AFTER DELETE ON messages BEGIN INSERT INTO messages_fts(messages_fts, rowid, content) VALUES ('delete', old.rowid, "
|
"CREATE TRIGGER IF NOT EXISTS messages_ad AFTER DELETE ON messages BEGIN INSERT INTO messages_fts(messages_fts, rowid, content) VALUES ('delete', old.rowid, "
|
||||||
"old.content); END");
|
"old.content); END");
|
||||||
|
|
||||||
if (_tf_ssb_db_has_rows(db, "SELECT * FROM sqlite_schema WHERE type = 'trigger' AND name = 'messages_ai_refs' AND NOT sql LIKE '%ltrim%'"))
|
if (_tf_ssb_db_has_rows(db, "SELECT * FROM sqlite_schema WHERE type = 'trigger' AND name = 'messages_ai_refs' AND NOT sql LIKE '%INSTR%'"))
|
||||||
{
|
{
|
||||||
tf_printf("Deleting incorrect messages_refs...\n");
|
tf_printf("Deleting incorrect messages_refs...\n");
|
||||||
_tf_ssb_db_exec(db, "DROP TABLE IF EXISTS messages_refs");
|
_tf_ssb_db_exec(db, "DROP TABLE IF EXISTS messages_refs");
|
||||||
@@ -337,7 +337,8 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
|
|||||||
"j.value LIKE '&%.sha256' OR "
|
"j.value LIKE '&%.sha256' OR "
|
||||||
"j.value LIKE '!%%.sha256' ESCAPE '!' OR "
|
"j.value LIKE '!%%.sha256' ESCAPE '!' OR "
|
||||||
"j.value LIKE '@%.ed25519' OR "
|
"j.value LIKE '@%.ed25519' OR "
|
||||||
"(j.value LIKE '#%' AND ltrim(substr(j.value, 2), 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_') = '') "
|
"(j.value LIKE '#%' AND INSTR(j.value, ' ') = 0 AND INSTR(j.value, char(9)) = 0 AND INSTR(j.value, char(10)) = 0 AND INSTR(j.value, char(13)) = 0 AND INSTR(j.value, "
|
||||||
|
"',') = 0) "
|
||||||
"ON CONFLICT DO NOTHING");
|
"ON CONFLICT DO NOTHING");
|
||||||
_tf_ssb_db_exec(db, "COMMIT TRANSACTION");
|
_tf_ssb_db_exec(db, "COMMIT TRANSACTION");
|
||||||
tf_printf("Done.\n");
|
tf_printf("Done.\n");
|
||||||
@@ -351,7 +352,8 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
|
|||||||
"j.value LIKE '&%.sha256' OR "
|
"j.value LIKE '&%.sha256' OR "
|
||||||
"j.value LIKE '!%%.sha256' ESCAPE '!' OR "
|
"j.value LIKE '!%%.sha256' ESCAPE '!' OR "
|
||||||
"j.value LIKE '@%.ed25519' OR "
|
"j.value LIKE '@%.ed25519' OR "
|
||||||
"(j.value LIKE '#%' AND ltrim(substr(j.value, 2), 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_') = '') "
|
"(j.value LIKE '#%' AND INSTR(j.value, ' ') = 0 AND INSTR(j.value, char(9)) = 0 AND INSTR(j.value, char(10)) = 0 AND INSTR(j.value, char(13)) = 0 AND INSTR(j.value, ',') "
|
||||||
|
"= 0) "
|
||||||
"ON CONFLICT DO NOTHING; END");
|
"ON CONFLICT DO NOTHING; END");
|
||||||
_tf_ssb_db_exec(db, "DROP TRIGGER IF EXISTS messages_ad_refs");
|
_tf_ssb_db_exec(db, "DROP TRIGGER IF EXISTS messages_ad_refs");
|
||||||
_tf_ssb_db_exec(db, "CREATE TRIGGER IF NOT EXISTS messages_ad_refs AFTER DELETE ON messages BEGIN DELETE FROM messages_refs WHERE messages_refs.message = old.id; END");
|
_tf_ssb_db_exec(db, "CREATE TRIGGER IF NOT EXISTS messages_ad_refs AFTER DELETE ON messages BEGIN DELETE FROM messages_refs WHERE messages_refs.message = old.id; END");
|
||||||
|
|||||||
Reference in New Issue
Block a user