refactor seralizer

This commit is contained in:
stubbfel
2014-07-16 22:01:12 +02:00
parent 94ae91702b
commit 27e884bf67
6 changed files with 55 additions and 19 deletions

View File

@@ -1,10 +1,10 @@
__author__ = 'stubbfel'
import feedparser
from utilities.textfile import TextFile
from utilities.jsonfile import JsonFile
from utilities.serializer import Serializer
class FeedFile(TextFile):
class FeedFile(JsonFile):
def __init__(self, filename):
"""
@@ -21,7 +21,7 @@ class FeedFile(TextFile):
feed_str = self.read_text_file()
return feedparser.parse(feed_str)
def write_feed_file(self, feed, serializer=None):
def write_feedjson_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
@@ -31,8 +31,6 @@ class FeedFile(TextFile):
assert isinstance(feed, feedparser.FeedParserDict)
if serializer is None:
serializer = Serializer()
feed_string = serializer.serialize(feed)
self.write_json_file(feed)
else:
feed_string = serializer.toString(feed)
self.write_text_file(feed_string)
self.write_json_file(serializer.serialize(feed))

View File

@@ -1,5 +1,5 @@
__author__ = 'dev'
import json
from utilities.serializer import Serializer
class PodcastSerializer(Serializer):
@@ -12,4 +12,27 @@ class PodcastSerializer(Serializer):
:return: rhe string reprasention of the dict_object
"""
assert isinstance(dict_object, dict)
return str(dict_object)
episodeList = []
for episode in dict_object["entries"]:
filelink = ""
for links in episode["links"]:
if links["type"] == 'application/x-bittorrent':
filelink = links["href"]
tempepisode = {
"title": episode["title"],
"subtitle": episode["subtitle"],
"filelink": filelink
}
episodeList.append(tempepisode)
tempdict = {
"title": dict_object["feed"]["title"],
"subtitle": dict_object["feed"]["subtitle"],
"summary": dict_object["feed"]["summary"],
"episodes": episodeList
}
return tempdict

View File

@@ -9,6 +9,7 @@ class Serializer():
this method should be override by any subclasses
:param dict_object: object wich his to bee convert to a string
:return: rhe string reprasention of the dict_object
:depicated
"""
assert isinstance(dict_object, dict)
return str(dict_object)
return dict_object