This commit is contained in:
stubbfel
2013-11-29 13:06:42 +01:00
commit 809f1a8111
18 changed files with 671 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
testenv/

1
src/feedcrawler/.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
feedcrawler

View File

@@ -0,0 +1,11 @@
<component name="ProjectDictionaryState">
<dictionary name="stubbfel">
<words>
<w>feedcontent</w>
<w>getfeed</w>
<w>loadfeed</w>
<w>storefeed</w>
<w>stubbfel</w>
</words>
</dictionary>
</component>

5
src/feedcrawler/.idea/encodings.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>

18
src/feedcrawler/.idea/feedcrawler.iml generated Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="myDocStringFormat" value="Plain" />
</component>
<component name="TestRunnerService">
<option name="projectConfiguration" value="Unittests" />
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

5
src/feedcrawler/.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.3.2 (/usr/bin/python)" project-jdk-type="Python SDK" />
</project>

9
src/feedcrawler/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/feedcrawler.iml" filepath="$PROJECT_DIR$/.idea/feedcrawler.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,5 @@
<component name="DependencyValidationManager">
<state>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</state>
</component>

7
src/feedcrawler/.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="" />
</component>
</project>

524
src/feedcrawler/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,524 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="712f4a99-b86d-4fac-9f22-872d5510c8e8" name="Default" comment="" />
<ignored path="feedcrawler.iws" />
<ignored path=".idea/workspace.xml" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="DaemonCodeAnalyzer">
<disable_hints />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
<favorites_list name="feedcrawler" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="feedloader.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/feedmanager/feedloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="26" column="12" selection-start="661" selection-end="661" vertical-scroll-proportion="0.0" vertical-offset="390" max-vertical-offset="480">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="_pydev_execfile.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/_pydev_execfile.py">
<provider selected="true" editor-type-id="text-editor">
<state line="36" column="0" selection-start="1164" selection-end="1164" vertical-scroll-proportion="0.0" vertical-offset="540" max-vertical-offset="630">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="contentloader.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/contentmanager/contentloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="105">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="rssfeedmodel.py" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="40" selection-start="192" selection-end="192" vertical-scroll-proportion="0.22988506" vertical-offset="0" max-vertical-offset="885">
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindManager">
<FindUsagesManager>
<setting name="OPEN_NEW_TAB" value="false" />
</FindUsagesManager>
</component>
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/contentmanager/contentloader.py" />
<option value="$PROJECT_DIR$/models/RSSFeedModel.py" />
<option value="$PROJECT_DIR$/feedmanager/feedloader.py" />
<option value="$PROJECT_DIR$/models/RSS/2.0/RSSFeedModel.py" />
<option value="$PROJECT_DIR$/feedmodel/rssmodel/RSSFeedModel.py" />
<option value="$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-1" />
<option name="y" value="27" />
<option name="width" value="1922" />
<option name="height" value="1054" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectReloadState">
<option name="STATE" value="0" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="feedcrawler" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="External Libraries" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="&lt; Python 3.3.2 (/usr/bin/python) &gt;" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="feedcrawler" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="feedcrawler" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="feedmodel" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="feedcrawler" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="feedcrawler" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="options.splitter.main.proportions" value="0.3" />
<property name="options.lastSelected" value="reference.settingsdialog.IDE.editor.colors" />
<property name="recentsLimit" value="5" />
<property name="FullScreen" value="false" />
<property name="options.searchVisible" value="true" />
<property name="options.splitter.details.proportions" value="0.2" />
</component>
<component name="PyConsoleOptionsProvider">
<option name="myPythonConsoleState">
<PyConsoleSettings />
</option>
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/feedmodel/rssmodel" />
<recent name="$PROJECT_DIR$" />
<recent name="$PROJECT_DIR$/feedmanager" />
<recent name="$PROJECT_DIR$/feedmanager/feedmanager" />
<recent name="$PROJECT_DIR$/models/RSS/2.0" />
</key>
</component>
<component name="RunManager" selected="Python.rssfeedmodel">
<configuration default="false" name="feedloader" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/feedmanager" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/feedmanager/feedmanager/feedloader.py" />
<option name="PARAMETERS" value="" />
<RunnerSettings RunnerId="PyDebugRunner" />
<RunnerSettings RunnerId="PythonRunner" />
<ConfigurationWrapper RunnerId="PyDebugRunner" />
<ConfigurationWrapper RunnerId="PythonRunner" />
<method />
</configuration>
<configuration default="false" name="rssfeedmodel" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/feedmodel/rssmodel" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py" />
<option name="PARAMETERS" value="" />
<RunnerSettings RunnerId="PyDebugRunner" />
<RunnerSettings RunnerId="PythonRunner" />
<ConfigurationWrapper RunnerId="PyDebugRunner" />
<ConfigurationWrapper RunnerId="PythonRunner" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="py.test">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<option name="testToRun" value="" />
<option name="keywords" value="" />
<option name="params" value="" />
<option name="USE_PARAM" value="false" />
<option name="USE_KEYWORD" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Nosetests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<option name="PARAMS" value="" />
<option name="USE_PARAM" value="false" />
<method />
</configuration>
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="" />
<option name="PARAMETERS" value="" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Unittests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<option name="PUREUNITTEST" value="true" />
<option name="PARAMS" value="" />
<option name="USE_PARAM" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Doctests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Attests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="feedcrawler" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Python.feedloader" />
<item index="1" class="java.lang.String" itemvalue="Python.rssfeedmodel" />
</list>
<recent_temporary>
<list size="2">
<item index="0" class="java.lang.String" itemvalue="Python.rssfeedmodel" />
<item index="1" class="java.lang.String" itemvalue="Python.feedloader" />
</list>
</recent_temporary>
</component>
<component name="ShelveChangesManager" show_recycled="false" />
<component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false" SSL_PROTOCOLS="all">
<option name="USER" value="" />
<option name="PASSWORD" value="" />
<option name="mySSHConnectionTimeout" value="30000" />
<option name="mySSHReadTimeout" value="30000" />
<option name="LAST_MERGED_REVISION" />
<option name="MERGE_DRY_RUN" value="false" />
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
<option name="UPDATE_LOCK_ON_DEMAND" value="false" />
<option name="IGNORE_SPACES_IN_MERGE" value="false" />
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
<option name="FORCE_UPDATE" value="false" />
<option name="IGNORE_EXTERNALS" value="false" />
<myIsUseDefaultProxy>false</myIsUseDefaultProxy>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="712f4a99-b86d-4fac-9f22-872d5510c8e8" name="Default" comment="" />
<created>1382185842206</created>
<updated>1382185842206</updated>
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="-1" y="27" width="1922" height="1054" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.6002179" order="0" side_tool="false" content_ui="combo" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39978212" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3278867" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3278867" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<option name="myTodoPanelSettings">
<TodoPanelSettings />
</option>
<option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="false" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="python-line">
<url>file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py</url>
<line>8</line>
</line-breakpoint>
<line-breakpoint enabled="true" type="python-line">
<url>file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py</url>
<line>31</line>
<option name="timeStamp" value="3" />
</line-breakpoint>
<line-breakpoint enabled="true" type="python-line">
<url>file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py</url>
<line>52</line>
<option name="timeStamp" value="5" />
</line-breakpoint>
</breakpoints>
<option name="time" value="6" />
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/feedmanager/feedloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="26" column="12" selection-start="661" selection-end="661" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="480">
<folding />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/_pydev_execfile.py">
<provider selected="true" editor-type-id="text-editor">
<state line="36" column="0" selection-start="1164" selection-end="1164" vertical-scroll-proportion="0.0" vertical-offset="540" max-vertical-offset="630">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contentmanager/contentloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="105">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py">
<provider selected="true" editor-type-id="text-editor">
<state line="33" column="46" selection-start="782" selection-end="782" vertical-scroll-proportion="0.0" vertical-offset="495" max-vertical-offset="885">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/feedmanager/feedloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="28" selection-start="297" selection-end="297" vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="360">
<folding />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/_pydev_execfile.py">
<provider selected="true" editor-type-id="text-editor">
<state line="36" column="0" selection-start="1164" selection-end="1164" vertical-scroll-proportion="0.0" vertical-offset="540" max-vertical-offset="630">
<folding />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python3.3/urllib/request.py">
<provider selected="true" editor-type-id="text-editor">
<state line="1413" column="0" selection-start="50223" selection-end="50223" vertical-scroll-proportion="0.7159864" vertical-offset="20429" max-vertical-offset="38625" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/feedmanager/feedloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="26" column="12" selection-start="661" selection-end="661" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="480">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contentmanager/contentloader.py">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="588">
<folding />
</state>
</provider>
</entry>
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/_pydev_execfile.py">
<provider selected="true" editor-type-id="text-editor">
<state line="36" column="0" selection-start="1164" selection-end="1164" vertical-scroll-proportion="0.0" vertical-offset="108" max-vertical-offset="630">
<folding />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python3.3/xml/etree/ElementTree.py">
<provider selected="true" editor-type-id="text-editor">
<state line="1355" column="0" selection-start="47065" selection-end="47065" vertical-scroll-proportion="0.33333334" vertical-offset="20061" max-vertical-offset="27090">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/feedmodel/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state line="1" column="0" selection-start="24" selection-end="24" vertical-scroll-proportion="0.01687289" vertical-offset="0" max-vertical-offset="889">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/feedmodel/rssmodel/rssfeedmodel.py">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="40" selection-start="192" selection-end="192" vertical-scroll-proportion="0.22988506" vertical-offset="0" max-vertical-offset="885">
<folding />
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -0,0 +1 @@
__author__ = 'stubbfel'

View File

@@ -0,0 +1 @@
__author__ = 'stubbfel'

View File

@@ -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()

View File

@@ -0,0 +1 @@
__author__ = 'stubbfel'

View File

@@ -0,0 +1 @@
__author__ = 'stubbfel'

View File

@@ -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()