##// END OF EJS Templates
Use posts-table style for non-post tables
Use posts-table style for non-post tables

File last commit:

r1742:2cde539a default
r1747:54294e9e default
Show More
statistics.py
35 lines | 1.2 KiB | text/x-python | PythonLexer
from django.core.management import BaseCommand
from django.db.models import Count
from boards.models import Attachment
from boards.utils import get_domain
class Command(BaseCommand):
help = 'Gather board statistics'
def handle(self, *args, **options):
print('* Domains and their usage')
domains = {}
for attachment in Attachment.objects.exclude(url=None):
full_domain = attachment.url.split('/')[2]
domain = get_domain(full_domain)
if domain in domains:
domains[domain] += 1
else:
domains[domain] = 1
for domain in domains:
print('{}: {}'.format(domain, domains[domain]))
print('* Overall numbers')
print('{} attachments in the system, {} of them as URLs'.format(
Attachment.objects.count(),
Attachment.objects.exclude(url=None).count()))
print('* File types')
mimetypes = Attachment.objects.filter(url=None)\
.values('mimetype').annotate(count=Count('id'))\
.order_by('-count')
for mimetype in mimetypes:
print('{}: {}'.format(mimetype['mimetype'], mimetype['count']))