removed a feed from paleo and now using my own copy of rss-braider

This commit is contained in:
Martin Donnelly 2016-07-05 11:09:41 +01:00
parent c0a4d221a4
commit 1bbd658815
6 changed files with 398 additions and 483 deletions

View File

@ -1,31 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="c2fd5632-2143-4c7e-8b0d-96d7692b700b" name="Default" comment=""> <list default="true" id="c2fd5632-2143-4c7e-8b0d-96d7692b700b" name="Default" comment="changing log level for bunyan">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bare-news.js" />
<change type="DELETED" beforePath="$PROJECT_DIR$/node_modules/ejs/test/tmp/include.ejs" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/node_modules/ejs/test/tmp/include_preprocessor.ejs" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/node_modules/ejs/test/tmp/renderFile.ejs" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/fit.js" afterPath="$PROJECT_DIR$/fit.js" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/rss-braider/.npmignore" afterPath="$PROJECT_DIR$/node_modules/rss-braider/.npmignore" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/news.js" afterPath="$PROJECT_DIR$/news.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/Jakefile" afterPath="$PROJECT_DIR$/node_modules/ejs/Jakefile" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/README.md" afterPath="$PROJECT_DIR$/node_modules/ejs/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/ejs.js" afterPath="$PROJECT_DIR$/node_modules/ejs/ejs.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/ejs.min.js" afterPath="$PROJECT_DIR$/node_modules/ejs/ejs.min.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/lib/ejs.js" afterPath="$PROJECT_DIR$/node_modules/ejs/lib/ejs.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/package.json" afterPath="$PROJECT_DIR$/node_modules/ejs/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/ejs/test/ejs.js" afterPath="$PROJECT_DIR$/node_modules/ejs/test/ejs.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/express/package.json" afterPath="$PROJECT_DIR$/node_modules/express/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/README.md" afterPath="$PROJECT_DIR$/node_modules/lodash/README.md" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/array.js" afterPath="$PROJECT_DIR$/node_modules/lodash/array.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/lang.js" afterPath="$PROJECT_DIR$/node_modules/lodash/lang.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/lodash/package.json" afterPath="$PROJECT_DIR$/node_modules/lodash/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js" afterPath="$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js" afterPath="$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/rss-braider/package.json" afterPath="$PROJECT_DIR$/node_modules/rss-braider/package.json" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/node_modules/rss-braider/package.json" afterPath="$PROJECT_DIR$/node_modules/rss-braider/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/package.json" afterPath="$PROJECT_DIR$/package.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/paleo.js" afterPath="$PROJECT_DIR$/paleo.js" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/paleo.js" afterPath="$PROJECT_DIR$/paleo.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/plugins/fix_images.js" afterPath="$PROJECT_DIR$/plugins/fix_images.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/plugins/fix_scripts.js" afterPath="$PROJECT_DIR$/plugins/fix_scripts.js" />
</list> </list>
<ignored path="rinser.iws" /> <ignored path="rinser.iws" />
<ignored path=".idea/workspace.xml" /> <ignored path=".idea/workspace.xml" />
@ -48,65 +30,21 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="news.js" pinned="false" current-in-tab="false"> <file leaf-file-name="pipes-server.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/news.js"> <entry file="file://$PROJECT_DIR$/pipes-server.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152"> <state relative-caret-position="342">
<caret line="13" column="22" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" /> <caret line="18" column="0" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding>
<marker date="1465990064000" expanded="true" signature="460:3655" ph="{&quot;feed_name&quot;: &quot;feed&quot;...}" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="bare-news.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/bare-news.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437">
<caret line="23" column="48" selection-start-line="23" selection-start-column="48" selection-end-line="23" selection-end-column="48" />
<folding>
<marker date="1465987053000" expanded="true" signature="777:831" ph="[...]" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="app.v3.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/app.v3.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<caret line="58" column="13" selection-start-line="58" selection-start-column="13" selection-end-line="58" selection-end-column="13" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="paleo.json" pinned="false" current-in-tab="true"> <file leaf-file-name="jobs-local.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/dist/paleo.json"> <entry file="file://$PROJECT_DIR$/jobs-local.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="570"> <state relative-caret-position="266">
<caret line="0" column="4334" selection-start-line="0" selection-start-column="4334" selection-end-line="0" selection-end-column="4334" /> <caret line="223" column="31" selection-start-line="223" selection-start-column="31" selection-end-line="223" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fit.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/fit.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="380">
<caret line="20" column="64" selection-start-line="20" selection-start-column="64" selection-end-line="20" selection-end-column="64" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fix_scripts.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/plugins/fix_scripts.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171">
<caret line="9" column="2" selection-start-line="9" selection-start-column="2" selection-end-line="9" selection-end-column="2" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -115,63 +53,38 @@
<file leaf-file-name="paleo.js" pinned="false" current-in-tab="false"> <file leaf-file-name="paleo.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/paleo.js"> <entry file="file://$PROJECT_DIR$/paleo.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-266"> <state relative-caret-position="608">
<caret line="30" column="48" selection-start-line="30" selection-start-column="48" selection-end-line="30" selection-end-column="48" /> <caret line="63" column="11" selection-start-line="59" selection-start-column="5" selection-end-line="63" selection-end-column="11" />
<folding>
<marker date="1465988810000" expanded="true" signature="269:388" ph="//..." />
<marker date="1465988810000" expanded="true" signature="415:1676" ph="{&quot;feed_name&quot;: &quot;feed&quot;...}" />
<marker date="1465988810000" expanded="true" signature="546:686" ph="{&quot;title&quot;: &quot;Paleo&quot;...}" />
<marker date="1465988810000" expanded="true" signature="766:1674" ph="[...]" />
<marker date="1465988810000" expanded="true" signature="767:857" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="859:938" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="940:1022" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1024:1103" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1105:1193" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1195:1277" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1279:1380" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1382:1475" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1477:1555" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1557:1662" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1700:1889" ph="{&quot;indent&quot;: &quot; &quot;...}" />
<marker date="1465988810000" expanded="true" signature="1952:2042" ph="//..." />
<marker date="1465988810000" expanded="true" signature="2116:2664" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2131:2171" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2327:2445" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2346:2394" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2453:2662" ph="/*...*/" />
<marker date="1465988810000" expanded="true" signature="2668:3008" ph="/*...*/" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fix_images.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/plugins/fix_images.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38">
<caret line="2" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="zprogress.js" pinned="false" current-in-tab="false"> <file leaf-file-name=".npmignore" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/html/js/zprogress.js"> <entry file="file://$PROJECT_DIR$/node_modules/rss-braider/.npmignore">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="581">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="78" column="0" selection-start-line="78" selection-start-column="0" selection-end-line="78" selection-end-column="0" />
<folding> <folding />
<element signature="n#!!doc" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="jquery.unveil.js" pinned="false" current-in-tab="false"> <file leaf-file-name="package.json" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/html/js/jquery.unveil.js"> <entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="228"> <state relative-caret-position="437">
<caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" /> <caret line="23" column="81" selection-start-line="23" selection-start-column="20" selection-end-line="23" selection-end-column="81" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RssBraider.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="364">
<caret line="67" column="0" selection-start-line="67" selection-start-column="0" selection-end-line="67" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -220,7 +133,6 @@
<option value="$PROJECT_DIR$/dist/index.html" /> <option value="$PROJECT_DIR$/dist/index.html" />
<option value="$PROJECT_DIR$/html/js/shell.js" /> <option value="$PROJECT_DIR$/html/js/shell.js" />
<option value="$PROJECT_DIR$/dist/js/vendor.js" /> <option value="$PROJECT_DIR$/dist/js/vendor.js" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/html/css/app.css" /> <option value="$PROJECT_DIR$/html/css/app.css" />
<option value="$PROJECT_DIR$/html/icons/manifest.json" /> <option value="$PROJECT_DIR$/html/icons/manifest.json" />
<option value="$PROJECT_DIR$/html/js/jquery.unveil.js" /> <option value="$PROJECT_DIR$/html/js/jquery.unveil.js" />
@ -235,16 +147,17 @@
<option value="$PROJECT_DIR$/lifestyle.js" /> <option value="$PROJECT_DIR$/lifestyle.js" />
<option value="$PROJECT_DIR$/dist/js/app.js" /> <option value="$PROJECT_DIR$/dist/js/app.js" />
<option value="$PROJECT_DIR$/html/css/custom.scss" /> <option value="$PROJECT_DIR$/html/css/custom.scss" />
<option value="$PROJECT_DIR$/jobs-local.js" />
<option value="$PROJECT_DIR$/bored.js" /> <option value="$PROJECT_DIR$/bored.js" />
<option value="$PROJECT_DIR$/html/pipes.appcache" /> <option value="$PROJECT_DIR$/html/pipes.appcache" />
<option value="$PROJECT_DIR$/html/js/app.v3.js" /> <option value="$PROJECT_DIR$/html/js/app.v3.js" />
<option value="$PROJECT_DIR$/plugins/fix_images.js" /> <option value="$PROJECT_DIR$/plugins/fix_images.js" />
<option value="$PROJECT_DIR$/plugins/fix_scripts.js" /> <option value="$PROJECT_DIR$/plugins/fix_scripts.js" />
<option value="$PROJECT_DIR$/bare-news.js" /> <option value="$PROJECT_DIR$/bare-news.js" />
<option value="$PROJECT_DIR$/paleo.js" />
<option value="$PROJECT_DIR$/news.js" /> <option value="$PROJECT_DIR$/news.js" />
<option value="$PROJECT_DIR$/fit.js" /> <option value="$PROJECT_DIR$/fit.js" />
<option value="$PROJECT_DIR$/jobs-local.js" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/paleo.js" />
</list> </list>
</option> </option>
</component> </component>
@ -319,7 +232,7 @@
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scratches" /> <pane id="Scope" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<PATH> <PATH>
@ -338,23 +251,9 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT> </PATH_ELEMENT>
</PATH> </PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Rinser" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dist" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane> </subPane>
</pane> </pane>
<pane id="Scope" /> <pane id="Scratches" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
@ -363,7 +262,7 @@
<property name="recentsLimit" value="5" /> <property name="recentsLimit" value="5" />
<property name="settings.editor.selected.configurable" value="watcher.settings" /> <property name="settings.editor.selected.configurable" value="watcher.settings" />
<property name="settings.editor.splitter.proportion" value="0.2" /> <property name="settings.editor.splitter.proportion" value="0.2" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../rss-braider" /> <property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="157" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="157" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="186" /> <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="186" />
@ -537,28 +436,9 @@
<workItem from="1464684803647" duration="48000" /> <workItem from="1464684803647" duration="48000" />
<workItem from="1464684884123" duration="3322000" /> <workItem from="1464684884123" duration="3322000" />
<workItem from="1464858361156" duration="552000" /> <workItem from="1464858361156" duration="552000" />
<workItem from="1465985055430" duration="6444000" /> <workItem from="1465985055430" duration="7699000" />
</task> <workItem from="1467626360293" duration="1130000" />
<task id="LOCAL-00002" summary="debugging braider"> <workItem from="1467711290711" duration="2053000" />
<created>1438336477190</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1438336477190</updated>
</task>
<task id="LOCAL-00003" summary="debugging braider">
<created>1438339548681</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1438339548681</updated>
</task>
<task id="LOCAL-00004" summary="debugging braider">
<created>1438339596747</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1438339596747</updated>
</task> </task>
<task id="LOCAL-00005" summary="debugging braider"> <task id="LOCAL-00005" summary="debugging braider">
<created>1438339764867</created> <created>1438339764867</created>
@ -882,37 +762,58 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1463587273882</updated> <updated>1463587273882</updated>
</task> </task>
<option name="localTasksCounter" value="51" /> <task id="LOCAL-00051" summary="tidied feeds a bit and fixed fit&#10;">
<created>1465997901541</created>
<option name="number" value="00051" />
<option name="presentableId" value="LOCAL-00051" />
<option name="project" value="LOCAL" />
<updated>1465997901542</updated>
</task>
<task id="LOCAL-00052" summary="changing log level for bunyan">
<created>1467711377493</created>
<option name="number" value="00052" />
<option name="presentableId" value="LOCAL-00052" />
<option name="project" value="LOCAL" />
<updated>1467711377496</updated>
</task>
<task id="LOCAL-00053" summary="changing log level for bunyan">
<created>1467711568699</created>
<option name="number" value="00053" />
<option name="presentableId" value="LOCAL-00053" />
<option name="project" value="LOCAL" />
<updated>1467711568699</updated>
</task>
<option name="localTasksCounter" value="54" />
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="36928000" /> <option name="totallyTimeSpent" value="41366000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="4" y="25" width="1916" height="1057" extended-state="0" /> <frame x="4" y="25" width="1916" height="1057" extended-state="0" />
<editor active="false" /> <editor active="false" />
<layout> <layout>
<window_info id="Gulp" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2802111" sideWeight="0.21428572" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Gulp" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2802111" sideWeight="0.23045821" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2802111" sideWeight="0.78571427" order="0" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2802111" sideWeight="0.7695418" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33368757" sideWeight="0.353562" order="7" 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" show_stripe_button="true" weight="0.33368757" sideWeight="0.353562" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20979765" sideWeight="0.46860158" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20979765" sideWeight="0.46860158" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33333334" sideWeight="0.646438" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32896176" sideWeight="0.4838976" 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" show_stripe_button="true" weight="0.32896176" sideWeight="0.4838976" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3997773" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32987553" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32987553" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33333334" sideWeight="0.646438" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="SonarLint" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="SonarLint" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3281106" 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" show_stripe_button="true" weight="0.3281106" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="SonarQube" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32962137" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="SonarQube" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32962137" sideWeight="0.5" order="7" 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" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" 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" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3997773" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
</layout> </layout>
<layout-to-restore> <layout-to-restore>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
@ -967,7 +868,9 @@
<MESSAGE value="needed the bower file" /> <MESSAGE value="needed the bower file" />
<MESSAGE value="updated plugins and removed a couple of broken feeds" /> <MESSAGE value="updated plugins and removed a couple of broken feeds" />
<MESSAGE value="fixed jobs feed and added it to the main viewer" /> <MESSAGE value="fixed jobs feed and added it to the main viewer" />
<option name="LAST_COMMIT_MESSAGE" value="fixed jobs feed and added it to the main viewer" /> <MESSAGE value="tidied feeds a bit and fixed fit&#10;" />
<MESSAGE value="changing log level for bunyan" />
<option name="LAST_COMMIT_MESSAGE" value="changing log level for bunyan" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
@ -976,13 +879,6 @@
<watches-manager /> <watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/gulp/build.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="15" column="3" selection-start-line="15" selection-start-column="3" selection-end-line="15" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/html/icons/browserconfig.xml"> <entry file="file://$PROJECT_DIR$/html/icons/browserconfig.xml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
@ -1059,14 +955,14 @@
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/bower_components/string/README.md"> <entry file="file://$PROJECT_DIR$/bower_components/string/README.md">
<provider editor-type-id="MarkdownPreviewEditor">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state> </state>
</provider> </provider>
<provider editor-type-id="MarkdownPreviewEditor">
<state />
</provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/bower_components/string/dist/string.js"> <entry file="file://$PROJECT_DIR$/bower_components/string/dist/string.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@ -1132,13 +1028,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1805">
<caret line="95" column="40" selection-start-line="95" selection-start-column="40" selection-end-line="95" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore"> <entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1425"> <state relative-caret-position="1425">
@ -1157,7 +1046,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1165,7 +1053,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323"> <state relative-caret-position="323">
<caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" /> <caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1173,7 +1060,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1159"> <state relative-caret-position="1159">
<caret line="61" column="17" selection-start-line="61" selection-start-column="17" selection-end-line="61" selection-end-column="17" /> <caret line="61" column="17" selection-start-line="61" selection-start-column="17" selection-end-line="61" selection-end-column="17" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1181,7 +1067,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247"> <state relative-caret-position="247">
<caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" /> <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1189,7 +1074,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1007"> <state relative-caret-position="1007">
<caret line="53" column="0" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" /> <caret line="53" column="0" selection-start-line="53" selection-start-column="0" selection-end-line="53" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1197,23 +1081,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2546"> <state relative-caret-position="2546">
<caret line="134" column="7" selection-start-line="127" selection-start-column="4" selection-end-line="134" selection-end-column="7" /> <caret line="134" column="7" selection-start-line="127" selection-start-column="4" selection-end-line="134" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs-local.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4693">
<caret line="247" column="0" selection-start-line="247" selection-start-column="0" selection-end-line="247" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="399">
<caret line="21" column="23" selection-start-line="7" selection-start-column="3" selection-end-line="21" selection-end-column="23" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1221,7 +1088,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="664"> <state relative-caret-position="664">
<caret line="89" column="3" selection-start-line="82" selection-start-column="0" selection-end-line="89" selection-end-column="3" /> <caret line="89" column="3" selection-start-line="82" selection-start-column="0" selection-end-line="89" selection-end-column="3" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1229,15 +1095,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209"> <state relative-caret-position="209">
<caret line="17" column="26" selection-start-line="17" selection-start-column="26" selection-end-line="17" selection-end-column="26" /> <caret line="17" column="26" selection-start-line="17" selection-start-column="26" selection-end-line="17" selection-end-column="26" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pipes-server.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="28" column="51" selection-start-line="28" selection-start-column="51" selection-end-line="28" selection-end-column="51" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1245,7 +1102,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266"> <state relative-caret-position="266">
<caret line="14" column="1" selection-start-line="14" selection-start-column="1" selection-end-line="14" selection-end-column="1" /> <caret line="14" column="1" selection-start-line="14" selection-start-column="1" selection-end-line="14" selection-end-column="1" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1253,9 +1109,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="41" selection-start-line="0" selection-start-column="41" selection-end-line="0" selection-end-column="41" /> <caret line="0" column="41" selection-start-line="0" selection-start-column="41" selection-end-line="0" selection-end-column="41" />
<folding>
<element signature="n#style#0;n#div#3;n#div#0;n#body#0;n#html#0;n#!!top" expanded="false" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1263,17 +1116,13 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/html/js/jquery.unveil.js"> <entry file="file://$PROJECT_DIR$/html/js/jquery.unveil.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="228"> <state relative-caret-position="304">
<caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" /> <caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1281,7 +1130,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38"> <state relative-caret-position="38">
<caret line="2" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="2" selection-end-column="0" /> <caret line="2" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1289,38 +1137,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171"> <state relative-caret-position="171">
<caret line="9" column="2" selection-start-line="9" selection-start-column="2" selection-end-line="9" selection-end-column="2" /> <caret line="9" column="2" selection-start-line="9" selection-start-column="2" selection-end-line="9" selection-end-column="2" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/paleo.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-266">
<caret line="30" column="48" selection-start-line="30" selection-start-column="48" selection-end-line="30" selection-end-column="48" />
<folding>
<marker date="1465988810000" expanded="true" signature="269:388" ph="//..." />
<marker date="1465988810000" expanded="true" signature="415:1676" ph="{&quot;feed_name&quot;: &quot;feed&quot;...}" />
<marker date="1465988810000" expanded="true" signature="546:686" ph="{&quot;title&quot;: &quot;Paleo&quot;...}" />
<marker date="1465988810000" expanded="true" signature="766:1674" ph="[...]" />
<marker date="1465988810000" expanded="true" signature="767:857" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="859:938" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="940:1022" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1024:1103" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1105:1193" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1195:1277" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1279:1380" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1382:1475" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1477:1555" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1557:1662" ph="{&quot;count&quot;: 100...}" />
<marker date="1465988810000" expanded="true" signature="1700:1889" ph="{&quot;indent&quot;: &quot; &quot;...}" />
<marker date="1465988810000" expanded="true" signature="1952:2042" ph="//..." />
<marker date="1465988810000" expanded="true" signature="2116:2664" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2131:2171" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2327:2445" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2346:2394" ph="{...}" />
<marker date="1465988810000" expanded="true" signature="2453:2662" ph="/*...*/" />
<marker date="1465988810000" expanded="true" signature="2668:3008" ph="/*...*/" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1328,19 +1144,13 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437"> <state relative-caret-position="437">
<caret line="23" column="48" selection-start-line="23" selection-start-column="48" selection-end-line="23" selection-end-column="48" /> <caret line="23" column="48" selection-start-line="23" selection-start-column="48" selection-end-line="23" selection-end-column="48" />
<folding>
<marker date="1465987053000" expanded="true" signature="777:831" ph="[...]" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/news.js"> <entry file="file://$PROJECT_DIR$/news.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152"> <state relative-caret-position="247">
<caret line="13" column="22" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" /> <caret line="13" column="22" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
<folding>
<marker date="1465990064000" expanded="true" signature="460:3655" ph="{&quot;feed_name&quot;: &quot;feed&quot;...}" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1348,22 +1158,67 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="380"> <state relative-caret-position="380">
<caret line="20" column="64" selection-start-line="20" selection-start-column="64" selection-end-line="20" selection-end-column="64" /> <caret line="20" column="64" selection-start-line="20" selection-start-column="64" selection-end-line="20" selection-end-column="64" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/html/js/app.v3.js"> <entry file="file://$PROJECT_DIR$/html/js/app.v3.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646"> <state relative-caret-position="1102">
<caret line="58" column="13" selection-start-line="58" selection-start-column="13" selection-end-line="58" selection-end-column="13" /> <caret line="58" column="13" selection-start-line="58" selection-start-column="13" selection-end-line="58" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/dist/paleo.json"> <entry file="file://$PROJECT_DIR$/dist/paleo.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="570"> <state relative-caret-position="551">
<caret line="0" column="4334" selection-start-line="0" selection-start-column="4334" selection-end-line="0" selection-end-column="4334" /> <caret line="0" column="4334" selection-start-line="0" selection-start-column="4334" selection-end-line="0" selection-end-column="4334" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pipes-server.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="18" column="0" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/jobs-local.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="223" column="31" selection-start-line="223" selection-start-column="31" selection-end-line="223" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/lib/RssBraider.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="364">
<caret line="67" column="0" selection-start-line="67" selection-start-column="0" selection-end-line="67" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437">
<caret line="23" column="81" selection-start-line="23" selection-start-column="20" selection-end-line="23" selection-end-column="81" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/paleo.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="608">
<caret line="63" column="11" selection-start-line="59" selection-start-column="5" selection-end-line="63" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/node_modules/rss-braider/.npmignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="581">
<caret line="78" column="0" selection-start-line="78" selection-start-column="0" selection-end-line="78" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>

80
node_modules/rss-braider/.npmignore generated vendored
View File

@ -1 +1,79 @@
node_modules # Created by .ignore support plugin (hsz.mobi)
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
*.iml
/dist
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
### Node template
# Logs
logs
*.log
npm-debug.log*
# Runtime data
pids
*.pid
*.seed
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directory
# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git
node_modules

View File

@ -1,207 +1,206 @@
// process feed-reader item into node-rss item // Process feed-reader item into node-rss item
var FeedParser = require('feedparser'), var FeedParser = require('feedparser');
bunyan = require('bunyan'), var bunyan = require('bunyan');
_ = require('lodash'), var _ = require('lodash');
async = require('async'), var async = require('async');
request = require('request'), var request = require('request');
RSS = require('rss'), var RSS = require('rss');
fs = require('fs'), var fs = require('fs');
package_json = require('../package.json'), var package_json = require('../package.json');
logger; var logger;
var RssBraider = function (options) { var RssBraider = function(options) {
if (!options) { if (!options) {
options = {}; options = {};
} }
this.feeds = options.feeds || null; this.feeds = options.feeds || null;
this.logger = options.logger || bunyan.createLogger({name: package_json.name}); this.logger = options.logger || bunyan.createLogger({name: package_json.name});
if (options.log_level) { if (options.log_level) {
this.logger.level(options.log_level); this.logger.level(options.log_level);
} }
this.indent = options.indent || " "; this.indent = options.indent || ' ';
this.dedupe_fields = options.dedupe_fields || []; // The fields to use to identify duplicate articles this.dedupe_fields = options.dedupe_fields || []; // The fields to use to identify duplicate articles
this.date_sort_order = options.date_sort_order || "desc"; this.date_sort_order = options.date_sort_order || 'desc';
this.plugins_directories = options.plugins_directories || []; this.plugins_directories = options.plugins_directories || [];
this.plugins = {}; this.plugins = {};
this.loadPlugins(); this.loadPlugins();
}; };
// loadup self.plugins with the plugin functions // Loadup self.plugins with the plugin functions
RssBraider.prototype.loadPlugins = function () { RssBraider.prototype.loadPlugins = function() {
var self = this; var self = this;
if (self.plugins_directories.length < 1) { if (self.plugins_directories.length < 1) {
self.logger.debug("No plugins_directories specified. No plugins loaded."); self.logger.debug('No plugins_directories specified. No plugins loaded.');
} }
self.plugins_directories.forEach(function(path){ self.plugins_directories.forEach(function(path) {
// load up each file and assign it to the plugins // Load up each file and assign it to the plugins
var filenames = fs.readdirSync(path); var filenames = fs.readdirSync(path);
filenames.forEach(function(filename){ filenames.forEach(function(filename) {
var plugin_name = filename.replace(/.js$/, ''); var plugin_name = filename.replace(/.js$/, '');
if (self.plugins[plugin_name]) { if (self.plugins[plugin_name]) {
self.logger.warn("Duplicate plugin name: ", plugin_name, "Overwriting with newer plugin"); self.logger.warn('Duplicate plugin name: ', plugin_name, 'Overwriting with newer plugin');
} }
self.plugins[plugin_name] = require(path + '/' + plugin_name); self.plugins[plugin_name] = require(path + '/' + plugin_name);
self.logger.debug("plugin registered:", plugin_name); self.logger.debug('plugin registered:', plugin_name);
}); });
}); });
}; };
RssBraider.prototype.feedExists = function (feed_name) { RssBraider.prototype.feedExists = function(feed_name) {
if (this.feeds && this.feeds[feed_name]) { if (this.feeds && this.feeds[feed_name]) {
return true; return true;
} else { } else {
return false; return false;
} }
}; };
// Gather data from all feed sources, process each article/item through plugins, // Gather data from all feed sources, process each article/item through plugins,
// trim down to desired count, dedupe and sort // trim down to desired count, dedupe and sort
RssBraider.prototype.processFeed = function(feed_name, format, callback) RssBraider.prototype.processFeed = function(feed_name, format, callback) {
{ var self = this;
var self = this, var feed = self.feeds[feed_name];
feed = self.feeds[feed_name], var feed_articles = [];
feed_articles = [];
if (!format) { if (!format) {
format = 'rss'; format = 'rss';
} }
if (!feed || !feed.sources || feed.sources.length < 1) { if (!feed || !feed.sources || feed.sources.length < 1) {
return callback("No definition for feed name: " + feed_name); return callback('No definition for feed name: ' + feed_name);
} }
// Process each feed source through Feedparser to get articles. // Process each feed source through Feedparser to get articles.
// Then process each item/article through rss-braider and any plugins // Then process each item/article through rss-braider and any plugins
async.each(feed.sources, function(source, callback) { async.each(feed.sources, function(source, callback) {
var count = source.count || feed.default_count || 10, // Number of articles per source var count = source.count || feed.default_count || 10;
url = source.feed_url || null, var url = source.feed_url || null;
file_path = source.file_path || null, var file_path = source.file_path || null;
source_articles = []; var source_articles = [];
var feedparser = new FeedParser(); var feedparser = new FeedParser();
if (url) { if (url) {
var req = request(url); var req = request(url);
req.on('error', function (error) { req.on('error', function(error) {
self.logger.error(error); self.logger.error(error);
}); });
req.on('response', function (res) { req.on('response', function(res) {
var stream = this; var stream = this;
if (res.statusCode !== 200) { if (res.statusCode !== 200) {
return this.emit('error', 'Bad status code: ' + res.statusCode); return this.emit('error', 'Bad status code for ' + url + ': ' + res.statusCode);
} }
stream.pipe(feedparser); stream.pipe(feedparser);
}); });
} else if (file_path) { } else if (file_path) {
// open file // Open file
var filestream = fs.createReadStream(file_path); var filestream = fs.createReadStream(file_path);
filestream.pipe(feedparser); filestream.pipe(feedparser);
} else { } else {
self.logger.error("url or file_path not defined for feed: " + source.name); self.logger.error('url or file_path not defined for feed: ' + source.name);
return callback(); return callback();
} }
feedparser.on('error', function(error) { feedparser.on('error', function(error) {
self.logger.error("feedparser",", source.name:", source.name, ", url:", source.feed_url, error.stack); self.logger.error('feedparser',', source.name:', source.name, ', url:', source.feed_url, error.stack);
}); });
// Collect the articles from this source // Collect the articles from this source
feedparser.on('readable', function() { feedparser.on('readable', function() {
var stream = this, var stream = this,
item; item;
while ( !!(item = stream.read()) ) { while (!!(item = stream.read())) {
if (source.feed_url) { if (source.feed_url) {
item.source_url = source.feed_url; item.source_url = source.feed_url;
} }
// Process Item/Article // Process Item/Article
var article = self.processItem(item, source, feed_name); var article = self.processItem(item, source, feed_name);
// plugins may filter items and return null // Plugins may filter items and return null
if (article) { if (article) {
source_articles.push(article); source_articles.push(article);
} }
} }
}); });
feedparser.on("end", function(){ feedparser.on('end', function() {
// de-dupe , date sort, and trim this feed's articles and push them into array // De-dupe , date sort, and trim this feed's articles and push them into array
source_articles = self.dedupe(source_articles, self.dedupe_fields); source_articles = self.dedupe(source_articles, self.dedupe_fields);
source_articles = self.date_sort(source_articles); source_articles = self.date_sort(source_articles);
source_articles = source_articles.slice(0, count); source_articles = source_articles.slice(0, count);
feed_articles = feed_articles.concat(source_articles); feed_articles = feed_articles.concat(source_articles);
callback(); callback();
}); });
}, },
function(err){ function(err) {
if (err) { if (err) {
self.logger.error(err); self.logger.error(err);
return callback(err); return callback(err);
} else { } else {
// Final Dedupe step and resort // Final Dedupe step and resort
feed_articles = self.dedupe(feed_articles, self.dedupe_fields); feed_articles = self.dedupe(feed_articles, self.dedupe_fields);
feed_articles = self.date_sort(feed_articles); feed_articles = self.date_sort(feed_articles);
// Create new feed with these articles. Follows node-rss spec // Create new feed with these articles. Follows node-rss spec
var options = { var options = {
title : feed.meta.title, title: feed.meta.title,
description : feed.meta.description, description: feed.meta.description,
generator : feed.meta.generator || 'rss-braider', generator: feed.meta.generator || 'rss-braider',
site_url : feed.meta.site_url || null, site_url: feed.meta.site_url || null,
feed_url : feed.meta.feed_url || null, feed_url: feed.meta.feed_url || null,
image_url : feed.meta.image_url || null, image_url: feed.meta.image_url || null,
webMaster : feed.meta.webMaster || null, webMaster: feed.meta.webMaster || null,
copyright : feed.meta.copyright || null, copyright: feed.meta.copyright || null,
categories : feed.meta.categories || null, categories: feed.meta.categories || null,
custom_namespaces : feed.custom_namespaces || [], custom_namespaces: feed.custom_namespaces || [],
no_cdata_fields : feed.no_cdata_fields no_cdata_fields: feed.no_cdata_fields
}; };
var newfeed = new RSS(options, feed_articles); var newfeed = new RSS(options, feed_articles);
var ret_string; var ret_string;
switch (format.toLowerCase()) { switch (format.toLowerCase()) {
case 'json': case 'json':
ret_string = JSON.stringify(newfeed); ret_string = JSON.stringify(newfeed);
break; break;
case 'rss': case 'rss':
ret_string = newfeed.xml(self.indent); ret_string = newfeed.xml(self.indent);
break; break;
default: default:
self.logger.error("Unknown format:", format); self.logger.error('Unknown format:', format);
ret_string = "{}"; ret_string = '{}';
}
return callback(null, ret_string);
} }
});
}; return callback(null, ret_string);
}
});
};
// Accepts a feed-parser item and builds a node-rss itemOptions object // Accepts a feed-parser item and builds a node-rss itemOptions object
RssBraider.prototype.processItem = function (item, source, feed_name) { RssBraider.prototype.processItem = function(item, source, feed_name) {
var self = this; var self = this;
if (!item || !source || !feed_name) { if (!item || !source || !feed_name) {
self.logger.error("processItem: missing item, source, and/or feed_name"); self.logger.error('processItem: missing item, source, and/or feed_name');
return null; return null;
} }
// Basics // Basics
var itemOptions = { var itemOptions = {
title : item.title, title: item.title,
description : item.summary, description: item.summary,
url : item.link, url: item.link,
guid : item.guid, guid: item.guid,
permalink : item.permalink, permalink: item.permalink,
author : item.author, author: item.author,
date : item.date, date: item.date,
categories : item.categories, categories: item.categories,
custom_elements : [] custom_elements: []
}; };
// Run the plugins specified by the "plugins" section of the // Run the plugins specified by the "plugins" section of the
// feed .js file to build out any custom elements or // feed .js file to build out any custom elements or
@ -209,9 +208,9 @@ RssBraider.prototype.processItem = function (item, source, feed_name) {
var filteredItemOptions = self.runPlugins(item, itemOptions, source, feed_name); var filteredItemOptions = self.runPlugins(item, itemOptions, source, feed_name);
return filteredItemOptions; return filteredItemOptions;
}; };
RssBraider.prototype.runPlugins = function (item, itemOptions, source, feed_name) { RssBraider.prototype.runPlugins = function(item, itemOptions, source, feed_name) {
var self = this, var self = this,
feed = self.feeds[feed_name] || {}, feed = self.feeds[feed_name] || {},
plugins_list = feed.plugins || [], plugins_list = feed.plugins || [],
@ -221,77 +220,77 @@ RssBraider.prototype.runPlugins = function (item, itemOptions, source, feed_name
// Process the item through the desired feed plugins // Process the item through the desired feed plugins
// plugins_list.forEach(function(plugin_name){ // plugins_list.forEach(function(plugin_name){
for (var i = 0; i < plugins_list.length; i++) { for (var i = 0; i < plugins_list.length; i++) {
var plugin_name = plugins_list[i]; var plugin_name = plugins_list[i];
if (self.plugins[plugin_name]) { if (self.plugins[plugin_name]) {
filteredItemOptions = self.plugins[plugin_name](item, itemOptions, source); filteredItemOptions = self.plugins[plugin_name](item, itemOptions, source);
} else { } else {
self.logger.error("A plugin named '" + plugin_name + "' hasn't been registered"); self.logger.error('A plugin named \'' + plugin_name + '\' hasn\'t been registered');
} }
// A plugin returning -1 means skip this item // A plugin returning -1 means skip this item
if (filteredItemOptions === -1) { if (filteredItemOptions === -1) {
self.logger.debug("Plugin '" + plugin_name + "' filtered item from feed '" + feed.meta.title + "'", item.guid); self.logger.debug('Plugin \'' + plugin_name + '\' filtered item from feed \'' + feed.meta.title + '\'', item.guid);
itemOptions = null; itemOptions = null;
break; break;
} }
// Check that the plugin didn't just return null or undef, which would be bad. // Check that the plugin didn't just return null or undef, which would be bad.
if (!filteredItemOptions) { if (!filteredItemOptions) {
self.logger.debug("Plugin '" + plugin_name + "' failed to return itemOptions for feed:'" + feed.meta.title + "'", item.guid); self.logger.debug('Plugin \'' + plugin_name + '\' failed to return itemOptions for feed:\'' + feed.meta.title + '\'', item.guid);
filteredItemOptions = itemOptions; // Reset filteredItemOptions = itemOptions; // Reset
} }
// Prepare for next plugin. // Prepare for next plugin.
itemOptions = filteredItemOptions; itemOptions = filteredItemOptions;
} }
return itemOptions; return itemOptions;
}; };
// Dedupe articles in node-rss itemOptions format // Dedupe articles in node-rss itemOptions format
// Accepts an array of fields to dedupe on, or does a basic uniq // Accepts an array of fields to dedupe on, or does a basic uniq
// operation on the articles array // operation on the articles array
// TODO, make this a plugin? // TODO, make this a plugin?
RssBraider.prototype.dedupe = function(articles_arr, fields){ RssBraider.prototype.dedupe = function(articles_arr, fields) {
var self = this; var self = this;
if ( !fields || fields.length < 1 ) { if (!fields || fields.length < 1) {
return _.uniq(articles_arr); return _.uniq(articles_arr);
} else { } else {
var uniques = {}, var uniques = {},
deduped_articles = []; deduped_articles = [];
articles_arr.forEach(function(article){ articles_arr.forEach(function(article) {
var count = 0; var count = 0;
fields.forEach(function(field){ fields.forEach(function(field) {
if (!uniques[field]) { if (!uniques[field]) {
uniques[field] = []; uniques[field] = [];
} }
if (uniques[field].indexOf(article[field]) !== -1) { if (uniques[field].indexOf(article[field]) !== -1) {
count++; count++;
} else { } else {
uniques[field].push(article[field]); uniques[field].push(article[field]);
} }
}); });
if (count !== fields.length) { if (count !== fields.length) {
// it's unique // It's unique
deduped_articles.push(article); deduped_articles.push(article);
} else { } else {
// The article matched all of another article's "dedupe" fields // The article matched all of another article's "dedupe" fields
// so filter it out (i.e. do nothing) // so filter it out (i.e. do nothing)
self.logger.debug("skipping duplicate", '"' + article.title + '"', article.guid); self.logger.debug('skipping duplicate', '"' + article.title + '"', article.guid);
} }
}); });
return deduped_articles; return deduped_articles;
} }
}; };
// TODO: Could be a plugin // TODO: Could be a plugin
// Sort articles by date // Sort articles by date
RssBraider.prototype.date_sort = function(articles_arr) { RssBraider.prototype.date_sort = function(articles_arr) {
var sorted_articles = _.sortBy(articles_arr, function(article) { var sorted_articles = _.sortBy(articles_arr, function(article) {
return article.date.getTime(); return article.date.getTime();
}); });
if (this.date_sort_order === "desc") { if (this.date_sort_order === 'desc') {
sorted_articles.reverse(); sorted_articles.reverse();
} }
return sorted_articles; return sorted_articles;
}; };
module.exports = RssBraider; module.exports = RssBraider;

View File

@ -1,37 +1,31 @@
{ {
"_args": [ "_args": [
[ [
"rss-braider@^1.0.0", "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git",
"/Users/martin/newdev/Rinser" "/Users/martin/newdev/Rinser"
] ]
], ],
"_from": "rss-braider@>=1.0.0 <2.0.0", "_from": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git",
"_id": "rss-braider@1.0.0", "_id": "rss-braider@1.0.0",
"_inCache": true, "_inCache": true,
"_installable": true, "_installable": true,
"_location": "/rss-braider", "_location": "/rss-braider",
"_nodeVersion": "0.10.38",
"_npmUser": {
"email": "kgebhardt23@gmail.com",
"name": "rv-kip"
},
"_npmVersion": "2.7.6",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"name": "rss-braider", "name": null,
"raw": "rss-braider@^1.0.0", "raw": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git",
"rawSpec": "^1.0.0", "rawSpec": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git",
"scope": null, "scope": null,
"spec": ">=1.0.0 <2.0.0", "spec": "http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git",
"type": "range" "type": "git"
}, },
"_requiredBy": [ "_requiredBy": [
"#DEV:/" "#DEV:/"
], ],
"_resolved": "http://registry.npmjs.org/rss-braider/-/rss-braider-1.0.0.tgz", "_resolved": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git#1559131d2e2d73076307667d260f0e173e64c8c3",
"_shasum": "1ea5ddf8d39151728a5a039af5b0c3407f3e464b", "_shasum": "f76e869410d78f6c524443695e391a92b7c0588d",
"_shrinkwrap": null, "_shrinkwrap": null,
"_spec": "rss-braider@^1.0.0", "_spec": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git",
"_where": "/Users/martin/newdev/Rinser", "_where": "/Users/martin/newdev/Rinser",
"author": { "author": {
"email": "kgebhardt@kqed.org", "email": "kgebhardt@kqed.org",
@ -55,13 +49,7 @@
"mockdate": "^1.0.3", "mockdate": "^1.0.3",
"tape": "^4.0.0" "tape": "^4.0.0"
}, },
"directories": {}, "gitHead": "1559131d2e2d73076307667d260f0e173e64c8c3",
"dist": {
"shasum": "1ea5ddf8d39151728a5a039af5b0c3407f3e464b",
"tarball": "https://registry.npmjs.org/rss-braider/-/rss-braider-1.0.0.tgz"
},
"gitHead": "755970200088eab93a8a8ae15b47a11b9fbb5880",
"homepage": "https://github.com/KQED/rss-braider",
"keywords": [ "keywords": [
"aggregator", "aggregator",
"atom", "atom",
@ -82,18 +70,13 @@
], ],
"license": "MIT", "license": "MIT",
"main": "index.js", "main": "index.js",
"maintainers": [
{
"name": "rv-kip",
"email": "kgebhardt23@gmail.com"
}
],
"name": "rss-braider", "name": "rss-braider",
"optionalDependencies": {}, "optionalDependencies": {},
"readme": "ERROR: No README data found!", "readme": "[![Build Status](https://travis-ci.org/KQED/rss-braider.svg?branch=master)](https://travis-ci.org/KQED/rss-braider)\n\n## Summary\nBraid/aggregate one or more RSS feeds (file or url) into a single feed (RSS or JSON output). Process resulting feed through specified plugins. Automatic deduplication\n\n## Installation\n```\nnpm install rss-braider\n```\n## Test\n`npm test`\n\n## Examples\n```\n$ cd examples\n$ node simple.js (combines 3 sources)\n$ node plugins.js (combines 3 sources and runs a transformation plugin)\n```\n### Code Example\n```js\nvar RssBraider = require('rss-braider'),\n feeds = {};\n\n// Pull feeds from config files:\n// feeds.simple_test_feed = require(\"./config/feed\").feed;\n// Or define in-line\nfeeds.simple_test_feed = {\n \"feed_name\" : \"feed\",\n \"default_count\" : 1,\n \"no_cdata_fields\" : [], // Don't wrap these fields in CDATA tags\n \"meta\" : {\n \"title\": \"NPR Braided Feed\",\n \"description\": \"This is a test of two NPR\"\n },\n \"sources\" : [\n {\n \"name\" : \"NPR Headlines\",\n \"count\" : 2,\n \"feed_url\" : \"http://www.npr.org/rss/rss.php?id=1001\",\n },\n {\n \"name\" : \"NPR Sports\",\n \"count\" : 2,\n \"feed_url\" : \"http://www.npr.org/rss/rss.php?id=1055\"\n }\n ]\n};\nvar braider_options = {\n feeds : feeds,\n indent : \" \",\n date_sort_order : \"desc\", // Newest first\n log_level : \"debug\"\n};\nvar rss_braider = RssBraider.createClient(braider_options);\n\n// Override logging level (debug, info, warn, err, off)\nrss_braider.logger.level('off');\n\n// Output braided feed as rss. use 'json' for JSON output.\nrss_braider.processFeed('simple_test_feed', 'rss', function(err, data){\n if (err) {\n return console.log(err);\n }\n console.log(data);\n});\n```\n## Plugins\nPlugins provide custom manipulation and filtering of RSS items/articles. See `examples/plugins` for examples.\n\nA plugin operates by modifying the `itemOptions` object or by returning `null` which will exclude the `item` (article) from the resulting feed (See `examples/plugins/filter_out_all_articles.js`).\n\nThe `itemsOptions` object gets passed to `node-rss` to generate the RSS feeds, so read the documentation on that module and its use of custom namespaces. (https://github.com/dylang/node-rss)\n\n### Plugin Example\nThis plugin will capitalize the article title for all articles\n```js\nmodule.exports = function (item, itemOptions, source) {\n if (!item || !itemOptions) {\n return;\n }\n\n if (itemOptions.title) {\n itemOptions.title = itemOptions.title.toUpperCase();\n }\n\n return itemOptions;\n};\n```\n\nThe plugin is registered with the feed in the feed config .js file and are run in order.\n```js\nvar feed = {\n \"feed_name\" : \"feed with plugins\",\n \"default_count\" : 1,\n \"plugins\" : ['capitalize_title', 'plugin_template'],\n...\n```\n\n## Release Notes\n### 1.0.0\nChanged plugin architecture to allow filtering out of article/items by returning `-1` instead of a modified `itemsOptions` object. This is a breaking change as it will require existing plugins to return `itemsOptions` instead of modifying the reference. See `examples/plugins`.\n\n",
"readmeFilename": "README.md",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/KQED/rss-braider.git" "url": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git"
}, },
"scripts": { "scripts": {
"test": "tape test" "test": "tape test"

View File

@ -21,7 +21,7 @@
"jshint": "^2.9.1", "jshint": "^2.9.1",
"lodash": "^4.11.1", "lodash": "^4.11.1",
"log4js": "^0.6.35", "log4js": "^0.6.35",
"rss-braider": "^1.0.0" "rss-braider": "git+http://gitlab.silvrtree.co.uk/martind2000/rss-braider.git"
}, },
"dependencies": { "dependencies": {
"express": "^4.13.4", "express": "^4.13.4",

View File

@ -57,11 +57,11 @@ feeds.simple_test_feed = {
"count": 100, "count": 100,
"feed_url": "http://www.ruled.me/feed/" "feed_url": "http://www.ruled.me/feed/"
}, { }/*, {
"count": 100, "count": 100,
"feed_url": "http://www.primalbro.com/blog?format=RSS" "feed_url": "http://www.primalbro.com/blog?format=RSS"
} }*/
@ -74,14 +74,14 @@ var braider_options = {
feeds: feeds, feeds: feeds,
indent: " ", indent: " ",
date_sort_order: "desc", // Newest first date_sort_order: "desc", // Newest first
log_level: "warn", log_level: "error",
dedupe_fields: ['guid'], dedupe_fields: ['guid'],
plugins_directories: [__dirname + "/plugins/"] plugins_directories: [__dirname + "/plugins/"]
}; };
var rss_braider = RssBraider.createClient(braider_options); var rss_braider = RssBraider.createClient(braider_options);
// Override logging level (debug, info, warn, err, off) // Override logging level (debug, info, warn, err, off)
rss_braider.logger.level('debug'); rss_braider.logger.level('error');
rss_braider.processFeed('simple_test_feed', 'json', function(err, data) { rss_braider.processFeed('simple_test_feed', 'json', function(err, data) {
if (err) { if (err) {