Advertisement
serenityhub

Untitled

Apr 19th, 2025
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Starpets RUB Converter
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0
  5. // @description Convertit le solde RUB en USD et EUR sur starpets.gg
  6. // @author Vous
  7. // @match https://starpets.gg/*
  8. // @grant GM_xmlhttpRequest
  9. // @grant GM_addStyle
  10. // ==/UserScript==
  11.  
  12. (async function() {
  13. 'use strict';
  14.  
  15. // Fonction pour vérifier la présence de l'élément
  16. function waitForElement(selector) {
  17. return new Promise((resolve) => {
  18. const interval = setInterval(() => {
  19. const element = document.querySelector(selector);
  20. if (element) {
  21. clearInterval(interval);
  22. resolve(element);
  23. }
  24. }, 100); // Vérifie toutes les 100 ms
  25. });
  26. }
  27.  
  28. // Attendre que l'élément contenant le solde en RUB soit disponible
  29. const balanceSelector = '._title_fg9xm_23';
  30. const balanceElement = await waitForElement(balanceSelector);
  31.  
  32. // Extraction du montant RUB
  33. const rubText = balanceElement.textContent.replace(/[^\d.,]/g, '').replace(',', '.');
  34. const rubAmount = parseFloat(rubText);
  35.  
  36. if (isNaN(rubAmount)) return;
  37.  
  38. // URL de l'API pour obtenir les taux de change
  39. const apiUrl = 'https://open.er-api.com/v6/latest/RUB';
  40.  
  41. try {
  42. // Récupération des taux de change
  43. const res = await fetch(apiUrl);
  44. const data = await res.json();
  45.  
  46. if (res.status === 200 && data.result === "success") {
  47. const usdRate = data.rates.USD;
  48. const eurRate = data.rates.EUR;
  49.  
  50. if (usdRate && eurRate) {
  51. const usdValue = (rubAmount * usdRate).toFixed(2);
  52. const eurValue = (rubAmount * eurRate).toFixed(2);
  53.  
  54. // Création d'un élément HTML pour afficher la conversion avec le symbole ₽
  55. const usdElem = document.createElement('div');
  56. usdElem.style.marginTop = '5px';
  57. usdElem.style.fontSize = '14px';
  58. usdElem.style.color = '#00c896';
  59. usdElem.textContent = `≈ ${usdValue} USD / ${eurValue} EUR`;
  60.  
  61. // Ajout de la conversion sous le solde en RUB
  62. balanceElement.parentNode.appendChild(usdElem);
  63. } else {
  64. console.error("Taux de change USD ou EUR introuvables.");
  65. }
  66. } else {
  67. console.error("Erreur de récupération des taux de change.");
  68. }
  69. } catch (error) {
  70. console.error('Erreur API:', error);
  71. }
  72. })();
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement