reallysimple 0.4.2 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/readme.md +14 -6
- package/readme.opml +11 -6
- package/reallysimple.js +25 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reallysimple",
|
|
3
3
|
"description": "Reads an RSS-like feed and calls back with a JavaScript structure, hiding all the history. It really is simple. ;-)",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.5",
|
|
5
5
|
"author": "Dave Winer <dave@scripting.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"files": [
|
package/readme.md
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
# reallysimple
|
|
2
2
|
|
|
3
|
-
JavaScript code to read a feed. Calls back with a JavaScript
|
|
3
|
+
JavaScript code to read a feed. Calls back with a simple JavaScript object, easily represented in JSON. Hides all the history.
|
|
4
|
+
|
|
5
|
+
#### What formats are supported?
|
|
6
|
+
|
|
7
|
+
RSS, Atom, and RDF.
|
|
4
8
|
|
|
5
9
|
#### Why?
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
I wanted to make reading a feed from a JavaScript app as easy as possible.
|
|
8
12
|
|
|
9
13
|
To hide all the history to get it out of your way.
|
|
10
14
|
|
|
@@ -14,10 +18,6 @@ I needed to simplify feed reading for the scripting system in Drummer. For scrip
|
|
|
14
18
|
|
|
15
19
|
There probably is a small tradeoff in performance, you can probably write faster code by going straight to the feedparser level. And that's fine for applications that require the maximum performance, perhaps where you're reading a thousand feeds per sectond.
|
|
16
20
|
|
|
17
|
-
#### What formats are supported?
|
|
18
|
-
|
|
19
|
-
RSS, Atom, and RDF.
|
|
20
|
-
|
|
21
21
|
#### A coding example
|
|
22
22
|
|
|
23
23
|
Here's how you call the package.
|
|
@@ -48,6 +48,14 @@ This package further simplifies the struct returned by <a href="https://www.npmj
|
|
|
48
48
|
|
|
49
49
|
#### Work notes
|
|
50
50
|
|
|
51
|
+
3/21/22; 10:19:22 AM by DW
|
|
52
|
+
|
|
53
|
+
Reviewing the way we represent links in items in the API.
|
|
54
|
+
|
|
55
|
+
The question is this -- how can we get a link to the item from the item.
|
|
56
|
+
|
|
57
|
+
The answer, on reflection -- rely on the link element as the permalink.
|
|
58
|
+
|
|
51
59
|
3/7/22; 10:27:47 AM by DW
|
|
52
60
|
|
|
53
61
|
Start the reallysimple repo. Publish the NPM package.
|
package/readme.opml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<opml version="2.0">
|
|
3
3
|
<head>
|
|
4
4
|
<title>readme.md</title>
|
|
5
|
-
<dateModified
|
|
5
|
+
<dateModified>Sun, 27 Mar 2022 16:05:47 GMT</dateModified>
|
|
6
6
|
<expansionState></expansionState>
|
|
7
7
|
<vertScrollState>1</vertScrollState>
|
|
8
8
|
<windowTop>300</windowTop>
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
</head>
|
|
13
13
|
<body created="Sat, 05 Mar 2022 16:54:13 GMT" text="readme.md">
|
|
14
14
|
<outline created="Sat, 05 Mar 2022 16:54:15 GMT" text="# reallysimple">
|
|
15
|
-
<outline created="Mon, 07 Mar 2022 15:05:45 GMT" text="JavaScript code to read a feed. Calls back with a JavaScript
|
|
15
|
+
<outline created="Mon, 07 Mar 2022 15:05:45 GMT" text="JavaScript code to read a feed. Calls back with a simple JavaScript object, easily represented in JSON. Hides all the history."></outline>
|
|
16
|
+
</outline>
|
|
17
|
+
<outline created="Thu, 17 Mar 2022 15:42:49 GMT" text="#### What formats are supported?">
|
|
18
|
+
<outline created="Thu, 17 Mar 2022 15:42:57 GMT" text="RSS, Atom, and RDF."></outline>
|
|
16
19
|
</outline>
|
|
17
20
|
<outline text="#### Why?">
|
|
18
|
-
<outline created="Thu, 17 Mar 2022 15:40:05 GMT" text="
|
|
21
|
+
<outline created="Thu, 17 Mar 2022 15:40:05 GMT" text="I wanted to make reading a feed from a JavaScript app as easy as possible. "></outline>
|
|
19
22
|
<outline created="Thu, 17 Mar 2022 15:40:29 GMT" text="To hide all the history to get it out of your way. "></outline>
|
|
20
23
|
<outline created="Mon, 07 Mar 2022 15:16:54 GMT" text="If developers can quickly put together an app that uses feeds, people will try out more ideas, add feed support to more apps."></outline>
|
|
21
24
|
<outline created="Mon, 07 Mar 2022 15:17:44 GMT" text="I needed to simplify feed reading for the scripting system in Drummer. For scripting, simplicity is everything. Why not share the simplicity with lower level code."></outline>
|
|
22
25
|
<outline created="Mon, 07 Mar 2022 15:18:12 GMT" text="There probably is a small tradeoff in performance, you can probably write faster code by going straight to the feedparser level. And that's fine for applications that require the maximum performance, perhaps where you're reading a thousand feeds per sectond. "></outline>
|
|
23
26
|
</outline>
|
|
24
|
-
<outline created="Thu, 17 Mar 2022 15:42:49 GMT" text="#### What formats are supported?">
|
|
25
|
-
<outline created="Thu, 17 Mar 2022 15:42:57 GMT" text="RSS, Atom, and RDF."></outline>
|
|
26
|
-
</outline>
|
|
27
27
|
<outline created="Mon, 07 Mar 2022 15:11:02 GMT" text="#### A coding example">
|
|
28
28
|
<outline created="Mon, 07 Mar 2022 15:11:09 GMT" text="Here's how you call the package."></outline>
|
|
29
29
|
<outline created="Mon, 07 Mar 2022 15:12:02 GMT" text="const reallysimple = require ("reallysimple");"></outline>
|
|
@@ -43,6 +43,11 @@
|
|
|
43
43
|
<outline created="Thu, 17 Mar 2022 15:46:06 GMT" text="This package further simplifies the struct returned by <a href="https://www.npmjs.com/package/davefeedread">davefeedread</a>."></outline>
|
|
44
44
|
</outline>
|
|
45
45
|
<outline created="Sat, 05 Mar 2022 17:30:26 GMT" text="#### Work notes">
|
|
46
|
+
<outline created="Mon, 21 Mar 2022 14:19:22 GMT" text="3/21/22; 10:19:22 AM by DW">
|
|
47
|
+
<outline created="Mon, 21 Mar 2022 14:19:22 GMT" text="Reviewing the way we represent links in items in the API. "></outline>
|
|
48
|
+
<outline created="Mon, 21 Mar 2022 14:27:17 GMT" text="The question is this -- how can we get a link to the item from the item. "></outline>
|
|
49
|
+
<outline created="Mon, 21 Mar 2022 14:27:44 GMT" text="The answer, on reflection -- rely on the link element as the permalink. "></outline>
|
|
50
|
+
</outline>
|
|
46
51
|
<outline created="Mon, 07 Mar 2022 15:27:46 GMT" text="3/7/22; 10:27:47 AM by DW">
|
|
47
52
|
<outline created="Mon, 07 Mar 2022 15:27:47 GMT" text="Start the reallysimple repo. Publish the NPM package. "></outline>
|
|
48
53
|
</outline>
|
package/reallysimple.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
var myProductName = "reallysimple"; myVersion = "0.4.
|
|
1
|
+
var myProductName = "reallysimple"; myVersion = "0.4.5";
|
|
2
2
|
|
|
3
3
|
exports.readFeed = readFeed;
|
|
4
4
|
exports.convertFeedToOpml = convertFeedToOpml;
|
|
5
5
|
|
|
6
6
|
const utils = require ("daveutils");
|
|
7
7
|
const request = require ("request");
|
|
8
|
+
const opml = require ("opml");
|
|
8
9
|
const davefeedread = require ("davefeedread");
|
|
9
10
|
|
|
10
11
|
const allowedHeadNames = [
|
|
@@ -12,7 +13,7 @@ const allowedHeadNames = [
|
|
|
12
13
|
"generator", "docs", "cloud", "ttl", "image", "rating", "textInput", "skipHours", "skipDays", "source:account", "source:localtime"
|
|
13
14
|
];
|
|
14
15
|
const allowedItemNames = [
|
|
15
|
-
"title", "link", "description", "author", "category", "comments", "
|
|
16
|
+
"title", "link", "description", "author", "category", "comments", "enclosures", "guid", "pubDate", "source", "source:outline", "source:likes"
|
|
16
17
|
];
|
|
17
18
|
|
|
18
19
|
var config = {
|
|
@@ -95,6 +96,19 @@ function convertFeed (oldFeed) {
|
|
|
95
96
|
}
|
|
96
97
|
return (theNewOutline);
|
|
97
98
|
}
|
|
99
|
+
function removeExtraAttributes (theNode) {
|
|
100
|
+
function visit (theNode) {
|
|
101
|
+
if (theNode.flincalendar !== undefined) {
|
|
102
|
+
delete theNode.flincalendar;
|
|
103
|
+
}
|
|
104
|
+
if (theNode.subs !== undefined) {
|
|
105
|
+
theNode.subs.forEach (function (sub) {
|
|
106
|
+
visit (sub);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
visit (theNode);
|
|
111
|
+
}
|
|
98
112
|
function getHeadValuesFromFirstItem () { //3/6/22 by DW
|
|
99
113
|
if (oldFeed.items.length > 0) {
|
|
100
114
|
var item = oldFeed.items [0];
|
|
@@ -150,10 +164,18 @@ function convertFeed (oldFeed) {
|
|
|
150
164
|
if (x == name) {
|
|
151
165
|
if (x == "source:outline") {
|
|
152
166
|
val = convertOutline (item ["source:outline"]);
|
|
167
|
+
removeExtraAttributes (val); //3/27/22 by DW
|
|
153
168
|
newItem.outline = val;
|
|
154
169
|
}
|
|
155
170
|
else {
|
|
156
|
-
|
|
171
|
+
if (x == "enclosures") {
|
|
172
|
+
if (item.enclosures.length > 0) {
|
|
173
|
+
newItem.enclosure = item.enclosures [0];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
newItem [x] = val;
|
|
178
|
+
}
|
|
157
179
|
}
|
|
158
180
|
}
|
|
159
181
|
});
|