diff --git a/feedreader/admin.py b/feedreader/admin.py index b9e2661..f6f508c 100644 --- a/feedreader/admin.py +++ b/feedreader/admin.py @@ -47,6 +47,7 @@ class EntryAdmin(admin.ModelAdmin): 'fields': (('link',), ('title', 'feed',), ('description',), + ('media_link',), ('published_time', 'read_flag'), ) }), diff --git a/feedreader/migrations/0002_add_media_link_field.py b/feedreader/migrations/0002_add_media_link_field.py new file mode 100644 index 0000000..4d7f188 --- /dev/null +++ b/feedreader/migrations/0002_add_media_link_field.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.8 on 2020-07-18 16:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('feedreader', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='entry', + name='media_link', + field=models.URLField(blank=True, max_length=2000, null=True), + ), + ] diff --git a/feedreader/models.py b/feedreader/models.py index 0c4c7ed..e447340 100644 --- a/feedreader/models.py +++ b/feedreader/models.py @@ -97,7 +97,6 @@ def __str__(self): def num_unread_entries(self): return Entry.objects.filter(feed=self, read_flag=False).count() - def save(self, *args, **kwargs): """Poll new Feed""" try: @@ -131,6 +130,8 @@ class Entry(models.Model): Description of entry. updated_time : date_time When entry was last updated. + media_link: char + URL of linked media """ feed = models.ForeignKey(Feed, on_delete=models.CASCADE) title = models.CharField(max_length=2000, blank=True, null=True) @@ -138,6 +139,7 @@ class Entry(models.Model): description = models.TextField(blank=True, null=True) published_time = models.DateTimeField(auto_now_add=True) read_flag = models.BooleanField(default=False) + media_link = models.URLField(max_length=2000, blank=True, null=True) class Meta: ordering = ['-published_time'] diff --git a/feedreader/templates/feedreader/entry_list.html b/feedreader/templates/feedreader/entry_list.html index c87c97d..9f04de5 100644 --- a/feedreader/templates/feedreader/entry_list.html +++ b/feedreader/templates/feedreader/entry_list.html @@ -11,6 +11,11 @@
{{ entry.description|safe }}
+ {% if entry.media_link %} + + {% endif %} {% endfor %} {% else %} diff --git a/feedreader/utils.py b/feedreader/utils.py index 3075bef..30d2417 100644 --- a/feedreader/utils.py +++ b/feedreader/utils.py @@ -198,4 +198,6 @@ def poll_feed(db_feed, verbose=False): db_entry.description = entry.description else: db_entry.description = html.escape(entry.description) + if len(entry.enclosures) > 0: + db_entry.media_link = entry.enclosures[0].get('href', None) db_entry.save()