Преглед на файлове

Add subtitle and update play time for webpages

Colin Powell преди 1 година
родител
ревизия
05458b1fb9
променени са 1 файла, в които са добавени 16 реда и са изтрити 12 реда
  1. 16 12
      vrobbler/apps/webpages/models.py

+ 16 - 12
vrobbler/apps/webpages/models.py

@@ -44,6 +44,19 @@ class WebPage(ScrobblableMixin):
     def get_absolute_url(self):
         return reverse("webpages:webpage_detail", kwargs={"slug": self.uuid})
 
+    @property
+    def estimated_time_to_read_in_seconds(self):
+        if not self.extract:
+            return 600
+
+        words_per_minute = getattr(settings, "READING_WORDS_PER_MINUTE", 200)
+        words = len(self.extract.split(" "))
+        return int(words / words_per_minute) * 60
+
+    @property
+    def subtitle(self):
+        return self.domain
+
     def _update_data_from_web(self, force=True):
         headers = {
             "headers": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0"
@@ -60,16 +73,10 @@ class WebPage(ScrobblableMixin):
         if not self.domain or force:
             self.domain = self.url.split("//")[-1].split("/")[0]
 
-        self.save(update_fields=["title", "domain", "extract"])
+        if not self.run_time_seconds or force:
+            self.run_time_seconds = self.estimated_time_to_read_in_seconds
 
-    @property
-    def estimated_time_to_read_in_seconds(self):
-        if not self.extract:
-            return 600
-
-        words_per_minute = getattr(settings, "READING_WORDS_PER_MINUTE", 200)
-        words = len(self.extract.split(" "))
-        return int(words / words_per_minute) * 60
+        self.save(update_fields=["title", "domain", "extract"])
 
     @classmethod
     def find_or_create(cls, data_dict: Dict) -> "GeoLocation":
@@ -86,8 +93,5 @@ class WebPage(ScrobblableMixin):
 
         if not webpage:
             webpage = cls.objects.create(url=data_dict.get("url"))
-            webpage.run_time_seconds = (
-                webpage.estimated_time_to_read_in_seconds
-            )
             webpage._update_data_from_web()
         return webpage