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:
parent
eb203c7e62
commit
a2542c658b
@ -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');
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user