Browse Source

webcrawler bot support base64 image format

master
filesite 2 weeks ago
parent
commit
d0faf3695d
  1. 6
      bot/WebCrawler.mjs
  2. 9
      lib/common.mjs

6
bot/WebCrawler.mjs

@ -90,7 +90,7 @@ class WebCrawler extends HeroBot {
//get cover image's base64 data //get cover image's base64 data
if (typeof(data.cover) != 'undefined' && data.cover) { if (typeof(data.cover) != 'undefined' && data.cover && /^data:image\/[a-z]+;base64,/i.test(data.cover) == false) {
data.cover = common.getAbsoluteUrl(data.cover); data.cover = common.getAbsoluteUrl(data.cover);
const response = await hero.goto(data.cover); const response = await hero.goto(data.cover);
@ -100,6 +100,10 @@ class WebCrawler extends HeroBot {
data.cover_base64 = imgBuffer.toString('base64'); data.cover_base64 = imgBuffer.toString('base64');
data.cover_type = common.getImageType(data.cover); data.cover_type = common.getImageType(data.cover);
} }
}else if ( typeof(data.cover) != 'undefined' && data.cover && /^data:image\/[a-z]+;base64,/i.test(data.cover) ) {
//support base64 image
data.cover_type = common.getImageType(data.cover);
data.cover_base64 = data.cover.replace(/^data:image\/[a-z]+;base64,/i, '');
} }
await hero.close(); await hero.close();

9
lib/common.mjs

@ -51,16 +51,17 @@ export default {
return url; return url;
}, },
//support base64 format
getImageType: function(url) { getImageType: function(url) {
let imgType = 'jpeg'; let imgType = 'jpeg';
if (/\.jp(e)?g/ig.test(url)) { if (/\.jp(e)?g/ig.test(url) || /image\/jp(e)?g/ig.test(url)) {
imgType = 'jpeg'; imgType = 'jpeg';
}else if (/\.png/ig.test(url)) { }else if (/\.png/ig.test(url) || /image\/png/ig.test(url)) {
imgType = 'png'; imgType = 'png';
}else if (/\.webp?/ig.test(url)) { }else if (/\.webp?/ig.test(url) || /image\/webp/ig.test(url)) {
imgType = 'webp'; imgType = 'webp';
}else if (/\.gif?/ig.test(url)) { }else if (/\.gif?/ig.test(url) || /image\/gif/ig.test(url)) {
imgType = 'gif'; imgType = 'gif';
} }

Loading…
Cancel
Save