ssb: An experiment in including hashtag mentions in channel content. Also sort the channel list like I thought I already did.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 16m54s

This commit is contained in:
2024-12-04 20:50:46 -05:00
parent 10b15896b3
commit 8a27c45ab1
3 changed files with 19 additions and 9 deletions

View File

@ -80,13 +80,13 @@ class TfTabNewsFeedElement extends LitElement {
tfrpc.rpc.query(
`
WITH news 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
JOIN json_each(?) AS following ON messages.author = following.value
WHERE
messages.timestamp > ? AND
messages.timestamp < ? AND
messages.content ->> 'channel' = ?
ORDER BY messages.timestamp DESC)
FROM messages
JOIN json_each(?) AS following ON messages.author = following.value
WHERE
messages.timestamp > ? AND
messages.timestamp < ? AND
messages.content ->> 'channel' = ?
ORDER BY messages.timestamp DESC)
SELECT messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature
FROM news
JOIN messages_refs ON news.id = messages_refs.ref
@ -97,6 +97,15 @@ class TfTabNewsFeedElement extends LitElement {
JOIN messages_refs ON news.id = messages_refs.message
JOIN messages ON messages_refs.ref = messages.id
UNION
SELECT messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature
FROM messages_fts(?5)
JOIN messages ON messages.rowid = messages_fts.rowid
JOIN json_each(?1) AS following ON messages.author = following.value
JOIN json_tree(messages.content, '$.mentions') AS mention ON mention.value = '#' || ?4
WHERE
messages.timestamp > ?2 AND
messages.timestamp < ?3
UNION
SELECT news.* FROM news
`,
[
@ -104,6 +113,7 @@ class TfTabNewsFeedElement extends LitElement {
start_time,
end_time,
this.hash.substring(2),
'"#' + this.hash.substring(2).replace('"', '""') + '"',
]
)
);