API.md 2.0 KB

Pour un script simple

Il vous suffit de rajouter un listener qui appelle votre main.

addEventListener('topiclive:newmessage', main);

Pour un script avancé

Obtenir le message

Ici, impossible d'utiliser le main. Il vous faudra créer une nouvelle fonction.

addEventListener('topiclive:newmessage', function(event){
	// L'id du message est stocké dans event.detail.id
	var message = document.getElementById(event.detail.id);
});

Annuler l'affichage du message

addEventListener('topiclive:newmessage', function(event){
	if(blablabla) {
		// Appeler cette méthode moins d'une seconde après l'event annulera l'affichage du message
		event.detail.cancel();
	}
});

Contourner JvCare

Pour récupérer les liens dans un message, il vous faudra contourner JvCare. Chaque lien est un span. Vous devez envoyer le class de ce span а̀ JvCake pour obtenir le lien.

addEventListener('topiclive:newmessage', function(event){
var message = document.getElementById(event.detail.id);
var spans = message.getElementsByTagName('span');
var liens = [];

for(var i = 0; i < spans.length; i++)
{
	var lienEncrypte = spans[i].className;
	// JvCake est stocké dans event.detail.jvcake
	var lienDecrypte = event.detail.jvcake(lienEncrypte);
	liens.push(lienDecrypte);
}
});

Quand un message est édité

Le procédé est le même que pour obtenir un message :

addEventListener("topiclive:edition", function(event){
	// ...
});

Attendre le post-process

Si votre script a besoin d'avoir le message avec les citations, spoilers et liens corrigés, vous pouvez attendre que TopicLive ait fini de charger les messages. Attention, cette opération est déclenchée environ toutes les 5 secondes.

var nouveauxMessages = [];

addEventListener("topiclive:newmessage", function(event){
	nouveauxMessages.push(event.detail.id);
});

addEventListener("topiclive:doneprocessing", function(){
	// ...
});