SG User Steam Level

Shows steam level of SG user in their profile page.

当前为 2016-07-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name SG User Steam Level
  3. // @namespace https://steamcommunity.com/id/Ruphine/
  4. // @version 1.1
  5. // @description Shows steam level of SG user in their profile page.
  6. // @author Ruphine
  7.  
  8. // @match http://www.steamgifts.com/user/*
  9. // @match https://www.steamgifts.com/user/*
  10. // @connect ruphine.esy.es
  11. // @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js
  12. // @grant GM_xmlhttpRequest
  13. // ==/UserScript==
  14.  
  15. var styles = "<link rel='stylesheet' type='text/css' href='https://steamcommunity-a.akamaihd.net/public/shared/css/shared_global.css?v=Kh4iVpODIZtA'>";
  16. $("head").append(styles);
  17.  
  18. const link = "http://ruphine.esy.es/sgsteamlevel.php?steamid=";
  19. getUserLevel(getSteamID());
  20.  
  21. function getSteamID()
  22. {
  23. var profile = $(".sidebar__shortcut-inner-wrap a")[0].href;
  24. // http://steamcommunity.com/profiles/76561198152694723
  25. var pattern = /(\d){0,20}$/; //get digit with length between 0-20 characters
  26. var steamid = pattern.exec(profile)[0];
  27.  
  28. return steamid;
  29. }
  30.  
  31. function getUserLevel(steamid)
  32. {
  33. GM_xmlhttpRequest({
  34. method: "GET",
  35. timeout: 10000,
  36. url: link+steamid,
  37. onload: function(data)
  38. {
  39. // { "response": { "player_level": 35 } }
  40. console.log(data.responseText);
  41. var level = JSON.parse(data.responseText).response.player_level;
  42. showLevel(level);
  43. }
  44. });
  45. }
  46.  
  47. function showLevel(level)
  48. {
  49. var spanLevel = document.createElement("span");
  50. // spanLevel.classList.add("friendPlayerLevelNum");
  51. spanLevel.innerHTML = level;
  52.  
  53. var divLevel = document.createElement("div");
  54. divLevel.classList.add("friendPlayerLevel");
  55. $(divLevel).append(spanLevel);
  56.  
  57. if(level < 100)
  58. {
  59. var level_1 = Math.floor(level/10) * 10; //level 35 becomes 30
  60. divLevel.classList.add("lvl_" + level_1);
  61. }
  62. else
  63. {
  64. var level_1 = Math.floor(level % 100 / 10) * 10; // level 235 becomes 30
  65. var level_2 = Math.floor(level/100) * 100; // level 235 becomes 200
  66. divLevel.classList.add("lvl_" + level_2);
  67. divLevel.classList.add("lvl_plus_" + level_1);
  68. }
  69.  
  70. $(".featured__heading").append(divLevel);
  71. }
  72.  
  73.  
  74.  
  75. // doesn't use this anymore, but it might come in handy later
  76. /*var styles;
  77. styles = "<style> \
  78. .friendPlayerLevel \
  79. { \
  80. display: inline-block; \
  81. font-size: 16px; \
  82. border-radius: 16px; \
  83. border: solid white 2px; \
  84. height: 28px; \
  85. width: 28px; \
  86. line-height: 28px; \
  87. text-align: center; \
  88. cursor: default; \
  89. } \
  90. .friendPlayerLevel.lvl_0 { border-color: #9b9b9b; } \
  91. .friendPlayerLevel.lvl_10 { border-color: #c02942; } \
  92. .friendPlayerLevel.lvl_20 { border-color: #d95b43; } \
  93. .friendPlayerLevel.lvl_30 { border-color: #fecc23; } \
  94. .friendPlayerLevel.lvl_40 { border-color: #467a3c; } \
  95. .friendPlayerLevel.lvl_50 { border-color: #4e8ddb; } \
  96. .friendPlayerLevel.lvl_60 { border-color: #7652c9; } \
  97. .friendPlayerLevel.lvl_70 { border-color: #c252c9; } \
  98. .friendPlayerLevel.lvl_80 { border-color: #542437; } \
  99. .friendPlayerLevel.lvl_90 { border-color: #997c52; } \
  100. .friendPlayerLevel.lvl_100, .friendPlayerLevel.lvl_200, .friendPlayerLevel.lvl_300, .friendPlayerLevel.lvl_400, .friendPlayerLevel.lvl_500, .friendPlayerLevel.lvl_600, .friendPlayerLevel.lvl_700, .friendPlayerLevel.lvl_800, .friendPlayerLevel.lvl_900, .friendPlayerLevel.lvl_1000 \
  101. { \
  102. border: none; \
  103. border-radius: 0; \
  104. background-repeat: no-repeat; \
  105. background-position: 0 0; \
  106. font-size: 14px; \
  107. height: 32px; \
  108. width: 32px; \
  109. line-height: 32px; \
  110. } \
  111. .friendPlayerLevel.lvl_100 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_hexagons.png' ); } \
  112. .friendPlayerLevel.lvl_200 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_shields.png' ); } \
  113. .friendPlayerLevel.lvl_300 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_books.png' ); text-shadow: 1px 1px #1a1a1a; } \
  114. .friendPlayerLevel.lvl_400 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_chevrons.png' ); } \
  115. .friendPlayerLevel.lvl_500 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_circle2.png' ); } \
  116. .friendPlayerLevel.lvl_600 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_angle.png' ); } \
  117. .friendPlayerLevel.lvl_700 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_flag.png' ); } \
  118. .friendPlayerLevel.lvl_800 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_wings.png' ); } \
  119. .friendPlayerLevel.lvl_900 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_arrows.png' ); } \
  120. .friendPlayerLevel.lvl_1000 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_crystals.png' ); } \
  121. .friendPlayerLevel.lvl_1100 { background-image: url( 'http://steamcommunity-a.akamaihd.net/public/shared/images/community/levels_space.png' ); } \
  122. .friendPlayerLevel.lvl_plus_10 { background-position: 0 -32px; } \
  123. .friendPlayerLevel.lvl_plus_20 { background-position: 0 -64px; } \
  124. .friendPlayerLevel.lvl_plus_30 { background-position: 0 -96px; } \
  125. .friendPlayerLevel.lvl_plus_40 { background-position: 0 -128px; } \
  126. .friendPlayerLevel.lvl_plus_50 { background-position: 0 -160px; } \
  127. .friendPlayerLevel.lvl_plus_60 { background-position: 0 -192px; } \
  128. .friendPlayerLevel.lvl_plus_70 { background-position: 0 -224px; } \
  129. .friendPlayerLevel.lvl_plus_80 { background-position: 0 -256px; } \
  130. .friendPlayerLevel.lvl_plus_90 { background-position: 0 -288px; } \
  131. </style>";
  132. $("head").append(styles);*/