Skip to content

Commit 92a10f7

Browse files
committed
feat(bot): switch to metascraper for url unfurling
Closes #10
1 parent e9e9c3b commit 92a10f7

File tree

8 files changed

+1633
-206
lines changed

8 files changed

+1633
-206
lines changed

components/routes/feed.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,20 @@ const generateFeed = (controller, teamId, channel, req, res, next) => {
9595
feed.item(link.item);
9696
});
9797

98-
const cache = {
99-
id: `${teamId}::${channel}`,
100-
feed,
101-
};
102-
103-
controller.storage.feeds.save(cache, function(err, id) {
104-
if (err) {
105-
console.error('ERROR: could not cache feed:', err);
106-
}
107-
108-
console.log(`${teamId}::${channel} feed cached.`);
109-
});
98+
if (process.env.CACHE === 'TRUE') {
99+
const cache = {
100+
id: `${teamId}::${channel}`,
101+
feed,
102+
};
103+
104+
controller.storage.feeds.save(cache, function(err, id) {
105+
if (err) {
106+
console.error('ERROR: could not cache feed:', err);
107+
}
108+
109+
console.log(`${teamId}::${channel} feed cached.`);
110+
});
111+
}
110112

111113
res
112114
.set('Content-Type', 'application/rss+xml')

demo/scrape.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const metascraper = require('metascraper')([
2+
require('metascraper-youtube')(),
3+
require('metascraper-soundcloud')(),
4+
require('metascraper-readability')(),
5+
require('metascraper-amazon')(),
6+
require('metascraper-audio')(),
7+
require('metascraper-video')(),
8+
require('metascraper-author')(),
9+
require('metascraper-date')(),
10+
require('metascraper-description')(),
11+
require('metascraper-image')(),
12+
require('metascraper-clearbit-logo')(),
13+
require('metascraper-logo')(),
14+
require('metascraper-logo-favicon')(),
15+
require('metascraper-media-provider')(),
16+
require('metascraper-publisher')(),
17+
require('metascraper-title')(),
18+
require('metascraper-url')(),
19+
]);
20+
21+
const got = require('got');
22+
23+
;(async () => {
24+
console.log(`Scraping ${process.argv[2]}...`);
25+
const { body: html, url } = await got(process.argv[2]);
26+
const metadata = await metascraper({ html, url });
27+
console.log(metadata);
28+
})();

example.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ clientSecret=
99
clientSigningSecret=
1010
studio_token=
1111
PORT=
12-
CACHE=FALSE
12+
CACHE=FALSE # TRUE | FALSE
1313

1414
# note: .env is a shell file so there can’t be spaces around =

0 commit comments

Comments
 (0)