diff --git a/apps/ssb.json b/apps/ssb.json index db1108977..67a10227b 100644 --- a/apps/ssb.json +++ b/apps/ssb.json @@ -1,5 +1,5 @@ { "type": "tildefriends-app", "emoji": "🦀", - "previous": "&TLyYxmhqnHA1BlsJjFEOjCjShomGMA4Zpq3XADV7j6Q=.sha256" + "previous": "&DnBJGdNczyRZF6IF6K4PnwcuO+8nJ+n5942vY4A5AAM=.sha256" } diff --git a/apps/ssb/tf-tab-news-feed.js b/apps/ssb/tf-tab-news-feed.js index c53784840..69acb5992 100644 --- a/apps/ssb/tf-tab-news-feed.js +++ b/apps/ssb/tf-tab-news-feed.js @@ -258,12 +258,19 @@ class TfTabNewsFeedElement extends LitElement { ` SELECT TRUE 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 messages - JOIN json_each(?) AS following ON messages.author = following.value + JOIN json_each(?1) AS following ON messages.author = following.value + LEFT OUTER JOIN json_each(?5) AS channels ON messages.content ->> 'channel' = channels.value WHERE messages.timestamp < ?3 AND (?2 IS NULL OR messages.timestamp >= ?2) AND - messages.content ->> 'type' != 'vote' + messages.content ->> 'type' != 'vote' AND channels.value IS NULL ORDER BY timestamp DESC LIMIT ?4 `, - [JSON.stringify(this.following), start_time, end_time, k_max_results] + [ + JSON.stringify(this.following), + start_time, + end_time, + k_max_results, + JSON.stringify(Object.keys(this.channels_latest)), + ] ); let t1 = new Date(); result = await this._fetch_related_messages(initial_messages); @@ -396,6 +403,9 @@ class TfTabNewsFeedElement extends LitElement { this._private_messages = JSON.stringify(this.private_messages) + JSON.stringify(this.grouped_private_messages); + this._channels_latest = JSON.stringify( + Object.keys(this.channels_latest ?? {}) + ); let now = new Date().valueOf(); let start_time = now - 24 * 60 * 60 * 1000; this.start_time = start_time; @@ -471,7 +481,9 @@ class TfTabNewsFeedElement extends LitElement { this._messages_following !== JSON.stringify(this.following) || this._private_messages !== JSON.stringify(this.private_messages) + - JSON.stringify(this.grouped_private_messages) + JSON.stringify(this.grouped_private_messages) || + this._channels_latest !== + JSON.stringify(Object.keys(this.channels_latest)) ) { console.log( `loading messages for ${this.whoami} (following ${this.following.length})`