Skip to content

Instantly share code, notes, and snippets.

@lccxx
Last active August 11, 2019 10:57
Show Gist options
  • Save lccxx/12f3182ac171f4ece4c20b2952efbd82 to your computer and use it in GitHub Desktop.
Save lccxx/12f3182ac171f4ece4c20b2952efbd82 to your computer and use it in GitHub Desktop.
telegram 狼人杀群的自动续命脚本,续满5人就不续了,并且会自动删除多余的续命消息(避免影响正常聊天),以及清理过多的历史记录(节约内存)
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();
})();
@lccxx
Copy link
Author

lccxx commented Apr 4, 2019

自动卷动滚动条至最下面,偶尔会需要这个

window.setInterval(() => { $(".im_history_scrollable_wrap").animate({ scrollTop: 99999 }, 'fast'); }, 3000);

@lccxx
Copy link
Author

lccxx commented Apr 15, 2019

自动 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