Advertisement
Guest User

Steam remove trash licenses

a guest
Aug 15th, 2014
2,246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function () {
  2.     var NUKE_REGEX = /\b(?:trailer|teaser|demo|cinematic|pegi|esrb)\b/i;
  3.  
  4.     var PACKAGE_ID_REGEX = /javascript:\s*RemoveFreeLicense\s*\(\s*(\d+)/;
  5.     var REMOVE_LICENSE_API = "/account/removelicense";
  6.     var RUN_ON_PAGE = "https://store.steampowered.com/account/";
  7.  
  8.     if (location.href !== RUN_ON_PAGE) {
  9.         if (confirm("You're not on your licenses page, dummy. Go there now?")) {
  10.             location.assign(RUN_ON_PAGE);
  11.         }
  12.         return;
  13.     }
  14.  
  15.     var idsToRemove = [];
  16.  
  17.     var rows;
  18.     var licensesTable = document.getElementById("licenses");
  19.     var packageId;
  20.  
  21.     if (licensesTable && window.g_sessionID) {
  22.         licensesTable = licensesTable.getElementsByClassName("account_table")[0];
  23.         rows = licensesTable.rows;
  24.  
  25.         for (var i = 0, l = rows.length; i < l; i++) {
  26.             if (NUKE_REGEX.test(rows[i].cells[0].textContent)) {
  27.                 packageId = PACKAGE_ID_REGEX.exec(rows[i].cells[1].innerHTML);
  28.  
  29.                 if (packageId !== null) {
  30.                     idsToRemove.push(packageId[1]);
  31.                 }
  32.             }
  33.         }
  34.  
  35.         function removePackageAndQueueNext(packages, index) {
  36.             if (index >= packages.length) {
  37.                 console.log("Packages removed.");
  38.                 return; // done
  39.             }
  40.  
  41.             var parameters = "?sessionid=" + encodeURIComponent(g_sessionID) + "&packageid=" + encodeURIComponent(packages[index]);
  42.  
  43.             var xhr = new XMLHttpRequest();
  44.             xhr.open("HEAD", REMOVE_LICENSE_API + parameters, true);
  45.             xhr.onreadystatechange = function () {
  46.                 if (this.readyState === 4) {
  47.                     console.log("Removed package %d/%d", index + 1, packages.length);
  48.                     removePackageAndQueueNext(packages, index + 1);
  49.                 }
  50.             };
  51.             xhr.send();
  52.         }
  53.  
  54.         // Kick off the first request
  55.         if (idsToRemove.length > 0) {
  56.             removePackageAndQueueNext(idsToRemove, 0);
  57.         }
  58.     }
  59. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement