diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-07-31 10:01:14 +0200 |
---|---|---|
committer | Étienne Loks <etienne@peacefrogs.net> | 2019-07-31 10:01:14 +0200 |
commit | 345a41be0318da980422ee74a67c363008d4de8d (patch) | |
tree | 39e98ec4a30718ebd677f5e6be197d008546d65d /commcrawler/models.py | |
parent | 56a33989278a8fe2985f0d36d3c589136c1ec30d (diff) | |
download | Comm-on-net-345a41be0318da980422ee74a67c363008d4de8d.tar.bz2 Comm-on-net-345a41be0318da980422ee74a67c363008d4de8d.zip |
Models: crawl results
Diffstat (limited to 'commcrawler/models.py')
-rw-r--r-- | commcrawler/models.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/commcrawler/models.py b/commcrawler/models.py index f62157e..c15ce7e 100644 --- a/commcrawler/models.py +++ b/commcrawler/models.py @@ -121,3 +121,77 @@ class Crawl(models.Model): @property def target_nb(self): return self.targets.count() + + +class CrawlResult(models.Model): + crawl = models.ForeignKey(Crawl, verbose_name=_("Crawl")) + target = models.ForeignKey(Target, verbose_name=_("Target")) + nb_external_link = models.IntegerField( + verbose_name=_("Number of external links"), default=0) + nb_internal_link = models.IntegerField( + verbose_name=_("Number of internal links"), default=0) + nb_images = models.IntegerField( + verbose_name=_("Number of images"), default=0) + nb_facebook = models.IntegerField( + verbose_name=_("Number of Facebook links"), default=0) + nb_twitter = models.IntegerField( + verbose_name=_("Number of Twitter links"), default=0) + nb_instagram = models.IntegerField( + verbose_name=_("Number of Instagram links"), default=0) + nb_youtube = models.IntegerField( + verbose_name=_("Number of Youtube links"), default=0) + nb_dailymotion = models.IntegerField( + verbose_name=_("Number of Dailymotion links"), default=0) + nb_vimeo = models.IntegerField( + verbose_name=_("Number of Vimeo links"), default=0) + nb_video = models.IntegerField( + verbose_name=_("Number of videos"), default=0) + nb_audio = models.IntegerField( + verbose_name=_("Number of audios"), default=0) + nb_internal_pdf = models.IntegerField( + verbose_name=_("Number of internal PDF"), default=0) + nb_external_pdf = models.IntegerField( + verbose_name=_("Number of external PDF"), default=0) + nb_internal_office = models.IntegerField( + verbose_name=_("Number of internal PDF"), default=0) + nb_external_office = models.IntegerField( + verbose_name=_("Number of external PDF"), default=0) + is_online = models.BooleanField( + verbose_name=_("Website is online"), default=False) + redirection = models.URLField( + verbose_name=_("Redirection"), blank=True, null=True) + + class Meta: + verbose_name = _("Crawl result") + verbose_name_plural = _("Crawl results") + + def __str__(self): + return "{} - {}".format(self.crawl, self.target) + + +class CrawlLink(models.Model): + result = models.ForeignKey(CrawlResult, verbose_name=_("Result")) + link = models.URLField(verbose_name=_("Link")) + + class Meta: + verbose_name = _("Crawl link") + verbose_name_plural = _("Crawl links") + + def __str__(self): + return "{} - {}".format(self.result, self.link) + + +class CrawlRelation(models.Model): + crawl = models.ForeignKey(Crawl, verbose_name=_("Crawl")) + source = models.ForeignKey(Target, verbose_name=_("Source"), + related_name="relation_source") + destination = models.ForeignKey(Target, verbose_name=_("Destination"), + related_name="relation_destination") + number = models.IntegerField(verbose_name=_("Number"), default=1) + + class Meta: + verbose_name = _("Crawl relation") + verbose_name_plural = _("Crawl relations") + + def __str__(self): + return "{} - {}".format(self.crawl, self.source, self.destination) |