Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Nov 22, 2017. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions sheer/feeds.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,17 @@
from werkzeug.contrib.atom import AtomFeed
import flask
import os
import dateutil.parser

from .query import QueryFinder
from .indexer import read_json_file

PARAM_TOKEN = '$$'
ALLOWED_FEED_PARAMS = ('feed_title')
ALLOWED_FEED_PARAMS = ('feed_title', 'feed_url')
ALLOWED_ENTRY_PARAMS = ('entry_url', 'entry_title', 'entry_content',
'entry_author', 'entry_updated', 'entry_content_type',
'entry_summary', 'entry_published', 'entry_rights')
DATE_PARAMS = ('updated', 'published')


def make_external(url):
Expand All @@ -32,27 +34,31 @@ class Feed(object):
# Make sure only allowed feed params are passed into the feed
def __init__(self, settings):
self.feed_url = request.url
self.url = request.url_root
for setting in settings:
if setting.startswith('feed_') and setting in ALLOWED_FEED_PARAMS:
setting_trimmed = setting.replace('feed_', '')
setattr(self, setting_trimmed, settings[setting])

if self.url:
self.url = make_external(self.url)

class Entry(object):

# Make sure only allowed entry params are passed into the feed
def __init__(self, item, settings):
for setting in settings:
attribute = settings[setting].replace('$$', '')
attribute = settings[setting].replace(PARAM_TOKEN, '')
if setting.startswith('entry_') and \
setting in ALLOWED_ENTRY_PARAMS and \
hasattr(item, attribute):
setting_trimmed = setting.replace('entry_', '')
setattr(self, setting_trimmed, getattr(item, attribute))

if self.url:
self.url = make_external(self.url)
# Dates must be in datetime.datetime format
if setting_trimmed in DATE_PARAMS:
setattr(self, setting_trimmed,
dateutil.parser.parse(getattr(item, attribute)))
else:
setattr(self, setting_trimmed, getattr(item, attribute))


def add_feeds_to_sheer(app):
Expand Down