feat: share latest activity

This commit is contained in:
benonymity 2022-07-06 16:55:58 -04:00
parent 06ec2159f5
commit 1022033e0f
6 changed files with 199 additions and 1 deletions

View file

@ -263,5 +263,27 @@ class MiscController {
})
res.json(tags)
}
// GET: api/social
async getSocialStats(req, res) {
var filteredUsers = this.db.users.filter(c => c.settings.shareListeningActivity == true)
var userData = []
for (let i = 0; i < filteredUsers.length; i++) {
var user = filteredUsers[i]
var listeningStats = await this.getUserListeningStatsHelpers(user.id)
var latestItem = user.mediaProgress.sort(p => p.lastUpdate)[0]
var totalItems = Object.keys(listeningStats.items).length
var totalDays = Object.keys(listeningStats.days).length
var session = {
username: user.username,
lastSeen: user.lastSeen,
latest: latestItem || null,
itemsRead: totalItems || 0,
minutesListened: listeningStats.totalTime || 0,
daysListened: totalDays| 0,
}
userData.push(session)
}
res.json(userData)
}
}
module.exports = new MiscController()

View file

@ -68,7 +68,8 @@ class User {
filterBy: 'all',
playbackRate: 1,
bookshelfCoverSize: 120,
collapseSeries: false
collapseSeries: false,
shareListeningActivity: false
}
}

View file

@ -209,6 +209,7 @@ class ApiRouter {
this.router.get('/search/podcast', MiscController.findPodcasts.bind(this))
this.router.get('/search/authors', MiscController.findAuthor.bind(this))
this.router.get('/search/chapters', MiscController.findChapters.bind(this))
this.router.get('/social', MiscController.getSocialStats.bind(this))
this.router.get('/tags', MiscController.getAllTags.bind(this))
}