Skip to content
Snippets Groups Projects
stats.py 1.04 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.db.models import Sum
    
    from funkwhale_api.favorites.models import TrackFavorite
    from funkwhale_api.history.models import Listening
    from funkwhale_api.music import models
    from funkwhale_api.users.models import User
    
    
    def get():
        return {
            'users': get_users(),
            'tracks': get_tracks(),
            'albums': get_albums(),
            'artists': get_artists(),
            'track_favorites': get_track_favorites(),
            'listenings': get_listenings(),
            'music_duration': get_music_duration(),
        }
    
    
    def get_users():
        return User.objects.count()
    
    
    def get_listenings():
        return Listening.objects.count()
    
    
    def get_track_favorites():
        return TrackFavorite.objects.count()
    
    
    def get_tracks():
        return models.Track.objects.count()
    
    
    def get_albums():
        return models.Album.objects.count()
    
    
    def get_artists():
        return models.Artist.objects.count()
    
    
    def get_music_duration():
        seconds = models.TrackFile.objects.aggregate(
            d=Sum('duration'),
        )['d']
        if seconds:
            return seconds / 3600
        return 0