diff options
-rw-r--r-- | requirements.txt | 2 | ||||
-rw-r--r-- | static/website/templates/page.html | 11 | ||||
-rw-r--r-- | website/rss.py | 24 | ||||
-rw-r--r-- | website/views.py | 2 |
4 files changed, 38 insertions, 1 deletions
diff --git a/requirements.txt b/requirements.txt index 8607afb..e4d2708 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ Django==2.1.7 django-nested-inline==0.3.7 mysqlclient==1.4.2.post1 +eventlet==0.24.1 +feedparser==5.2.1 diff --git a/static/website/templates/page.html b/static/website/templates/page.html index 781bfbb..0c15bb1 100644 --- a/static/website/templates/page.html +++ b/static/website/templates/page.html @@ -170,6 +170,14 @@ {% block footer %} <div id="footer-wrapper"> <div id="footer-inner"> + <div class="foot col-lg-4 col-md-4 col-sm-4"> + <h5 class="foot-heading">Latest News</h4> + <ul> + {% for key, value in rssfeed %} + <li><a href="{{ value }}" target="_blank"> {{ key }}</a></li> + {% endfor %} + </ul> + </div> <!-- /foot --> {% for block in footer %} {% if block.linkbox_name %} <div class="foot col-lg-4 col-md-4 col-sm-4"> @@ -185,7 +193,7 @@ </ul> </div> <!-- /foot --> {% endif %} - + {% if block.textbox_name %} <div class="foot col-lg-4 col-lg-4 col-sm-4"> <h5 class="foot-heading">{{ block.textbox_name }}</h4> @@ -208,6 +216,7 @@ </center> {% endblock %} {% endblock %} + </div> <!-- /page-wrapper --> <div id="credits"> <center> diff --git a/website/rss.py b/website/rss.py new file mode 100644 index 0000000..0edd07c --- /dev/null +++ b/website/rss.py @@ -0,0 +1,24 @@ +import feedparser +import eventlet + + +def get_url(): + + with eventlet.Timeout(10): + url = 'http://feeds.feedburner.com/PythonInsider/.rss' + return url + + +def get_rss(): + + feed = feedparser.parse(get_url()) + posts_to_show = [] + + for post in feed.entries[0:4]: + title = post.title + link = post.link + posts_to_show.append((title, link)) + if not posts_to_show: + posts_to_show = [('Click here for latest news from python.org', + 'https://pythoninsider.blogspot.com/')] + return posts_to_show diff --git a/website/views.py b/website/views.py index 2793897..f77a362 100644 --- a/website/views.py +++ b/website/views.py @@ -1,6 +1,7 @@ from django.http import HttpResponse from django.shortcuts import render, render_to_response, get_object_or_404 from website.models import Nav, Page, Block, Banner, FOSSEEStats +from website.rss import get_rss def block_sort(obj): @@ -40,6 +41,7 @@ def dispatcher(request, permalink=''): 'sidebar': blocks['sidebar'], 'footer': blocks['footer'], 'permalink': permalink, + 'rssfeed' : get_rss() } if not banner: context['banner'] = '' |