Avoir une Playstation 5 avec Javascript

Avoir une Playstation 5 avec Javascript

Javascript ne vous sert pas qu’à faire de superbes sites internet ou des serveurs performants, il peut aussi vous servir dans la vie de tous les jours. Comme par exemple, réussir enfin à avoir une Playstation 5. Vous allez me dire que j’ai juste à aller chez mon revendeur préféré pour acheter la grosse bête. Sauf que le jour où j’écris cet article, on est le 19 novembre 2020. Jour de la sortie de la Playstation 5. Et non seulement ce jour a été marqué par une énorme pénurie de la console, mais en plus les principaux gros sites de vente français sont tombés en rade pendant plusieurs heures. Pourquoi ? Parce que tout le monde voulait une PS5 et il n’y en avait pas pour tout le monde. Je ne vous raconte pas l’explosion de connexion…

Ryan Djoher

05/25/2021 - 4 minutes de lecture

C’est quoi le rapport avec Javascript ?

Pourquoi faire F5 sur la page de vente de la console toutes les 10 secondes quand un script peut le faire à votre place ? Pourquoi tout le temps regarder si le bouton « ajouter au panier » est présent quand un script peut vous prévenir de son apparition ? Je pense que vous avez compris où je veux en venir.

Petite précision, cet article n’est pas vraiment là pour vous dire comment choper une Playstation 5 sous le nez d’autres acheteurs, mais pour vous montrer que faire du code peut vous aider de bien des manières. Par exemple, j’ai personnellement fait un script JS pour me dire qu’elles sont les meilleurs objets pour faire le maximum de dégâts dans le jeu vidéo League of Legends, en tenant compte de mon niveau et de l’or acquis.

Injection

La première étape, c’est d’injecter un code dans la page de notre chère petite Playstation. Pas de panique, je ne parle pas de faire des injections sur le serveur comme tout bon pirate. Ici, on ne touche qu’au code du front, donc du navigateur. Pour ça, nous avons besoin d’un module qui se nomme « Code injector » et qui est disponible pour le navigateur Firefox. Vous ne devriez pas avoir trop de mal à le trouver ni à l’installer.

Une fois que vous avez lancé le module, vous devriez avoir ce genre de présentation.

image pour habiller article

Vous l’avez certainement deviné mais ce module nous permet d’injecter du code dans le navigateur afin qu’il l’applique dans la page visée.

Code

Le principe est simple : On a dire à notre navigateur de voir si la Playstation 5 est dispo. Si c’est le cas, il va jouer une musique. Si ce n’est pas le cas, il attend 5 minutes et faire un rechargement de la page. Et il recommence la boucle. Ça à l’air simple, mais ce n’est pas tout à fait le cas. La vraie difficulté réside dans le fait que le code doit analyser la page et voir si une Playstation 5 est dispo. Et pour ça, on va devoir se débrouiller avec le HTML envoyé par le site serveur du site. Prenons par exemple le cas de la boutique en ligne Micromania.

Juste à l’œil, on voit la différence quand un produit est disponible ou pas. Et cette différence, c’est la présence du bouton « Ajouter au panier ». Ce bouton, il a une classe spécifique qui se nomme « btn-add-basket ». Si cette classe n’est pas présente dans le HTML, alors ça veut dire que la console n’est pas disponible. Si elle est présente, alors la console est là. Donc nous allons injecter ce code :

setTimeout(() => {

  const elem = document.getElementsByClassName('btn-add-basket')
  console.log("elem", elem)

  if (elem.length > 0) {
    console.log('PS5 DISPO !')
    const audio = new Audio('http://commondatastorage.googleapis.com/codeskulptor-demos/DDR_assets/Kangaroo_MusiQue_-_The_Neverwritten_Role_Playing_Game.mp3');
    audio.play();
  } else {
    console.log('Pas de ps5')
    setTimeout(() => {
      document.location.reload()
    }, 60000);
  }

}, 3000);

j’ai une ps5 !

Ce code est très simple et une personne qui a les bases en Javascript n’aura aucun mal à le comprendre. Il suffit de l’injecter avec notre module et attendre qu’une musique se lance. En réalité, tout n’est pas si rose. Je ne sais pas si ça vient du navigateur ou du module, mais il y a une fuite de mémoire qui cause un plantage de Firefox au bout de plusieurs heures. Personnellement, ça ne m’a pas posé de problème car les pages et l’injection de code reviennent automatiquement après que Firefox ait planté.

C’est beau non ? Encore une fois, je précise que ce n’est pas un tuto pour avoir une playstation 5, mais plutôt un article pour vous montrer qu’on peut utiliser du code Javascript pour plein de choses. Le monde du code est si vaste…