js 批量移除steam游戏 移除用户凭证中免费获取的物品
2015-11-13 01:04
633 查看
手贱用steamdb上的js 获取了几百个免费的demo和游戏 出现在了用户凭证里,但是并没有喜+1
所以后来琢磨如何删掉又长又臭的单子 强迫症伤不起啊
后来发现了一个别人写好的js 然而似乎因为年代久远 有一点错误
http://pastebin.com/hhdNMmUk
其实今天也是第一次看js代码
在读了代码后 大概了解到了作者的意思
首先网页进入账户明细,选择 查看许可和产品序列号激活
在这里包含了所有的游戏 有的免费的可以移除 有的不可以
可以移除的 通过判断rows[i].cells[1].textContent是否通过NUKE_REGEX = /\b(?:trailer|teaser|demo|cinematic|pegi|esrb)\b/i;的正则表达式检测
稍微改了后 发现仍然有好多免费的游戏还在
所以自己想通过检查是否有“移除”两个字来移除
但有关汉字的正则表达式比较困难 于是找到了一个懒招 直接判断rows[i].cells[1].textContent.indexOf("移除")!=-1
现在它可以代替你点击所有的移除按键了!
进入页面 store.steampowered.com/account/licenses/
进入浏览器的控制台 复制代码 回车
稍等一会儿 所有的可以移除的游戏就都被移除了
没有找到能直接删除的代码
所以算抄袭+小小的改造吧
所以后来琢磨如何删掉又长又臭的单子 强迫症伤不起啊
后来发现了一个别人写好的js 然而似乎因为年代久远 有一点错误
http://pastebin.com/hhdNMmUk
其实今天也是第一次看js代码
在读了代码后 大概了解到了作者的意思
首先网页进入账户明细,选择 查看许可和产品序列号激活
在这里包含了所有的游戏 有的免费的可以移除 有的不可以
可以移除的 通过判断rows[i].cells[1].textContent是否通过NUKE_REGEX = /\b(?:trailer|teaser|demo|cinematic|pegi|esrb)\b/i;的正则表达式检测
稍微改了后 发现仍然有好多免费的游戏还在
所以自己想通过检查是否有“移除”两个字来移除
但有关汉字的正则表达式比较困难 于是找到了一个懒招 直接判断rows[i].cells[1].textContent.indexOf("移除")!=-1
现在它可以代替你点击所有的移除按键了!
进入页面 store.steampowered.com/account/licenses/
进入浏览器的控制台 复制代码 回车
稍等一会儿 所有的可以移除的游戏就都被移除了
(function () { var NUKE_REGEX = /\b(?:trailer|teaser|demo|cinematic|pegi|esrb)\b/i; var PACKAGE_ID_REGEX = /javascript:\s*RemoveFreeLicense\s*\(\s*(\d+)/; var REMOVE_LICENSE_API = "/account/removelicense"; var RUN_ON_PAGE = "https://store.steampowered.com/account/"; var idsToRemove = []; var rows; var packageId; var licensesTable = document.getElementsByClassName("account_table")[0]; rows = licensesTable.rows; for (var i = 0, l = rows.length; i < l; i++) { //alert( rows[i].cells[1].textContent.indexOf("移除")); if (rows[i].cells[1].textContent.indexOf("移除")!=-1) { packageId = PACKAGE_ID_REGEX.exec(rows[i].cells[1].innerHTML); if (packageId !== null) { idsToRemove.push(packageId[1]); } } } function removePackageAndQueueNext(packages, index) { if (index >= packages.length) { console.log("Packages removed."); return; // done } var parameters = "?sessionid=" + encodeURIComponent(g_sessionID) + "&packageid=" + encodeURIComponent(packages[index]); var xhr = new XMLHttpRequest(); xhr.open("HEAD", REMOVE_LICENSE_API + parameters, true); xhr.onreadystatechange = function () { if (this.readyState === 4) { console.log("Removed package %d/%d", index + 1, packages.length); removePackageAndQueueNext(packages, index + 1); } }; xhr.send(); } // Kick off the first request if (idsToRemove.length > 0) { removePackageAndQueueNext(idsToRemove, 0); } })();
没有找到能直接删除的代码
所以算抄袭+小小的改造吧
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- Ruby on Rails中jquery_ujs组件拖慢速度的问题解决