Sofascore Chances

Replace betting odds with chances calculated by the odds

  1. // ==UserScript==
  2. // @name Sofascore Chances
  3. // @namespace https://gf.qytechs.cn/users/21515
  4. // @version 0.1.0
  5. // @description Replace betting odds with chances calculated by the odds
  6. // @author CennoxX
  7. // @homepage https://twitter.com/CennoxX
  8. // @match https://www.sofascore.com/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=sofascore.com
  10. // @license MIT
  11. // @grant none
  12. // ==/UserScript==
  13. /* jshint esversion: 11 */
  14.  
  15. (function() {
  16. "use strict";
  17. var getChance = (odds, all) => Math.round((1 / odds) / all * 100 ) + " %";
  18. var getNodeValue = (node) => Number(node.innerHTML);
  19. setInterval(()=>{
  20. [...document.querySelectorAll('[data-testid="event_time"],[data-testid="odds_market_name"]')].map(i => i.closest("a") ?? i.closest(".grHlAa")).forEach(i=>{
  21. var homeNode = i.querySelector(".Box a:nth-child(2) > div > div > span") ?? i.querySelector("div:nth-child(2) > a:nth-child(1) > div > span");
  22. var tieNode = i.querySelector(".Box a:nth-child(3) > div > div > span") ?? i.querySelector("div:nth-child(2) > a:nth-child(2) > div > span");
  23. var awayNode = i.querySelector(".Box a:nth-child(4) > div > div > span") ?? i.querySelector("div:nth-child(2) > a:nth-child(3) > div > span");
  24. if (!homeNode || !tieNode || !awayNode || homeNode.innerHTML.includes("%")) return;
  25. var home = getNodeValue(homeNode);
  26. var tie = getNodeValue(tieNode);
  27. var away = getNodeValue(awayNode);
  28. var all = 1 / home + 1 / tie + 1 / away;
  29. homeNode.innerHTML = getChance(home, all);
  30. tieNode.innerHTML = getChance(tie, all);
  31. awayNode.innerHTML = getChance(away, all);
  32. });
  33. },500);
  34. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址