diff --git a/digimarks.py b/digimarks.py index 7cb70c5..7d323b2 100644 --- a/digimarks.py +++ b/digimarks.py @@ -106,6 +106,7 @@ class Bookmark(db.Model): # Status code: 200 is OK, 404 is not found, for example (showing an error) http_status = IntegerField(default=200) + redirect_uri = None created_date = DateTimeField(default=datetime.datetime.now) modified_date = DateTimeField(null=True) @@ -191,6 +192,17 @@ class Bookmark(db.Model): tags_clean = clean_tags(tags_split) self.tags = ','.join(tags_clean) + def get_redirect_uri(self): + if self.redirect_uri: + return self.redirect_uri + if self.http_status == 301 or self.http_status == 302: + result = requests.head(self.url, allow_redirects=True) + self.http_status = result.status_code + self.redirect_uri = result.url + return result.url + else: + return None + @classmethod def strip_url_params(cls, url): parsed = urlparse(url) diff --git a/templates/bookmarks.html b/templates/bookmarks.html index c51f407..6f031d7 100644 --- a/templates/bookmarks.html +++ b/templates/bookmarks.html @@ -82,7 +82,7 @@ {% if bookmark.favicon %}