补充包制作器快捷方式

Steam补充包制作器快捷方式

  1. // ==UserScript==
  2. // @name Boosterpack_Link
  3. // @name:zh-CN 补充包制作器快捷方式
  4. // @namespace https://blog.chrxw.com
  5. // @version 1.3
  6. // @description Steam补充包制作器快捷方式
  7. // @description:zh-CN Steam补充包制作器快捷方式
  8. // @author Chr_
  9. // @include /https://steamcommunity\.com/(id|profiles)/[^\/]+/gamecards/(\d+)/?$/
  10. // @include /https://steamcommunity\.com/(id|profiles)/[^\/]+/badges/?(\/$|\/\?)?/
  11. // @license AGPL-3.0
  12. // @icon https://blog.chrxw.com/favicon.ico
  13. // ==/UserScript==
  14.  
  15. window.addEventListener("load", () => {
  16. "use strict";
  17. const blackList = ["1658760"];
  18.  
  19. if (window.location.pathname.search("gamecards") === -1) {
  20.  
  21. let rows = document.querySelectorAll("div.badges_sheet > div.badge_row");
  22. for (const ele of rows) {
  23. let link = ele.querySelector("a.badge_row_overlay");
  24.  
  25. if (link !== null) {
  26.  
  27. let appid = link.href.match(/gamecards\/(\d+)/);
  28.  
  29. appid = appid ? appid[1] : -1;
  30. if (appid < 0) {
  31. console.log("获取appid失败");
  32. } else if (blackList.indexOf(appid) > -1) {
  33. console.log("跳过黑名单");
  34. } else {
  35. let btnBoosterPack = document.createElement("button");
  36.  
  37. btnBoosterPack.style.cssText = "position: absolute;right: 300px;top: 10px;z-index: 99;";
  38. btnBoosterPack.addEventListener("click", () => {
  39. window.open(`https://steamcommunity.com/tradingcards/boostercreator/#${appid}`);
  40. });
  41. btnBoosterPack.textContent = "我要做包";
  42.  
  43. let btnPointShop = document.createElement("button");
  44.  
  45. btnPointShop.style.cssText = "position: absolute;right: 380px;top: 10px;z-index: 99;";
  46. btnPointShop.addEventListener("click", () => {
  47. window.open(`https://store.steampowered.com/points/shop/app/${appid}`);
  48. });
  49. btnPointShop.textContent = "点数商店";
  50.  
  51. ele.appendChild(btnPointShop);
  52. ele.appendChild(btnBoosterPack);
  53. }
  54. }
  55. }
  56. } else {
  57. let title = document.querySelector("div.badge_title");
  58. let appid = window.location.pathname.match(/gamecards\/(\d+)/);
  59.  
  60. appid = appid ? appid[1] : -1;
  61. if (appid < 0) {
  62. console.log("获取appid失败");
  63. } else if (blackList.indexOf(appid) > -1) {
  64. console.log("跳过黑名单");
  65. } else {
  66. let btnBoosterPack = document.createElement("button");
  67.  
  68. btnBoosterPack.style.cssText = "position: absolute;right: 300px;top: 10px;z-index: 99;";
  69. btnBoosterPack.addEventListener("click", () => {
  70. window.open(`https://steamcommunity.com/tradingcards/boostercreator/#${appid}`);
  71. });
  72. btnBoosterPack.textContent = "我要做包";
  73.  
  74. let btnPointShop = document.createElement("button");
  75.  
  76. btnPointShop.style.cssText = "position: absolute;right: 380px;top: 10px;z-index: 99;";
  77. btnPointShop.addEventListener("click", () => {
  78. window.open(`https://store.steampowered.com/points/shop/app/${appid}`);
  79. });
  80. btnPointShop.textContent = "点数商店";
  81.  
  82. title.appendChild(btnPointShop);
  83.  
  84. title.appendChild(btnBoosterPack);
  85. }
  86. }
  87. });