Last active
August 11, 2019 10:57
-
-
Save lccxx/12f3182ac171f4ece4c20b2952efbd82 to your computer and use it in GitHub Desktop.
telegram 狼人杀群的自动续命脚本,续满5人就不续了,并且会自动删除多余的续命消息(避免影响正常聊天),以及清理过多的历史记录(节约内存)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var all_msgs = () => { return $(".im_history_message_wrap:visible"); }; | |
var send = (cmd) => { $(".composer_rich_textarea").text(cmd); $(".im_submit").mousedown(); }; | |
var ex_text = "/extend 299"; | |
var ex_regexp = new RegExp(ex_text); | |
var own_regexp = /lccc/; | |
var del_regexp = new RegExp(ex_text + "|延長 299 秒|剩餘 \\d+ 秒|剩餘一分鐘"); | |
(async function work() { | |
var msgs = all_msgs(); | |
var flag = false; | |
msgs.map((i, msg) => { | |
if (flag) return ; | |
if (ex_regexp.test(msg.innerText)) flag = true; | |
}); | |
if (flag) { | |
var del_count = 0; | |
msgs.map((i, msg) => { | |
if (del_regexp.test(msg.innerText)) { | |
del_count += 1; | |
}; | |
}); | |
var del_sel_count = 0; | |
msgs.map(async (i, msg) => { | |
if (del_sel_count < del_count - 1 && del_regexp.test(msg.innerText)) { | |
del_sel_count += 1; | |
$(".hasselect", msg).click(); | |
await new Promise(resolve => setTimeout(resolve, 70)); | |
} | |
}); | |
await new Promise(resolve => setTimeout(resolve, 700)); | |
$(".im_edit_delete_btn:first").click(); | |
await new Promise(resolve => setTimeout(resolve, 700)); | |
$("span[ng-switch-when=MESSAGES_DELETE]").click(); | |
} else { | |
var playerCount = 0; | |
var playerCountIndex = -1; | |
var has_own = false; | |
msgs.map((i, msg) => { | |
var ps = /#players: (\d+)/.exec(msg.innerText); | |
if (ps && ps.length == 2) { | |
playerCount = parseInt(ps[1]); | |
playerCountIndex = i; | |
has_own = own_regexp.test(msg.innerText); | |
} | |
}); | |
msgs.map((i, msg) => { | |
if (has_own && playerCount < 5 && playerCountIndex >= 0 && i > playerCountIndex && /剩餘 \d+ 秒/.test(msg.innerText)) | |
send(ex_text); | |
}); | |
if (msgs.length > 99) msgs.map((i, msg) => { | |
if (playerCountIndex >= 0 && i < playerCountIndex) | |
msg.remove(); | |
}); | |
} | |
await new Promise(resolve => setTimeout(resolve, 7000)); | |
return work(); | |
})(); |
自动 moha ...
window.setInterval(() => { send("+1s") }, 999 + Math.random() * 9999);
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
自动卷动滚动条至最下面,偶尔会需要这个