commit 809f1a8111c69bb7a2b771ce60a9c493100dacb9 Author: stubbfel Date: Fri Nov 29 13:06:42 2013 +0100 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef5de7b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +testenv/ diff --git a/src/feedcrawler/.idea/.name b/src/feedcrawler/.idea/.name new file mode 100644 index 0000000..badce91 --- /dev/null +++ b/src/feedcrawler/.idea/.name @@ -0,0 +1 @@ +feedcrawler \ No newline at end of file diff --git a/src/feedcrawler/.idea/dictionaries/stubbfel.xml b/src/feedcrawler/.idea/dictionaries/stubbfel.xml new file mode 100644 index 0000000..e94dab0 --- /dev/null +++ b/src/feedcrawler/.idea/dictionaries/stubbfel.xml @@ -0,0 +1,11 @@ + + + + feedcontent + getfeed + loadfeed + storefeed + stubbfel + + + \ No newline at end of file diff --git a/src/feedcrawler/.idea/encodings.xml b/src/feedcrawler/.idea/encodings.xml new file mode 100644 index 0000000..e206d70 --- /dev/null +++ b/src/feedcrawler/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/feedcrawler/.idea/feedcrawler.iml b/src/feedcrawler/.idea/feedcrawler.iml new file mode 100644 index 0000000..6a135ba --- /dev/null +++ b/src/feedcrawler/.idea/feedcrawler.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/src/feedcrawler/.idea/misc.xml b/src/feedcrawler/.idea/misc.xml new file mode 100644 index 0000000..47e414c --- /dev/null +++ b/src/feedcrawler/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/feedcrawler/.idea/modules.xml b/src/feedcrawler/.idea/modules.xml new file mode 100644 index 0000000..861ee5f --- /dev/null +++ b/src/feedcrawler/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/feedcrawler/.idea/scopes/scope_settings.xml b/src/feedcrawler/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/src/feedcrawler/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/feedcrawler/.idea/vcs.xml b/src/feedcrawler/.idea/vcs.xml new file mode 100644 index 0000000..def6a6a --- /dev/null +++ b/src/feedcrawler/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/feedcrawler/.idea/workspace.xml b/src/feedcrawler/.idea/workspace.xml new file mode 100644 index 0000000..318fcd0 --- /dev/null +++ b/src/feedcrawler/.idea/workspace.xml @@ -0,0 +1,524 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1382185842206 + 1382185842206 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py + 8 + + + file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py + 31 + + + file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py + 52 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/feedcrawler/contentmanager/contentloader.py b/src/feedcrawler/contentmanager/contentloader.py new file mode 100644 index 0000000..0dd2404 --- /dev/null +++ b/src/feedcrawler/contentmanager/contentloader.py @@ -0,0 +1 @@ +__author__ = 'stubbfel' diff --git a/src/feedcrawler/feedmanager/__init__.py b/src/feedcrawler/feedmanager/__init__.py new file mode 100644 index 0000000..0dd2404 --- /dev/null +++ b/src/feedcrawler/feedmanager/__init__.py @@ -0,0 +1 @@ +__author__ = 'stubbfel' diff --git a/src/feedcrawler/feedmanager/__pycache__/__init__.cpython-33.pyc b/src/feedcrawler/feedmanager/__pycache__/__init__.cpython-33.pyc new file mode 100644 index 0000000..729a37e Binary files /dev/null and b/src/feedcrawler/feedmanager/__pycache__/__init__.cpython-33.pyc differ diff --git a/src/feedcrawler/feedmanager/__pycache__/feedloader.cpython-33.pyc b/src/feedcrawler/feedmanager/__pycache__/feedloader.cpython-33.pyc new file mode 100644 index 0000000..9bda88e Binary files /dev/null and b/src/feedcrawler/feedmanager/__pycache__/feedloader.cpython-33.pyc differ diff --git a/src/feedcrawler/feedmanager/feedloader.py b/src/feedcrawler/feedmanager/feedloader.py new file mode 100644 index 0000000..a6c06f8 --- /dev/null +++ b/src/feedcrawler/feedmanager/feedloader.py @@ -0,0 +1,27 @@ +__author__ = 'stubbfel' +import urllib.request + + +class FeedLoader: + + def __init__(self, src, dst): + self._src = src + self._dst = dst + + def getfeed(self): + FeedLoader.storefeed(FeedLoader.loadfeed(self._src), self._dst) + + @staticmethod + def loadfeed(url): + response = urllib.request.urlopen(url) + response_data = response.read().decode('utf-8') + + return response_data + + @staticmethod + def storefeed(feedcontent, dst): + file = open(dst, 'w') + file.write(feedcontent) + +#x = FeedLoader("http://www.rssboard.org/files/sample-rss-2.xml", "../../../testenv/feeds/testfeed/feed.xml") +#x.getfeed() \ No newline at end of file diff --git a/src/feedcrawler/feedmodel/__init__.py b/src/feedcrawler/feedmodel/__init__.py new file mode 100644 index 0000000..0dd2404 --- /dev/null +++ b/src/feedcrawler/feedmodel/__init__.py @@ -0,0 +1 @@ +__author__ = 'stubbfel' diff --git a/src/feedcrawler/feedmodel/rssmodel/__init__.py b/src/feedcrawler/feedmodel/rssmodel/__init__.py new file mode 100644 index 0000000..0dd2404 --- /dev/null +++ b/src/feedcrawler/feedmodel/rssmodel/__init__.py @@ -0,0 +1 @@ +__author__ = 'stubbfel' diff --git a/src/feedcrawler/feedmodel/rssmodel/rssfeedmodel.py b/src/feedcrawler/feedmodel/rssmodel/rssfeedmodel.py new file mode 100644 index 0000000..a60a870 --- /dev/null +++ b/src/feedcrawler/feedmodel/rssmodel/rssfeedmodel.py @@ -0,0 +1,54 @@ +__author__ = 'stubbfel' +import xml.etree.ElementTree as et + + +class RSSModel: + + def __init__(self, rawcontent): + self._rawcontent = rawcontent + root = et.fromstring(rawcontent) + self._version = root.get("version") + if self._version != "2.0": + return + + self._channels = [] + for channel in root.findall("./channel"): + self._channels.append(RSSChannel(channel)) + + @property + def rawcontent(self): + return self._rawcontent + + @property + def version(self): + return self._version + + @property + def channels(self): + return self._channels + + +class RSSChannel: + def __init__(self, channel): + self._title = channel.find("title").text + self._link = channel.find("link").text + self._description = channel.find("description").text + + @property + def title(self): + return self._title + + @property + def link(self): + return self._link + + @property + def description(self): + return self._description + + +import feedmanager.feedloader as fl +x = fl.FeedLoader.loadfeed("file:../../../../../feedcrawler/testenv/feeds/testfeed/feed.xml") +y = RSSModel(x) +print("bla") +#x.getfeed() \ No newline at end of file