增强功能:自动登录
当前为
// ==UserScript==
// @name ZhChat增强脚本
// @namespace http://tampermonkey.net/
// @version 2.2.114.514
// @description 增强功能:自动登录
// @author UbisoComes (GreenDebug)
// @match https://chat.zhangsoft.cf/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=zhangsoft.cf
// @license MIT
// @run-at document-end
// @grant unsafeWindow
// @grant none
// ==/UserScript==
(function () {
const local = {
set: (key, value) => localStorage.setItem(key, value),
remove: (key) => localStorage.removeItem(key),
get: (key) => localStorage.getItem(key),
exist: (key) => localStorage.getItem(key) != undefined,
};
const dev = window.console;
window.dev = dev;
const doc = window.document;
const $_ = (q) => doc.querySelectorAll(q);
const $ = (d) => doc.querySelector(d);
const SideBarUI = {
add: (element) => {
let side = $('#sidebar-content');
side.insertBefore(element, side.children[1]);
},
remove: (filther) => {
let side = $('#sidebar-content');
for (let i in side.children) {
let item = side.children[i];
if (filther(item)) side.removeChild(item);
}
}
};
function hookLogin() {
//hook
let login = async (nick) => {
local.set('my-nick', nick);
setTimeout(() => { window.myNick = nick; }, 100);
await getMurmur();
var sendMurmur = encode(window.myMurmur).toString();
send({ cmd: 'join', channel: window.myChannel, nick: nick, client: 'ZhangChatClient', murmur: sendMurmur });
};
let orgin = () => {
var newNick = prompt('输入昵称:', local.get('my-nick') || '');
login(newNick);
};
let autoLogin = () => {
if (local.get('autoLogin') != 'true') return false;
if (!local.exist('my-nick')) return false;
let nick = local.get('my-nick');
login(nick);
return true;
}
if (!autoLogin()) orgin();
}
function autoLoginUI() {
let p = doc.createElement('p'),
input = doc.createElement('input'),
label = doc.createElement('label');
input.setAttribute('type', 'checkbox');
input.setAttribute('id', 'autoLogin');
input.onchange = (e) => {
local.set('autoLogin', input.checked);
};
input.checked = local.get('autoLogin') == 'true';
label.innerText = ' 自动登录';
label.setAttribute('for', 'autoLogin');
p.appendChild(input);
p.appendChild(label);
SideBarUI.add(p);
}
function initUI() {
autoLoginUI();
}
function init() {
try{
initUI();}
catch{}
window._prompt = window.prompt;
window.hook = hookLogin;
window.prompt = (w, s = '') => {
if (w.indexOf('请输入昵称') != -1) {
window.hook();
return;
}
return window._prompt(w, s);
};
setTimeout(() => {
userInvite = function (nick) {
var gotoChannel = prompt("设置一个去的频道(按取消随机)")
send(gotoChannel ? { cmd: 'invite', nick: nick, to: gotoChannel } : { cmd: 'invite', nick: nick });
}
}, 1000);
}
init();
})();