diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-07 03:53:32 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-08-07 03:55:49 +0200 |
commit | d737e04553f464966f54739ba37f9f06dab44586 (patch) | |
tree | 2b68891ff1629b55b820312fdd3a17ce91ac5722 /commcrawler/admin.py | |
parent | 9fbd94f70d4b819b45eef720425242c0d69b032d (diff) | |
download | Comm-on-net-d737e04553f464966f54739ba37f9f06dab44586.tar.bz2 Comm-on-net-d737e04553f464966f54739ba37f9f06dab44586.zip |
Save crawling results in the database
Diffstat (limited to 'commcrawler/admin.py')
-rw-r--r-- | commcrawler/admin.py | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/commcrawler/admin.py b/commcrawler/admin.py index 457d2b0..857962c 100644 --- a/commcrawler/admin.py +++ b/commcrawler/admin.py @@ -1,5 +1,12 @@ +import json + +from pygments import highlight +from pygments.lexers.data import JsonLexer +from pygments.formatters.html import HtmlFormatter + from ajax_select import make_ajax_form from django.contrib import admin +from django.utils.safestring import mark_safe from commonnet.admin_site import admin_site from commcrawler import models @@ -11,7 +18,7 @@ class CrawlAdmin(admin.ModelAdmin): "ended") list_filter = ("status",) readonly_fields = ("status", "created", "started", "ended") - exclude = ("targets", ) + form = make_ajax_form(model, {'targets': 'target'}) admin_site.register(models.Crawl, CrawlAdmin) @@ -19,10 +26,22 @@ admin_site.register(models.Crawl, CrawlAdmin) class CrawlResultAdmin(admin.ModelAdmin): model = models.CrawlResult - list_display = ("target", "crawl", "is_online") - list_filter = ("crawl",) + list_display = ("target", "crawl", "started", "duration", "status", + "is_online") + list_filter = ("status", "crawl") + search_fields = ("target__name",) + readonly_fields = ("started", "duration", "status", + "crawl_result_prettified") + exclude = ("crawl_result",) form = make_ajax_form(model, {'target': 'target'}) + def crawl_result_prettified(self, instance): + response = json.dumps(instance.crawl_result, sort_keys=True, indent=2) + formatter = HtmlFormatter(style='colorful') + response = highlight(response, JsonLexer(), formatter) + style = "<style>" + formatter.get_style_defs() + "</style><br>" + return mark_safe(style + response) + admin_site.register(models.CrawlResult, CrawlResultAdmin) @@ -47,8 +66,8 @@ admin_site.register(models.CrawlRelation, CrawlRelationAdmin) class ExcludedDomainAdmin(admin.ModelAdmin): - list_display = ('url',) - search_fields = ('url',) + list_display = ('domain',) + search_fields = ('domain',) admin_site.register(models.ExludedDomains, ExcludedDomainAdmin) |