mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-27 11:41:36 +00:00
feat: share latest activity
This commit is contained in:
parent
06ec2159f5
commit
1022033e0f
6 changed files with 199 additions and 1 deletions
|
|
@ -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()
|
||||
|
|
@ -68,7 +68,8 @@ class User {
|
|||
filterBy: 'all',
|
||||
playbackRate: 1,
|
||||
bookshelfCoverSize: 120,
|
||||
collapseSeries: false
|
||||
collapseSeries: false,
|
||||
shareListeningActivity: false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue