diff --git a/apps/ssb.json b/apps/ssb.json index ad96be78..1f350390 100644 --- a/apps/ssb.json +++ b/apps/ssb.json @@ -1,5 +1,5 @@ { "type": "tildefriends-app", "emoji": "πŸ¦€", - "previous": "&y50BAPUo1VWpQgBG3tTLP5rX83CAOGkjWKyJNKP0M8M=.sha256" + "previous": "&t4hk+Y6NB+TftzDLhJ9gUKLPU5YcFYvTEbJuTT2qPCQ=.sha256" } diff --git a/apps/ssb/tf-app.js b/apps/ssb/tf-app.js index eb74a0af..7312642d 100644 --- a/apps/ssb/tf-app.js +++ b/apps/ssb/tf-app.js @@ -185,6 +185,7 @@ class TfElement extends LitElement { '', '@', 'πŸ‘', + '🚩', ...Object.keys(this.visible_private()) .sort() .map((x) => 'πŸ”' + JSON.parse(x).join(',')), @@ -491,6 +492,13 @@ class TfElement extends LitElement { `, k_args ), + tfrpc.rpc.query( + ` + SELECT '🚩' AS channel, MAX(messages.rowid) AS rowid FROM messages + WHERE messages.content ->> 'type' = 'flag' + `, + k_args + ), ]) ).flat(); let latest = {'πŸ”': undefined}; diff --git a/apps/ssb/tf-tab-news-feed.js b/apps/ssb/tf-tab-news-feed.js index 7f6944e3..85baa57f 100644 --- a/apps/ssb/tf-tab-news-feed.js +++ b/apps/ssb/tf-tab-news-feed.js @@ -245,6 +245,23 @@ class TfTabNewsFeedElement extends LitElement { `, [JSON.stringify(this.following), start_time, end_time, k_max_results] ); + } else if (this.hash == '#🚩') { + result = await tfrpc.rpc.query( + ` + WITH flags AS (SELECT messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature + FROM messages + WHERE + messages.content ->> 'type' = 'flag' AND + (?1 IS NULL OR messages.timestamp >= ?1) AND messages.timestamp < ?2 + ORDER BY timestamp DESC limit ?3) + SELECT FALSE AS is_primary, messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature + FROM flags + JOIN messages ON messages.id = flags.content ->> '$.flag.link' + UNION + SELECT TRUE AS is_primary, * FROM flags + `, + [start_time, end_time, k_max_results] + ); } else { let initial_messages = await tfrpc.rpc.query( ` diff --git a/apps/ssb/tf-tab-news.js b/apps/ssb/tf-tab-news.js index 7a0a72b9..c290e776 100644 --- a/apps/ssb/tf-tab-news.js +++ b/apps/ssb/tf-tab-news.js @@ -243,6 +243,12 @@ class TfTabNewsElement extends LitElement { style=${this.hash == '#πŸ‘' ? 'font-weight: bold' : undefined} >${this.unread_status('πŸ‘')}πŸ‘votes + ${this.unread_status('🚩')}🚩flagged ${Object.keys(this?.visible_private_messages ?? []) ?.sort() ?.map(