ssb: More correct/thorough channel status.
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build Tilde Friends / Build-All (push) Successful in 33m50s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build Tilde Friends / Build-All (push) Successful in 33m50s
				
			This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| { | ||||
| 	"type": "tildefriends-app", | ||||
| 	"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 channels = await tfrpc.rpc.query( | ||||
| 			` | ||||
| 			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(?2) AS following ON messages.author = following.value | ||||
| 			WHERE | ||||
| 				messages.content ->> 'type' = 'post' AND | ||||
| 				messages.content ->> 'root' IS NULL AND | ||||
| 				messages.author != ?4 | ||||
| 			GROUP by channel | ||||
| 			UNION | ||||
| 			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 | ||||
| 		`, | ||||
| 				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(?2) AS following ON messages.author = following.value | ||||
| 				WHERE | ||||
| 					messages.content ->> 'type' = 'post' AND | ||||
| 					messages.content ->> 'root' IS NULL AND | ||||
| 					messages.author != ?4 | ||||
| 				GROUP by channel | ||||
| 				UNION | ||||
| 				SELECT channels.value AS channel, MAX(messages.rowid) AS rowid FROM messages | ||||
| 				JOIN messages_refs ON messages.id = messages_refs.message | ||||
| 				JOIN json_each(?1) AS channels ON messages_refs.ref = '#' || channels.value | ||||
| 				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 | ||||
| 				GROUP by channel | ||||
| 				UNION | ||||
| 				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(following), | ||||
| @@ -381,9 +391,15 @@ class TfElement extends LitElement { | ||||
| 				this.whoami, | ||||
| 			] | ||||
| 		); | ||||
| 		this.channels_latest = Object.fromEntries( | ||||
| 			channels.map((x) => [x.channel, x.rowid]) | ||||
| 		); | ||||
| 		let latest = {}; | ||||
| 		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); | ||||
| 		let self = this; | ||||
| 		start_time = new Date(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user