From b3e7850535cc545e7b8a7928e128f49796c67490 Mon Sep 17 00:00:00 2001 From: filesite Date: Tue, 1 Apr 2025 09:18:31 +0800 Subject: [PATCH] all bots support base64 image format --- bot/Bilibili.mjs | 6 +++++- bot/Douyin.mjs | 6 +++++- bot/Kuaishou.mjs | 6 +++++- bot/Xigua.mjs | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/bot/Bilibili.mjs b/bot/Bilibili.mjs index e32f934..5f4f158 100644 --- a/bot/Bilibili.mjs +++ b/bot/Bilibili.mjs @@ -99,7 +99,7 @@ class Bilibili extends HeroBot { //get cover image's base64 data //sample: //i1.hdslb.com/bfs/archive/ef6204c8788134064dc6b7e8cb20870f1341e604.jpg@100w_100h_1c.png //替换成://i1.hdslb.com/bfs/archive/ef6204c8788134064dc6b7e8cb20870f1341e604.jpg@480w_270h_1c.png - 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 = data.cover.replace(/@[\w]+\./ig, '@480w_270h_1c.'); //获取480x270尺寸图片 @@ -110,6 +110,10 @@ class Bilibili extends HeroBot { data.cover_base64 = imgBuffer.toString('base64'); 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(); diff --git a/bot/Douyin.mjs b/bot/Douyin.mjs index 39060b2..ed987bc 100644 --- a/bot/Douyin.mjs +++ b/bot/Douyin.mjs @@ -109,7 +109,7 @@ class Douyin extends HeroBot { //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); const response = await hero.goto(data.cover); @@ -119,6 +119,10 @@ class Douyin extends HeroBot { data.cover_base64 = imgBuffer.toString('base64'); 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(); diff --git a/bot/Kuaishou.mjs b/bot/Kuaishou.mjs index df71e83..58fcc0c 100644 --- a/bot/Kuaishou.mjs +++ b/bot/Kuaishou.mjs @@ -61,7 +61,7 @@ class Kuaishou extends HeroBot { } //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); const response = await hero.goto(data.cover); @@ -71,6 +71,10 @@ class Kuaishou extends HeroBot { data.cover_base64 = imgBuffer.toString('base64'); 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(); diff --git a/bot/Xigua.mjs b/bot/Xigua.mjs index 53d06f3..5dd1656 100644 --- a/bot/Xigua.mjs +++ b/bot/Xigua.mjs @@ -70,7 +70,7 @@ class Xigua extends HeroBot { } //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); const response = await hero.goto(data.cover); @@ -80,6 +80,10 @@ class Xigua extends HeroBot { data.cover_base64 = imgBuffer.toString('base64'); 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();