See #192: use nodeinfo for about page statistics

This commit is contained in:
Eliot Berriot 2018-05-07 22:09:25 +02:00
parent b4ad7a4a71
commit b536e5a1f9
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
1 changed files with 14 additions and 5 deletions

View File

@ -3,7 +3,7 @@
<div v-if="stats" class="ui stackable two column grid"> <div v-if="stats" class="ui stackable two column grid">
<div class="column"> <div class="column">
<h3 class="ui left aligned header"><i18next path="User activity"/></h3> <h3 class="ui left aligned header"><i18next path="User activity"/></h3>
<div class="ui mini horizontal statistics"> <div v-if="stats" class="ui mini horizontal statistics">
<div class="statistic"> <div class="statistic">
<div class="value"> <div class="value">
<i class="green user icon"></i> <i class="green user icon"></i>
@ -19,7 +19,7 @@
</div> </div>
<div class="statistic"> <div class="statistic">
<div class="value"> <div class="value">
<i class="pink heart icon"></i> {{ stats.track_favorites }} <i class="pink heart icon"></i> {{ stats.trackFavorites }}
</div> </div>
<i18next tag="div" class="label" path="Tracks favorited"/> <i18next tag="div" class="label" path="Tracks favorited"/>
</div> </div>
@ -30,7 +30,7 @@
<div class="ui mini horizontal statistics"> <div class="ui mini horizontal statistics">
<div class="statistic"> <div class="statistic">
<div class="value"> <div class="value">
{{ parseInt(stats.music_duration) }} {{ parseInt(stats.musicDuration) }}
</div> </div>
<i18next tag="div" class="label" path="hours of music"/> <i18next tag="div" class="label" path="hours of music"/>
</div> </div>
@ -59,6 +59,7 @@
</template> </template>
<script> <script>
import _ from 'lodash'
import axios from 'axios' import axios from 'axios'
import logger from '@/logging' import logger from '@/logging'
@ -76,8 +77,16 @@ export default {
var self = this var self = this
this.isLoading = true this.isLoading = true
logger.default.debug('Fetching instance stats...') logger.default.debug('Fetching instance stats...')
axios.get('instance/stats/').then((response) => { axios.get('instance/nodeinfo/').then((response) => {
self.stats = response.data let d = response.data
self.stats = {}
self.stats.users = _.get(d, 'usage.users.total')
self.stats.listenings = _.get(d, 'metadata.usage.listenings.total')
self.stats.trackFavorites = _.get(d, 'metadata.usage.favorites.tracks.total')
self.stats.musicDuration = _.get(d, 'metadata.library.music.hours')
self.stats.artists = _.get(d, 'metadata.library.artists.total')
self.stats.albums = _.get(d, 'metadata.library.albums.total')
self.stats.tracks = _.get(d, 'metadata.library.tracks.total')
self.isLoading = false self.isLoading = false
}) })
} }