据说随机API一遍又一遍地返回相同的东西

时间:2020-09-29 23:52:33

标签: javascript node.js api discord.js

我正在制作一个显示来自https://belikebill.ga/billgen-API.php的随机图像的不和谐机器人 代码很简单

module.exports = {
    name: 'belikebill',
    description: 'Gives a random "Be like Bill" meme',
    async execute(message) {
        if (message.content.toLowerCase() === '$belikebill') {
            message.channel.send('https://belikebill.ga/billgen-API.php?default=1')
        }
    }
}

我已经尝试过处理axios请求并将其嵌入,但是没有任何变化。

我如何将其随机化?

1 个答案:

答案 0 :(得分:4)

https://belikebill.ga/billgen-API.php?default=1处的图像可能正在被客户端缓存,类似于以下代码片段中的情况:

<img src="https://belikebill.ga/billgen-API.php?default=1">
<img src="https://belikebill.ga/billgen-API.php?default=1">

尝试在末尾添加随机查询字符串,以确保每次都发出新请求:

message.channel.send('https://belikebill.ga/billgen-API.php?default=1&random=' + Math.random())

<img src="https://belikebill.ga/billgen-API.php?default=1&random=0.123">
<img src="https://belikebill.ga/billgen-API.php?default=1&random=0.456">

如果您担心重复的随机数,请改用索引:

let index = 0;
module.exports = {
    name: 'belikebill',
    description: 'Gives a random "Be like Bill" meme',
    async execute(message) {
        if (message.content.toLowerCase() === '$belikebill') {
            message.channel.send('https://belikebill.ga/billgen-API.php?default=1&extra=' + index++)
        }
    }
}