38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
__author__ = 'stubbfel'
|
|
|
|
import feedparser
|
|
from utilities.textfile import TextFile
|
|
from utilities.serializer import Serializer
|
|
|
|
class FeedFile(TextFile):
|
|
|
|
def __init__(self, filename):
|
|
"""
|
|
init class
|
|
:param filename: path to the file
|
|
"""
|
|
super(FeedFile, self).__init__(filename)
|
|
|
|
def read_feed_file(self):
|
|
"""
|
|
method read and convert the content of the file to a FeedParserDict
|
|
:return: dict - feed object
|
|
"""
|
|
feed_str = self.read_text_file()
|
|
return feedparser.parse(feed_str)
|
|
|
|
def write_feed_file(self, feed, serializer=None):
|
|
"""
|
|
method write a feedparpser object to a text file. It use a certain serializer or the default serializer
|
|
if type of the serializer is none
|
|
:param feed: expetc FeedparserDict
|
|
:param serializer: None or a subclass of Serializer
|
|
"""
|
|
assert isinstance(feed, feedparser.FeedParserDict)
|
|
|
|
if serializer is None:
|
|
serializer = Serializer()
|
|
feed_string = serializer.serialize(feed)
|
|
else:
|
|
feed_string = serializer.toString(feed)
|
|
self.write_text_file(feed_string) |