forked from cory/tildefriends
ssb: More correct/thorough channel status.
This commit is contained in:
parent
534438df63
commit
8a9502d1f2
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"type": "tildefriends-app",
|
"type": "tildefriends-app",
|
||||||
"emoji": "🦀",
|
"emoji": "🦀",
|
||||||
"previous": "&IeAWl/iQMfeYh+uyFRUqKBLQXaz+oIv7AjZNlSq28jU=.sha256"
|
"previous": "&R6lVyXLYem8Qkuhok/USflvzqw/ZgGic1aUsE23yzR0=.sha256"
|
||||||
}
|
}
|
||||||
|
@ -353,27 +353,37 @@ class TfElement extends LitElement {
|
|||||||
let latest_private = this.get_latest_private(following);
|
let latest_private = this.get_latest_private(following);
|
||||||
let channels = await tfrpc.rpc.query(
|
let channels = await tfrpc.rpc.query(
|
||||||
`
|
`
|
||||||
SELECT channels.value AS channel, MAX(messages.rowid) AS rowid FROM messages
|
SELECT channels.value AS channel, MAX(messages.rowid) AS rowid FROM messages
|
||||||
JOIN json_each(?1) AS channels ON messages.content ->> 'channel' = channels.value
|
JOIN json_each(?1) AS channels ON messages.content ->> 'channel' = channels.value
|
||||||
JOIN json_each(?2) AS following ON messages.author = following.value
|
JOIN json_each(?2) AS following ON messages.author = following.value
|
||||||
WHERE
|
WHERE
|
||||||
messages.content ->> 'type' = 'post' AND
|
messages.content ->> 'type' = 'post' AND
|
||||||
messages.content ->> 'root' IS NULL AND
|
messages.content ->> 'root' IS NULL AND
|
||||||
messages.author != ?4
|
messages.author != ?4
|
||||||
GROUP by channel
|
GROUP by channel
|
||||||
UNION
|
UNION
|
||||||
SELECT '' AS channel, MAX(messages.rowid) AS rowid FROM messages
|
SELECT channels.value AS channel, MAX(messages.rowid) AS rowid FROM messages
|
||||||
JOIN json_each(?2) AS following ON messages.author = following.value
|
JOIN messages_refs ON messages.id = messages_refs.message
|
||||||
WHERE
|
JOIN json_each(?1) AS channels ON messages_refs.ref = '#' || channels.value
|
||||||
messages.content ->> 'type' = 'post' AND
|
JOIN json_each(?2) AS following ON messages.author = following.value
|
||||||
messages.content ->> 'root' IS NULL AND
|
WHERE
|
||||||
messages.author != ?4
|
messages.content ->> 'type' = 'post' AND
|
||||||
UNION
|
messages.content ->> 'root' IS NULL AND
|
||||||
SELECT '@' AS channel, MAX(messages.rowid) AS rowid FROM messages_fts(?3)
|
messages.author != ?4
|
||||||
JOIN messages ON messages.rowid = messages_fts.rowid
|
GROUP by channel
|
||||||
JOIN json_each(?2) AS following ON messages.author = following.value
|
UNION
|
||||||
WHERE messages.author != ?4
|
SELECT '' AS channel, MAX(messages.rowid) AS rowid FROM messages
|
||||||
`,
|
JOIN json_each(?2) AS following ON messages.author = following.value
|
||||||
|
WHERE
|
||||||
|
messages.content ->> 'type' = 'post' AND
|
||||||
|
messages.content ->> 'root' IS NULL AND
|
||||||
|
messages.author != ?4
|
||||||
|
UNION
|
||||||
|
SELECT '@' AS channel, MAX(messages.rowid) AS rowid FROM messages_fts(?3)
|
||||||
|
JOIN messages ON messages.rowid = messages_fts.rowid
|
||||||
|
JOIN json_each(?2) AS following ON messages.author = following.value
|
||||||
|
WHERE messages.author != ?4
|
||||||
|
`,
|
||||||
[
|
[
|
||||||
JSON.stringify(this.channels),
|
JSON.stringify(this.channels),
|
||||||
JSON.stringify(following),
|
JSON.stringify(following),
|
||||||
@ -381,9 +391,15 @@ class TfElement extends LitElement {
|
|||||||
this.whoami,
|
this.whoami,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
this.channels_latest = Object.fromEntries(
|
let latest = {};
|
||||||
channels.map((x) => [x.channel, x.rowid])
|
for (let row of channels) {
|
||||||
);
|
if (!latest[row.channel]) {
|
||||||
|
latest[row.channel] = row.rowid;
|
||||||
|
} else {
|
||||||
|
latest[row.channel] = Math.max(row.rowid, latest[row.channel]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.channels_latest = latest;
|
||||||
console.log('channels took', (new Date() - start_time) / 1000.0);
|
console.log('channels took', (new Date() - start_time) / 1000.0);
|
||||||
let self = this;
|
let self = this;
|
||||||
start_time = new Date();
|
start_time = new Date();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user