Skip to content

Commit fe5139b

Browse files
committed
importFromOpml support outline recursion
1 parent 9971943 commit fe5139b

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

middlewares/importFromOpml.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,21 @@ const logger = require('../utils/logger');
55
const RSS = require('../proxies/rssFeed');
66
const i18n = require('../i18n');
77

8+
function parseOutlines(outlines, lst) {
9+
outlines.forEach((outline) => {
10+
if (outline.$.type && outline.$.type === 'rss') lst.push(outline.$);
11+
else if (outline.outline) parseOutlines(outline.outline, lst);
12+
});
13+
}
14+
815
const getOutlines = function(data) {
916
return new Promise((resolve, reject) => {
1017
const parser = new Parser();
1118
parser.parseString(data, function(err, res) {
1219
if (err) reject(err);
1320
const { opml } = res;
1421
const ret = [];
15-
opml.body[0].outline.forEach(function(item) {
16-
ret.push(item.$);
17-
});
22+
parseOutlines(opml.body[0].outline, ret);
1823
resolve(ret);
1924
});
2025
});

0 commit comments

Comments
 (0)