From fb439f17dbfa20de2b6b0321b97b6a43c171dd78 Mon Sep 17 00:00:00 2001 From: Christophe Siraut Date: Tue, 25 Aug 2020 11:19:55 +0200 Subject: [PATCH] journal: add print_duplicates command --- .../management/commands/print_duplicates.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 logtracker/journal/management/commands/print_duplicates.py diff --git a/logtracker/journal/management/commands/print_duplicates.py b/logtracker/journal/management/commands/print_duplicates.py new file mode 100644 index 0000000..b07cd57 --- /dev/null +++ b/logtracker/journal/management/commands/print_duplicates.py @@ -0,0 +1,25 @@ +from django.core.management.base import BaseCommand, CommandError +from logtracker.journal.models import Entry +import os +import textwrap +from collections import Counter + + +def bold(txt): + bold = "\033[1m" + end = "\033[0m" + return bold + txt + end + + +class Command(BaseCommand): + help = "Print entries" + + def add_arguments(self, parser): + parser.add_argument("--full", action="store_true") + parser.add_argument("-n", "--lines", default=10) + + def handle(self, *args, **options): + _, columns = os.popen("stty size", "r").read().split() + messages = [entry.data.get("MESSAGE") for entry in Entry.objects.all()] + for k, v in sorted(Counter(messages).items(), key=lambda i: i[1], reverse=True)[:options["lines"]]: + print(v, k)