ssb: Exclude subscribed channels from general posts.

This commit is contained in:
2025-10-01 19:52:02 -04:00
parent 6423b3e479
commit 8f61d83f41
2 changed files with 17 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
{ {
"type": "tildefriends-app", "type": "tildefriends-app",
"emoji": "🦀", "emoji": "🦀",
"previous": "&TLyYxmhqnHA1BlsJjFEOjCjShomGMA4Zpq3XADV7j6Q=.sha256" "previous": "&DnBJGdNczyRZF6IF6K4PnwcuO+8nJ+n5942vY4A5AAM=.sha256"
} }

View File

@@ -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 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 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 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 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(); let t1 = new Date();
result = await this._fetch_related_messages(initial_messages); result = await this._fetch_related_messages(initial_messages);
@@ -396,6 +403,9 @@ class TfTabNewsFeedElement extends LitElement {
this._private_messages = this._private_messages =
JSON.stringify(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 ?? {})
);
let now = new Date().valueOf(); let now = new Date().valueOf();
let start_time = now - 24 * 60 * 60 * 1000; let start_time = now - 24 * 60 * 60 * 1000;
this.start_time = start_time; this.start_time = start_time;
@@ -471,7 +481,9 @@ class TfTabNewsFeedElement extends LitElement {
this._messages_following !== JSON.stringify(this.following) || this._messages_following !== JSON.stringify(this.following) ||
this._private_messages !== this._private_messages !==
JSON.stringify(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( console.log(
`loading messages for ${this.whoami} (following ${this.following.length})` `loading messages for ${this.whoami} (following ${this.following.length})`