summaryrefslogtreecommitdiff
path: root/commcrawler/models.py
diff options
context:
space:
mode:
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
commit345a41be0318da980422ee74a67c363008d4de8d (patch)
tree39e98ec4a30718ebd677f5e6be197d008546d65d /commcrawler/models.py
parent56a33989278a8fe2985f0d36d3c589136c1ec30d (diff)
downloadComm-on-net-345a41be0318da980422ee74a67c363008d4de8d.tar.bz2
Comm-on-net-345a41be0318da980422ee74a67c363008d4de8d.zip
Models: crawl results
Diffstat (limited to 'commcrawler/models.py')
-rw-r--r--commcrawler/models.py74
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)