import {common} from '../model/index.js' import fetch from "node-fetch"; import plugin from '../../../lib/plugins/plugin.js' const apis = [ 'https://img.xjh.me/random_img.php', 'https://www.dmoe.cc/random.php?return=json', 'https://api.vvhan.com/api/acgimg?type=json', 'https://www.dmoe.cc/random.php?return=json', 'http://api.caonm.net/api/dm/index.php?return=json', 'https://api.ghser.com/random/api.php?return=json', 'https://api.yfzy.top/laifentu.php?return=json', 'https://api.yimian.xyz/img', 'https://api.yfzy.top/laifentu.php', 'https://api.dujin.org/pic/yuanshen?return=json', ] let useapi = apis export class xy_sjt extends plugin { constructor() { super({ name: '随机图', dsc: '二次元图', event: 'message', priority: 8888, rule: [{ reg: '^#?来(点|份)(二次元|随机图)(\\d+张)?$', fnc: 'txsjt' }] }) } async txsjt(e) { let image = [] let res = [] let img let number = e.msg.match(/\d+/) if (number) { number = Number(number[0]) number = number < 2 ? 2 : number > 10 ? 10 : number } else { number = 1 } for (let i = 0; i < number; i++) { let flag = 1 img = await getImg(e) if (!img.includes('http')) { img = 'https:' + img } if (i == 0) { res.push(img) image.push(segment.image(img)) } else { for (let val of res) { if (val == img) { flag = 0 } } if (flag == 1) { image.push(segment.image(img)) } else { number++ } } } //logger.mark(number) if(e.isGroup) { number > 1 ? common.getforwardMsg(e, image, '点击显示随机涩图', 0, false, true) : e.reply(image) }else{ for (let i = 0; i < image.length; i++){ e.reply(image[i]) } } } } async function getImg(e) { let res = await response() let i = 0 while (!res && i < apis.length) { res = await response() i++ } if (i > apis.length) return e.reply('接口失效') let img = res.img || res.imgurl || res.pic?.[0] || res return img } async function response() { let num = Math.round(Math.random() * (useapi.length - 1)) logger.warn(`尝试请求接口:${useapi[num]}`) try { let res = await fetch(useapi[num]) if (!res.ok) { logger.warn(useapi[num] + ',接口失效') useapi.splice(num, 1) return false } if (res.headers.get('content-type').includes('json')) { res = await res.json() return res } return useapi[num] } catch (err) { logger.warn(useapi[num] + ',接口失效') useapi.splice(num, 1) return false } }