// ==UserScript==
// @name abot iirose
// @namespace http://tampermonkey.net/
// @version 1.0.4
// @description 把 iirose 搬进控制台
// @author crescawn
// @match https://iirose.com/messages.html
// @match http://iirose.com/messages.html
// @grant unsafeWindow
// ==/UserScript==
(function() {
'use strict';
function msg_pub(e) {
let args = [''];
args[0] += '%c' + e[2] + '\r\n';
args.push('color:' + ncolor[e[6]]);
if (e[3][0] == "'") {
args.push('color:gray');
switch (e[3][1]) {
case '0':
args[0] += '%c改变了状态: %c' + status[e[3][2]] + ' %c-> %c' + status[e[3][3]];
args.push('color:#933d4d');
args.push('color:gray');
args.push('color:#933d4d');
break;
case '1':
args[0] += '%c进入了房间';
break;
case '2':
args[0] += '%c移动到了 : %c' + Objs.mapHolder.Assets.roomNameJson[e[3].substr(2)] + '\r\n%c [_' + e[3].substr(2) +
'_] ';
args.push('color:#50a037');
args.push('color:gray');
break;
case '3':
args[0] += '%c离开了';
break;
case '5':
args[0] += '%c撤回了一条消息';
break;
default:
args[0] += '%c' + e[3];
}
} else if (e[3].indexOf('m__4') == 0) {
let m = e[3].substr(4).split('>');
args[0] += '%c点播' + mediacode[m[0][0]] + '\r\n标题 : %c' + hdec(m[1]) + '%c\r\n作者 : %c' + hdec(m[2]) +
'\r\n%c来源 : ' +
mediacode[m[0]];
args.push('color:gray');
args.push('color:black');
args.push('color:gray');
args.push('color:black');
args.push('color:gray');
} else {
args[0] += '%c' + hdec(e[3]);
args.push('color:black');
}
arrlog(args, new Date(e[0] * 1e3).toTimeString().substr(0, 8) + ' \r\n\/\/[#' + e[10] + '#] ');
}
function hdec(e) {
let t = document.createElement("div");
t.innerHTML = e;
return t.innerText || t.textContent;
}
function arrlog(a, c) {
a = JSON.stringify(a);
eval('console.log(' + a.substr(1, a.length - 2) + ')' + '\r\n' + '\/\/' + c);
}
function arrlog1(a, c) {
//a = JSON.stringify(a);
console.log(...a);
}
const mediacode = {
'@': '音乐',
'@0': '网易云音乐',
'@1': '虾米音乐',
'@2': 'QQ音乐',
'@3': '千千音乐',
'@4': '酷狗音乐',
'*': '视频',
'*0': '爱奇艺',
'*2': 'YouTube',
'*3': '哔哩哔哩'
};
const ncolor = [
'#7b13f1', '#0755ff', '#e72fea', '#21d63f', '#b94518'
];
const status = {
'n': '无状态',
'0': '会话中',
'1': '忙碌中',
'2': '离开中',
'3': '就餐中',
'4': '通话中',
'5': '移动中',
'6': '如厕中',
'7': '沐浴中',
'8': '睡觉中',
'9': '上课中',
'a': '作业中',
'b': '游戏中',
'c': '看剧中',
'd': '挂机中',
'e': '自闭中',
'f': '请撩我'
};
let ab = {
tui: function() {
Probe.init.roomSplashHolder || Init.fullPanel(18),
Objs.roomSplashHolder.function.enter(),
void(Temporary.roomSplashInit ? (1 == Temporary.roomSplashInit ? (panelAnimate(50, 0, Temporary.initPanelSwitch[
1], Objs[Temporary.initPanelSwitch[0]].This, Objs.roomSplashHolder.This), delete Temporary.initPanelSwitch) :
(panelAnimate(56, Probe.fullPanelNoAnimate = 1), Probe.fullPanelNoAnimate = 0), delete Temporary.roomSplashInit
) : panelAnimate(56, 1));
},
input: function(e, t) {
Utils.service.moveinputDo(e, t);
},
send: function(e) {
const ui = Utils.smallTools.uniqueID();
socket.send(JSON.stringify({
m: e,
mc: inputcolorhex,
i: ui
}));
return ui;
},
rcv: function(e) {
e = e.split('<').reverse();
for (let i in e) msg_pub(e[i].split('>'))
},
move: function(e) {
const a = e.indexOf('[_');
const b = e.indexOf('_]');
if (a != -1 && b != -1)
e = e.substr(a + 2, b - a - 2);
if (Objs.mapHolder.Assets.roomNameJson[e]) {
Objs.mapHolder.function.roomchanger(e);
return Objs.mapHolder.Assets.roomNameJson[e];
}
e = this.roomID(e);
e = (typeof(e) == typeof('') ? e : e[0]).split('>')[0];
Objs.mapHolder.function.roomchanger(e);
return e;
},
roomID: function(e) {
e = e.split('_').reverse();
for (let i in Objs.mapHolder.Assets.roomNameJson) {
let t = true;
let n = Objs.mapHolder.Assets.roomNameJson[i].split('_').reverse();
for (let j in n) {
if (e[j] == n[j]) continue;
t = false;
break;
}
if (t) return i + '>' + Objs.mapHolder.Assets.roomNameJson[i];
}
let r = [];
for (let i in Objs.mapHolder.Assets.roomNameJson) {
let t = true;
let n = Objs.mapHolder.Assets.roomNameJson[i].split('_').reverse();
for (let j in e) {
if (n[j].indexOf(e[j]) != -1) continue;
t = false;
break;
}
if (t) r.push(i + '>' + Objs.mapHolder.Assets.roomNameJson[i]);
}
return r.length > 0 ? (r.length == 1 ? r[0] : r) : 0;
}
};
function rcvstarter() {
if (Temporary._getcontents) {
ab.t_getcontents = Temporary._getcontents;
Temporary._getcontents = function(e, t) {
if (!t) {
ab.rcv(e);
}
ab.t_getcontents(e, t);
}
} else {
setTimeout(rcvstarter, 20);
}
}
rcvstarter();
unsafeWindow.abot = ab;
unsafeWindow.top.abot = ab;
})();