Better tag enumerating.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4349 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
Cory McWilliams 2023-07-16 23:41:41 +00:00
parent eb203c7e62
commit a2542c658b
2 changed files with 6 additions and 6 deletions

View File

@ -259,17 +259,17 @@ class TfElement extends LitElement {
let start = new Date(); let start = new Date();
this.tags = await tfrpc.rpc.query(` this.tags = await tfrpc.rpc.query(`
WITH WITH
recent AS (SELECT content FROM messages recent AS (SELECT id, content FROM messages
WHERE messages.timestamp > ? AND json_extract(content, '$.type') = 'post' WHERE messages.timestamp > ? AND json_extract(content, '$.type') = 'post'
ORDER BY timestamp DESC LIMIT 1024), ORDER BY timestamp DESC LIMIT 1024),
recent_channels AS (SELECT '#' || json_extract(content, '$.channel') AS tag recent_channels AS (SELECT recent.id, '#' || json_extract(content, '$.channel') AS tag
FROM recent FROM recent
WHERE json_extract(content, '$.channel') IS NOT NULL), WHERE json_extract(content, '$.channel') IS NOT NULL),
recent_mentions AS (SELECT json_extract(mention.value, '$.link') AS tag recent_mentions AS (SELECT recent.id, json_extract(mention.value, '$.link') AS tag
FROM recent, json_each(recent.content, '$.mentions') AS mention FROM recent, json_each(recent.content, '$.mentions') AS mention
WHERE json_valid(mention.value) AND tag LIKE '#%'), WHERE json_valid(mention.value) AND tag LIKE '#%'),
combined AS (SELECT tag FROM recent_channels UNION ALL SELECT tag FROM recent_mentions) combined AS (SELECT id, tag FROM recent_channels UNION ALL SELECT id, tag FROM recent_mentions)
SELECT tag, COUNT(*) AS count FROM combined GROUP BY tag ORDER BY count DESC LIMIT 10 SELECT tag, COUNT(*) AS count FROM combined GROUP BY id, tag ORDER BY count DESC LIMIT 10
`, [new Date() - 7 * 24 * 60 * 60 * 1000]); `, [new Date() - 7 * 24 * 60 * 60 * 1000]);
console.log('tags took', (new Date() - start) / 1000.0, 'seconds'); console.log('tags took', (new Date() - start) / 1000.0, 'seconds');
} }

View File

@ -119,7 +119,7 @@ class TodoListElement extends LitElement {
} else { } else {
return html` return html`
<div><input type="checkbox" ?checked=${item.x} @change=${x => self.handle_check(x, item)}></input> <div><input type="checkbox" ?checked=${item.x} @change=${x => self.handle_check(x, item)}></input>
<span @click=${x => self.editing = index}>${item.text}</span> <span @click=${x => self.editing = index}>${item.text || '(empty)'}</span>
`; `;
} }
} }