diff options
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) |