wikipedia.js 754 B

1234567891011121314151617181920212223242526
  1. let url = require('url');
  2. let axios = require('axios');
  3. module.exports = {
  4. matches (url) {
  5. return url.match(/^https?:\/\/[a-z]+\.wikipedia\.org\/wiki\/.+/i);
  6. },
  7. async getPreviewData (link_url) {
  8. try {
  9. let parsedUrl = url.parse(link_url);
  10. let page = parsedUrl.pathname.split('/').slice(-1)[0];
  11. let countryVersion = parsedUrl.hostname.split('.')[0];
  12. let res = await axios.get(`https://${countryVersion}.wikipedia.org/api/rest_v1/page/summary/${page}?redirect=true`);
  13. let content = res.data.extract.slice(0, 500).trim();
  14. return {
  15. title: res.data.titles.display,
  16. url: res.data.content_urls.desktop.page,
  17. description: content.length < 500 ? content : content + '...'
  18. }
  19. } catch (e) {
  20. return null;
  21. }
  22. }
  23. };