// ==UserScript==
// @name 蓝湖
// @namespace http://tampermonkey.net/
// @version 0.2.18
// @description try to take over the world!
// @author HolmesZhao
// @include *://lanhuapp.com/web*
// @include *://lanhu.zuoyebang.cc/web*
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
var oldUrl = window.location.href
if (oldUrl.indexOf("project/stage") == -1) {
oldUrl = ""
}
function login() {
let login_url = "http://lanhu.zuoyebang.cc/api/account/login_url"
let toast = document.getElementsByClassName("lan-toast")
let needLogin = false
for (let i = 0; i < toast.length; ++i) {
let text = toast[i].textContent
if (text.length > 0) {
needLogin = true
break
}
}
if (needLogin) {
window.location.href = login_url
} else {
if (oldUrl.length > 0) {
window.location.href = oldUrl
}
}
}
setTimeout(login, 2000);
// Your code here...
var colorJson = {}
var colorMMJJson = {
"BackgroundTitle": "FFFFFF",
"Tip_Strong": "FFA317",
"Disable": "B8BBC2",
"LinkText": "3777FF",
"Tip_Success": "07C16A",
"NavigationBarBackground": "F9F9F9",
"AccessoryTitle": "7B8196",
"MainTitle": "1F2129",
"Tip_Failure": "F8554F",
"Tip_Weak": "FFF6D4",
"Background": "F7F8FB",
"Separator": "E6E8F2"
}
// 错题 app 的颜色
var colorStudyJson = {
"BackgroundTitle": "FFFFFF",
"Tip_Strong": "FFA317",
"Disable": "B8BBC2",
"LinkText": "3777FF",
"Tip_Success": "07C16A",
"NavigationBarBackground": "FAFCFF",
"AccessoryTitle": "8F9396",
"MainTitle": "292F3D",
"Tip_Failure": "F8554F",
"Tip_Weak": "FFF6D4",
"Background": "F5F7FA",
"Separator": "EDEEF0",
"Accessory1": "FFB91A",
"Accessory2": "FF6904",
"TextButtonMain": "0687FF",
"VIPFont": "994D12",
"LabelSelected": "E9F6FF",
"LabelNormal": "F7F9FC",
}
var fontJson = {
"MMRegularFontName": "苹方-简 常规体",
"MMMediumFontName": "苹方-简 中黑体",
"MMSemiboldFontName": "苹方-简 中粗体"
}
var fontSizeJson = {
"MMSpecialBigFontSize": "34pt",
"MMSpecialMiddleFontSize": "24pt",
"MMSpecialSmallFontSize": "21",
"MMTitleFontSize": "18pt",
"MMTitleTabSelectFontSize": "16pt",
"MMTitleTabNormalFontSize": "15pt",
"MMContentFontSize": "14pt",
"MMAccessoryFontSize": "13pt",
"MMDescriptionFontSize": "12pt",
"MMLabelFontSize": "11pt",
"MMMarkFontSize": "10pt",
}
var color = '';
var font = '';
var fontSize = '';
var app = 'mmj';
function changeColorText() {
var copy_texts = document.getElementsByClassName('copy_text');
for (let index = 0; index < copy_texts.length; index++) {
const element = copy_texts[index];
for (const key in colorJson) {
if (colorJson.hasOwnProperty(key)) {
const value = colorJson[key];
if (element.innerText.indexOf(value) != -1 ||
element.innerText.indexOf(value.toLowerCase()) != -1) {
element.innerText = key;
color = key;
return;
}
}
}
}
}
function changeFontText() {
var layer_names = document.getElementsByClassName('layer_name');
for (let index = 0; index < layer_names.length; index++) {
const element = layer_names[index];
for (const key in fontJson) {
if (fontJson.hasOwnProperty(key)) {
const value = fontJson[key];
if (element.innerText.indexOf(value) != -1) {
element.innerText = key;
font = key;
return;
}
}
}
}
}
function changeFontSizeText() {
var item_titles = document.getElementsByClassName('item_title');
for (let index = 0; index < item_titles.length; index++) {
const element = item_titles[index];
if (element.innerText.indexOf('字号') != -1) {
let sizeDom = element.parentElement.getElementsByClassName('two')[0];
for (const key in fontSizeJson) {
if (fontSizeJson.hasOwnProperty(key)) {
const value = fontSizeJson[key];
if (sizeDom.innerText.indexOf(value) != -1) {
sizeDom.innerText = key;
fontSize = key;
return;
}
}
}
}
}
}
function changeText(params) {
changeColorText();
changeFontText();
changeFontSizeText();
}
function addButton(name, marginLeft, fun) {
var txt = document.createTextNode(name);
var btn = document.createElement('button');
btn.className = 'mmbutton';
btn.style = "z-index: 9999; font-size: large; position: fixed; top: 0pt; left: " + (marginLeft) + "px;";
btn.onclick = fun;
btn.appendChild(txt);
document.body.appendChild(btn);
return btn.offsetWidth + btn.offsetLeft;
};
function remove() {
let style = document.getElementsByClassName('mu-paper mu-drawer mu-paper-round mu-paper-2 open right')[0].getAttribute('style');
if (style.indexOf('display') == -1) {
drawerStyle = style;
document.getElementsByClassName('mu-paper mu-drawer mu-paper-round mu-paper-2 open right')[0].setAttribute('style', 'display: none;');
} else {
document.getElementsByClassName('mu-paper mu-drawer mu-paper-round mu-paper-2 open right')[0].setAttribute('style', drawerStyle);
}
};
function getFont() {
font = font.split('Font')[0];
// [UIFont MMMediumFontWithFontSize:MMTitleFontSize]
let fontCode = "[UIFont " + font + "FontWithFontSize:"+ fontSize +"]";
let btn = document.getElementsByClassName('mmbutton')[3];
let btnText = btn.innerText;
let textarea = "";
btn.innerHTML = textarea;
var element = document.getElementById("copyFont");
element.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
btn.innerText = btnText
};
function getSwiftFont() {
font = font.split('Font')[0];
// .mediumFont(with: .Content)
let fontCode = "." +
font.charAt(2).toLowerCase() +
font.slice(3) +
"Font(with: ." +
fontSize.slice(2, -8) + ")"
let btn = document.getElementsByClassName('mmbutton')[5];
let btnText = btn.innerText;
let textarea = "";
btn.innerHTML = textarea;
var element = document.getElementById("copyFont");
element.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
btn.innerText = btnText
};
function getColor() {
color = color.split('_').join('');
color = color.charAt(0).toLowerCase() + color.slice(1);
// UIColor.mm_mainTitleColor
let colorCode = "UIColor.mm_" + color + "Color";
let btn = document.getElementsByClassName('mmbutton')[4];
let btnText = btn.innerText;
let textarea = "";
btn.innerHTML = textarea;
var element = document.getElementById("copyColor");
element.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
btn.innerText = btnText
}
function getSwiftColor() {
color = color.split('_').join('');
color = color.charAt(0).toLowerCase() + color.slice(1);
// .mm_mainTitle()
let colorCode = "UIColor.mt." + color;
let btn = document.getElementsByClassName('mmbutton')[6];
let btnText = btn.innerText;
let textarea = "";
btn.innerHTML = textarea;
var element = document.getElementById("copyColor");
element.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
btn.innerText = btnText
}
function changeApp() {
let btn = document.getElementsByClassName('mmbutton')[0];
let key = 'mbkj'
app = localStorage.getItem(key)
if (app == '' || app == null) {
app = 'mmj'
}
switch (app) {
case 'mmj':
btn.innerText = '错题APP'
colorJson = colorStudyJson
localStorage.setItem(key, 'study');
break;
case 'study':
btn.innerText = '喵喵机'
colorJson = colorMMJJson
localStorage.setItem(key, 'mmj');
break;
default:
break;
}
}
function appName() {
let key = 'mbkj'
app = localStorage.getItem(key)
if (app == '' || app == null) {
app = 'mmj'
}
switch (app) {
case 'mmj':
colorJson = colorMMJJson
return '喵喵机'
case 'study':
colorJson = colorStudyJson
return '错题APP'
default:
return ""
}
}
var drawerStyle = '';
var btnLeft = screen.width/5;
var marginLeft = 30;
btnLeft += marginLeft;
btnLeft = addButton(appName(), btnLeft, changeApp);
btnLeft += marginLeft;
btnLeft = addButton('点击开关抽屉', btnLeft, remove);
btnLeft += marginLeft;
btnLeft = addButton('点击更换文字', btnLeft, changeText);
btnLeft += marginLeft;
btnLeft = addButton('OC 字体', btnLeft, getFont);
btnLeft += marginLeft;
btnLeft = addButton('OC 颜色', btnLeft, getColor);
btnLeft += marginLeft;
btnLeft = addButton('Swift 字体', btnLeft, getSwiftFont);
btnLeft += marginLeft;
btnLeft = addButton('Swift 颜色', btnLeft, getSwiftColor);
})();