一行控制台代码实现 github 批量 unstar

查看 20|回复 0
作者:cmdyu   
前几天爆出了 github 刷星事件:《 GitHub 黑市曝光,高档刷星 6 元一颗,最奇葩开源项目 97%都是刷的》,这其实也很正常,哪里有需求,哪里就有供给;哪里有利益,哪里就有交易。今天不说这个,说一说如何用控制台编程来实现批量 unstar 。
人有时会心血来潮,对某一领域突然很感兴趣,也许就会在 github 上把这一领域的知名项目都 star 一遍。过了一段时间,兴趣消退了,可能就会想把那些项目再 unstar 了,这样它们就不会出现在自己的 star 列表里了。如果 star 过的项目比较多,手工一个个的点的话很麻烦,这时就可以用编程的方式来实现批量操作了。
方法是进入 star 列表页面,然后打开浏览器控制台,输入下面这行代码,回车就可以了。
for await (x of $$('.js-toggler-container .starred button')) { await new Promise(r => setTimeout(r, 500)); x.click() }
原理很简单,就是用 dom 选择函数选出 starred 按钮,然后用 for await of 循环遍历,触发它们的点击事件。在每次点击之前加了一个 500 毫秒的延迟,避免操作太快的话接口报错。
用同样的方法,还可以实现批量 unfollow
for await (x of $$('.js-form-toggle-container input[value="Unfollow"]')){await new Promise(r=>setTimeout(r,500)); x.click()}
在 for await of 循环中加延时这个技术比较有用,执行一些批量操作的时候经常会用到。样板代码如下
for await (x of list) {
  await new Promise(r => setTimeout(r, 500));
}
大家可以留意一下。欢迎关注微信公众号:文本魔术,了解更多。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部