La preview ne s'actualise pas | Twurple API

Bonsoir !

Alors voilà, je suis en train de développer mon bot discord pour les recevoir les notifications de mes streams twitch dans le channel approprié et malheureusement tout fonctionne sauf la preview du stream qui ne s’actualise pas.

J’espère que vous pourrez éclairer ma lanterne parce que j’ai tout essayé, que ce soit de faire un serveur web qui télécharge toutes les x secondes une nouvelle image qu’il la reset dans le embed, j’ai essayé de mettre le lien comme ça mais rien aussi et je bloque.

Donc si quelqu’un aurez la solution, je suis preneur.

Au passage, j’utilise l’api twurple mais c’est pas très différent de l’api twitch je crois, voilà voilà !

Code: hastebin

Merci d’avance !

The problem here is not Twitch, or Twurple.

It’s the Discord image cache, as the image URL is the same for each stream.

You need to defeat Discord’s cache.

The simplest fix is to append to the preview URL ?cachebuster=THECURRENTTIME where THECURRENTTIME is replaced with the unix timestamp.

1 Like

so I have to put at the end of the url ?cachebuster= new Date() ?

Sure that would work.

sometime I just use Math.random() other times I’ll new Date().getTime()

Depends how I feel

1 Like

ok, I test now and I say you!

okayy, it works! thx !!

le setInterval pour mettre à jour la preview est obligatoire?

Not sure why you are using setInternval?

You are just cache busting discords image cache by making the stream preview URL unique each time you send it to Discord

bah pour résumer, j’utilise le setInterval pour mettre à jour dans le embed le nombre de viewer, le titre et le jeu mais du coup le problème c’est que même avec le cachebuster, la preview ne s’actualise pas dans le message. Du coup je me demandais si ça ne serait pas lier au fait que j’initialise de nouveau le setImage dans le setInterval

Sounds like a bug with the Discord library you are using then.

Your problem is a discord message update problem not a Twitch API problem I think

Hmm… je développe non pas avec la version 13 de discord.js mais la 12.5.1 donc je sais pas si c’est lié et sinon je ne sais pas comment régler ce bug malheureusement…

Et oui cela ne vient probablement pas de l’api twitch étant donné que quand je vais sur le site bah l’image a bien changée

AHH mais, le new Date() à la fin, fin la valeur qui se trouve à la fin de l’url ne s’actualise pas… pourquoi ça?

new Date() or it’s friend new Date().getTime()

Should return the current date/time always.

So your code should have something like

stream.thumbnailUrl = stream.thumbnailUrl + '?cachebuster=' + new Date();
            const preview = await Manager.twitch.postImage(
                stream.thumbnailUrl
                    .replace("{width}", "1280")
                    .replace("{height}", "720")
            );

So the output of new date() not the literal new Date

ok mais suis-je obligé d’utiliser le Manager.twitch.postImage ?

I’ve never used that function in discord.js I craft my own embeds

bah cette fonction n’est pas dans discord.js de base, pour vous résumez ce qu’elle fait. Quand le stream passe en online, un serveur temporaire se créer et dans celui-ci, on télécharge la preview qu’on met donc dans un fichier qui est créé au préalable avec donc cette fameuse condition postImage

hastebin voila la fameuse classe

That seems very convulted…

I’m not sure what you are trying to do and why you are doing it this way. It doesn’t make any sense