Bonjour,

Voila je rencontre un petit problème avec mon code de mon extension chrome twitch.

Mon code :

background.js

var tickRate = 60000 // On vérifiera l'api toutes les minutes

function checkStream(){
  var xhr = new XMLHttpRequest()
  xhr.open("GET", "https://api.twitch.tv/kraken/streams/LeStream?client_id=mefml71kh74pmdmd6ldqvff5ej5iya", true)
  xhr.onreadystatechange = function () {
    if(xhr.readyState == 4) {
      var data = JSON.parse(xhr.responseText)
      if(data["stream"] === null){
        chrome.browserAction.setIcon({path:"horsligne.png"})
        elm.innerHTML = "ZeratoR n'est pas en live actuellement :("
      }else{
        chrome.browserAction.setIcon({path:"enligne.png"})

  createNotification();
  audioNotification();
function audioNotification(){
    var yourSound = new Audio('notif.mp3');
    yourSound.play();
}
function createNotification(){
    var opt = {type: "basic",title: "Alerte !",message: "ZeratoR en Live !",iconUrl: "notif.png"}
    chrome.notifications.create("notificationName",opt,function(){});
    //include this line if you want to clear the notification after 5 seconds
    setTimeout(function(){chrome.notifications.clear("notificationName",function(){});},10000);
}

       /* var notification = new Notification('En Live !', {
    icon: 'notif.png',
    body: "ZeratoR est actuellement en Live !",
});*/

      }

      // On relance la fonction après X secondes
      setTimeout(checkStream, tickRate)
    }
  }
  xhr.send()
}

// On lance la fonction dès le démarrage
checkStream()

app.js

var xhr = new XMLHttpRequest()
xhr.open("GET", "https://api.twitch.tv/kraken/streams/LeStream?client_id=mefml71kh74pmdmd6ldqvff5ej5iya", true)
xhr.onreadystatechange = function(channel) {
  if(xhr.readyState == 4) {
    var data = JSON.parse(xhr.responseText)
    var elm  = document.getElementById("info")
    if(data["stream"] === null){
      elm.style.color = "red"
      elm.innerHTML = "ZeratoR n'est pas en live actuellement :("
    }else{      
      elm.style.color = "green"
      elm.innerHTML = "Viens voir ZeratoR en live maintenant !"
    }
  }
}

xhr.send()

index.html

<!DOCTYPE html>
 <html>
  <head>
   <link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet">
      <style>
      h1,p{
      text-align:center
    }
    </style>

    <script src="app.js"></script>
    <link rel="stylesheet" href="fond.css">
  </head>

  <body>

    <h1 class="p-anim">Twitch Extensions</h1>
    <p id="info">Aucune Imformation !</p>
    <a id="fond1" href="http://google.fr" target="_blank" ><img src="zera.png" /></a> 
    <h6>Copyright 2017 <a href="https://twitter.com/ZaRRoxYTB" target="_blank">Zarrox.</a></h6>

    <!--<video id="video_background" preload="auto" autoplay="true" loop="loop" muted="muted" volume="10"> //ajouter une video en background(fond de site)
        <source src="zerator.mp4" type="video/mp4">
        <source src="zerator.ogv" type="video/ogg">
    <img src="background.png" width="100%" height="100%" > </video>-->

  </body>
</html>

manifest.json

{
 "manifest_version": 2, // Indique la version du manifest (toujours 2)
 "name": "Twitch2018", // Le nom de votre extension
 "description": "Vous informe si il y a un live", // La description
 "version": "1.0", // La version en en l'occurrence la première donc 1.0
 // Nous n'avons pas besoin d'avoir de permissions supplémentaires
 "permissions": [
    "notifications"
 ],
 "browser_action": {   // Les paramètres
  "default_popup": "index.html" // Le popup qui s'affichera quand vous cliquez sur l'îcone
 },
 "icons": { // L'îcone qui s'affichera lorse que vous êtes sur la page extensions des paramètre
  "64" : "horsligne.png" // 64 = 64x64 la taille de votre image
 },
 "background": { 
    "scripts": ["background.js"]
 }
}

Voila ! Enfaite comme on peut voir dans le Background.js mon code se relance toute les minute le probleme c'est qu'il y a ma Notification dans se code, ducoup cela fait que chaque minuit je recoit la notif quand le Stream et en ligne... Ducoup je cherche un moyen que le code relance en Background mon code la :

var tickRate = 60000 // On vérifiera l'api toutes les minutes

function checkStream(){
  var xhr = new XMLHttpRequest()
  xhr.open("GET", "https://api.twitch.tv/kraken/streams/LeStream?client_id=mefml71kh74pmdmd6ldqvff5ej5iya", true)
  xhr.onreadystatechange = function () {
    if(xhr.readyState == 4) {
      var data = JSON.parse(xhr.responseText)
      if(data["stream"] === null){
        chrome.browserAction.setIcon({path:"horsligne.png"})
        elm.innerHTML = "ZeratoR n'est pas en live actuellement :("
      }else{
        chrome.browserAction.setIcon({path:"enligne.png"})
              }

      // On relance la fonction après X secondes
      setTimeout(checkStream, tickRate)
    }
  }
  xhr.send()
}

// On lance la fonction dès le démarrage
checkStream()

Sent relancé toute les minute :

function audioNotification(){
    var yourSound = new Audio('notif.mp3');
    yourSound.play();
}
function createNotification(){
    var opt = {type: "basic",title: "Alerte !",message: "ZeratoR en Live !",iconUrl: "notif.png"}
    chrome.notifications.create("notificationName",opt,function(){});
    //include this line if you want to clear the notification after 5 seconds
    setTimeout(function(){chrome.notifications.clear("notificationName",function(){});},10000);
}

Quand le stream est Actifs ? Mais aussi.. si le stream se coupe et se relance apres que je recoit une Notif quand meme ?..

Voila j'espére avoir etait clair, et qui aura quelqu'un pour m'aider.. Merci, Bonne journée !

Aucune réponse