forked from cory/tildefriends
		
	Better tags query.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4339 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		| @@ -256,13 +256,22 @@ class TfElement extends LitElement { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	async load_recent_tags() { | 	async load_recent_tags() { | ||||||
|  | 		let start = new Date(); | ||||||
| 		this.tags = await tfrpc.rpc.query(` | 		this.tags = await tfrpc.rpc.query(` | ||||||
| 			WITH recent AS (SELECT '#' || json_extract(content, '$.channel') AS tag | 			WITH | ||||||
| 				FROM messages | 				recent AS (SELECT content FROM messages | ||||||
| 				WHERE json_extract(content, '$.channel') IS NOT NULL | 					WHERE messages.timestamp > ? AND json_extract(content, '$.type') = 'post' | ||||||
| 				ORDER BY timestamp DESC LIMIT 100) | 					ORDER BY timestamp DESC LIMIT 1024), | ||||||
| 			SELECT tag, COUNT(*) AS count FROM recent GROUP BY tag ORDER BY count DESC LIMIT 10 | 				recent_channels AS (SELECT '#' || json_extract(content, '$.channel') AS tag | ||||||
| 		`, []); | 					FROM recent | ||||||
|  | 					WHERE json_extract(content, '$.channel') IS NOT NULL), | ||||||
|  | 				recent_mentions AS (SELECT json_extract(mention.value, '$.link') AS tag | ||||||
|  | 					FROM recent, json_each(recent.content, '$.mentions') AS mention | ||||||
|  | 					WHERE json_valid(mention.value) AND tag LIKE '#%'), | ||||||
|  | 				combined AS (SELECT tag FROM recent_channels UNION ALL SELECT tag FROM recent_mentions) | ||||||
|  | 			SELECT tag, COUNT(*) AS count FROM combined GROUP BY tag ORDER BY count DESC LIMIT 10 | ||||||
|  | 		`, [new Date() - 7 * 24 * 60 * 60 * 1000]); | ||||||
|  | 		console.log('tags took', (new Date() - start) / 1000.0, 'seconds'); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	async load() { | 	async load() { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user