Lots of little ease of use tweaks

This commit is contained in:
Max G
2022-02-25 02:33:49 +00:00
parent c1797474b8
commit bc44b3db9a
15 changed files with 546 additions and 161 deletions

View File

@@ -51,12 +51,31 @@ io.on('connection', function(socket){
Auth.decodeToken(token)
.then(userData => {
socket.join(userData.userId)
//Track active logged in user accounts
const usersInRoom = io.sockets.adapter.rooms[userData.userId]
io.to(userData.userId).emit('update_active_user_count', usersInRoom.length)
}).catch(error => {
//Don't add user to room if they are not logged in
// console.log(error)
})
})
socket.on('get_active_user_count', token => {
Auth.decodeToken(token)
.then(userData => {
socket.join(userData.userId)
//Track active logged in user accounts
const usersInRoom = io.sockets.adapter.rooms[userData.userId]
io.to(userData.userId).emit('update_active_user_count', usersInRoom.length)
}).catch(error => {
// console.log(error)
})
})
//Renew Session tokens when users request a new one
socket.on('renew_session_token', token => {
@@ -205,7 +224,7 @@ io.on('connection', function(socket){
}
})
socket.on('disconnect', function(){
socket.on('disconnect', function(socket){
// console.log('user disconnected');
});
});

View File

@@ -9,7 +9,7 @@ const speakeasy = require('speakeasy')
let User = module.exports = {}
const version = '3.3.3'
const version = '3.4.2'
//Login a user, if that user does not exist create them
//Issues login token
@@ -196,7 +196,9 @@ User.register = (username, password) => {
User.getCounts = (userId) => {
return new Promise((resolve, reject) => {
let countTotals = {}
let countTotals = {
tags: {}
}
const userHash = cs.hash(String(userId)).toString('base64')
db.promise().query(
@@ -244,12 +246,37 @@ User.getCounts = (userId) => {
Object.assign(countTotals, rows[0][0]) //combine results
//Count usages of user tags, sort by most popular
return db.promise().query(`
SELECT
tag.text, COUNT(tag_id) AS uses, tag.id
FROM note_tag
JOIN tag ON (tag.id = note_tag.tag_id)
WHERE user_id = ?
GROUP BY tag_id
ORDER BY uses DESC
LIMIT 5
`, [userId])
}).then( (rows, fields) => {
//Convert everything to an int or 0
Object.keys(countTotals).forEach( key => {
const count = parseInt(countTotals[key])
countTotals[key] = count ? count : 0
})
//Build out tags object
let tagsObject = {}
rows[0].forEach(tagRow => {
tagsObject[tagRow['text']] = {'id':tagRow.id, 'uses':tagRow.uses}
})
//Assign after counts are updated
countTotals['tags'] = tagsObject
countTotals['currentVersion'] = version
resolve(countTotals)