wikipedia.js 772 B

123456789101112131415161718192021222324252627
  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. console.log(e)
  21. return null;
  22. }
  23. }
  24. };