// ==UserScript==
// @name 编程猫使用优化
// @namespace https://shequ.codemao.cn/user/438403
// @version 1.8.32
// @description 对于在使用编程猫中遇到的各种问题的部分优化
// @author 小鱼yuzifu
// @match https://shequ.codemao.cn/*
// @icon https://creation.codemao.cn/884/l4zc7xoc.png?imageMogr2/thumbnail/!200x200r/blur/1x0/quality/100|imageslim
// @grant GM_xmlhttpRequest
// @require https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.slim.min.js
// @license 616 SB License
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
GM_xmlhttpRequest({
method: "get",
url: "https://api.codemao.cn/creation-tools/v1/user/center/honor",
data: document.cookie,
binary: true,
async onload({ response }) {
$("li[data-watch_event='下载APP-入口tab']").after(`
`);
if ((window.location.href.indexOf("work/") != -1) && (parseInt(window.location.href.slice(25 + 5,)))) {
GM_xmlhttpRequest({
method: "get",
url: "https://api.codemao.cn/creation-tools/v1/works/" + parseInt(window.location.href.slice(25 + 5,)),
data: document.cookie,
binary: true,
async onload({ response }) {
if (JSON.parse(response).type == 'NEMO') {
$("li[data-watch_event='下载APP-入口tab']").after(`
旋转屏幕`);
var rotateDeg = 0
$("li[data-watch_event='旋转-入口tab']").click(function () {
rotateDeg -= 90;
document.documentElement.style.setProperty('--rotateDeg', 'rotate(' + rotateDeg + 'deg)');
document.documentElement.style.setProperty('--OppoRotateDeg', 'rotate(' + -rotateDeg + 'deg)');
})
}
}
})
}
$("head").after(``)
$('#custom-sett textarea').on('change', () => {
localStorage.setItem('custom-sett', document.querySelector('#custom-sett textarea').value)
document.querySelector('#custom-setts').innerHTML = document.querySelector('#custom-sett textarea').value
})
$('input#main-color').on('change', () => {
document.documentElement.style.setProperty('--main-color', document.querySelector('input#main-color').value);
localStorage.setItem('main-color', document.querySelector('input#main-color').value);
})
$('input#second-color').on('change', () => {
document.documentElement.style.setProperty('--second-color', document.querySelector('input#second-color').value);
localStorage.setItem('second-color', document.querySelector('input#second-color').value);
})
$('input#highlight-color').on('change', () => {
document.documentElement.style.setProperty('--highlight-color', document.querySelector('input#highlight-color').value);
localStorage.setItem('highlight-color', document.querySelector('#highlight-color').value);
})
$('input#level-shown').on('change', () => {
if (document.querySelector('input#level-shown').checked) {
document.documentElement.style.setProperty('--isLevelShown', '');
localStorage.setItem('isLevelShown', '');
}
else {
document.documentElement.style.setProperty('--isLevelShown', 'none');
localStorage.setItem('isLevelShown', 'none');
}
})
$('input[value="pic"]').on('change', () => {
document.documentElement.style.setProperty('--person-color', '');
document.documentElement.style.setProperty('--person-bg', localStorage.getItem('person-bg') || 'url(https://cdn-community.codemao.cn/community_frontend/asset/banner_65b4a.png)');
localStorage.setItem('person-setting', 'pic');
document.documentElement.style.setProperty('--person-setting', 'pic');
document.querySelector('#person-bg-btn').style.display = 'block';
document.querySelector('#person-color').style.display = 'none';
if ((window.location.href.indexOf("user") != -1) && (JSON.parse(response).user_id != parseInt(window.location.href.slice(25 + 5,)))) {
GM_xmlhttpRequest({
method: "get",
url: "https://api.codemao.cn/creation-tools/v1/user/center/honor?user_id=" + parseInt(window.location.href.slice(25 + 5,)),
data: document.cookie,
binary: true,
async onload({ response }) {
if (JSON.parse(response).user_cover == '') {
document.documentElement.style.setProperty('--person-bg', 'url(https://cdn-community.codemao.cn/community_frontend/asset/banner_65b4a.png)');
document.documentElement.style.setProperty('--person-color', '');
}
else {
document.documentElement.style.setProperty('--person-bg', 'url(' + JSON.parse(response).user_cover + ')');
document.documentElement.style.setProperty('--person-color', '');
}
}
})
}
})
$('input[value="color"]').on('change', () => {
document.documentElement.style.setProperty('--person-color', localStorage.getItem('person-color') || '#000');
document.documentElement.style.setProperty('--person-bg', '');
localStorage.setItem('person-setting', "color");
document.documentElement.style.setProperty('--person-setting', "color");
document.querySelector('#person-bg-btn').style.display = 'none';
document.querySelector('#person-color').style.display = 'block'
if ((window.location.href.indexOf("user") != -1) && (JSON.parse(response).user_id != parseInt(window.location.href.slice(25 + 5,)))) {
GM_xmlhttpRequest({
method: "get",
url: "https://api.codemao.cn/creation-tools/v1/user/center/honor?user_id=" + parseInt(window.location.href.slice(25 + 5,)),
data: document.cookie,
binary: true,
async onload({ response }) {
if (JSON.parse(response).user_cover == '') {
document.documentElement.style.setProperty('--person-bg', 'url(https://cdn-community.codemao.cn/community_frontend/asset/banner_65b4a.png)');
document.documentElement.style.setProperty('--person-color', '');
}
else {
document.documentElement.style.setProperty('--person-bg', 'url(' + JSON.parse(response).user_cover + ')');
document.documentElement.style.setProperty('--person-color', '');
}
}
})
}
})
$('input[fish]').on('change', function () {
document.querySelector('li[data-watch_event="' + this.value + '-入口tab"]').style.display = this.checked ? '' : 'none';
localStorage.setItem('isShown' + this.value, this.checked);
})
$('input[fish2]').on('change', function () {
document.documentElement.style.setProperty(this.value, this.checked ? '' : 'none');
localStorage.setItem(this.value, this.checked ? '' : 'none');
})
$('#person-color').on('change', function () {
document.documentElement.style.setProperty('--person-color', this.value);
localStorage.setItem('person-color', this.value);
})
$('#person-bg-btn').on('click', function () {
document.querySelector('#person-bg').click()
})
if (localStorage.getItem('isLevelShown') == 'none') {
document.querySelector('input#level-shown').checked = false;
}
else {
document.querySelector('input#level-shown').checked = true;
}
var i;
for (i of document.querySelectorAll('input[fish]')) {
if (localStorage.getItem('isShown' + i.value) != null) {
if (localStorage.getItem('isShown' + i.value) == 'true') {
document.querySelector('li[data-watch_event="' + i.value + '-入口tab"]').style.display = ''
i.checked = true
}
else {
document.querySelector('li[data-watch_event="' + i.value + '-入口tab"]').style.display = 'none'
i.checked = false
}
}
}
for (i of document.querySelectorAll('input[fish2]')) {
if (localStorage.getItem(i.value) != null) {
if (localStorage.getItem(i.value) == 'none') {
document.documentElement.style.setProperty(i.value, 'none');
i.checked = false
}
else {
document.documentElement.style.setProperty(i.value, '');
i.checked = true
}
}
}
$('#person-bg').on('change', function () {
var file = this.files[0];
if (!/image\/\w+/.test(file.type)) {
return false;
}
if (typeof FileReader != 'undefined') {
var reader = new FileReader();
var imgFile;
reader.readAsDataURL(file);
reader.onload = function (e) {
imgFile = e.target.result;
document.documentElement.style.setProperty('--person-bg', 'url(' + imgFile + ')');
localStorage.setItem('person-bg', 'url(' + imgFile + ')');
};
} else {
var URL = window.URL || window.webkitURL;
var imageURL = URL.createObjectURL(file);
document.documentElement.style.setProperty('--person-bg', 'url(' + imageURL + ')');
localStorage.setItem('person-bg', 'url(' + imageURL + ')');
}
})
const addRipple = function (e) {
let overlay = $("
")
overlay.removeClass("animate");
const x = parseInt(e.pageX - $(this).offset().left) - (overlay.width() / 2);
const y = parseInt(e.pageY - $(this).offset().top) - (overlay.height() / 2);
overlay.css(
{
left: x,
top: y
}
).addClass("animate");
$(this).append(overlay)
setTimeout(() => {
overlay.remove()
}, 500)
}
let rippleList = ['.c-navigator--header-content .c-navigator--nav_wrap .c-navigator--item a',
".c-navigator--dropdown-wrap li a",
".r-community--send_btn",
"li[data-watch_event='旋转-入口tab']",
".r-community-c-forum_sender--option",
".r-home-c-community_star--user_recommend_item",
".r-user-c-banner--btn"
]
setInterval(() => {
for (i of rippleList) {
if (!$(i).hasClass('yzf-animate')) {
$(i).addClass("yzf-animate")
$(i).css({
position: 'relative',
overflow: 'hidden',
transition: '0.1s ease-in'
})
if (i == ".r-home-c-community_star--user_recommend_item") {
$(i).children("a").mousedown(addRipple)
}
else {
$(i).mousedown(addRipple)
}
}
}
if (!(window.location.href.indexOf("work/") != -1) || !(parseInt(window.location.href.slice(25 + 5,)))) {
$("li[data-watch_event='旋转-入口tab']").remove()
}
}, 100)
document.querySelector('#custom-sett textarea').value = localStorage.getItem('custom-sett')
document.querySelector('#custom-setts').innerHTML = document.querySelector('#custom-sett textarea').value
$("head").after(`
`);
$("head").after(`
`);
$("li[data-watch_event='设置-入口tab']").click(function () {
$("#yzf-settings").css("display", "block")
$("#yzf-settings").css("transform", "translateY(0)")
$("#yzf-close").click(() => {
$(".c-dialog--dialog_wrap").css("opacity", "0");
$("#yzf-settings").css("transform", "translateY(-20px)")
setTimeout(() => {
$('.c-dialog--dialog_wrap').removeClass('c-dialog--visiable c-dialog--show')
$(".c-dialog--dialog_wrap").css("opacity", "");
$("#yzf-settings").css("display", "none")
}, 200)
})
$("#main-color").val(localStorage.getItem('main-color') || '#fec433')
$("#second-color").val(localStorage.getItem('second-color') || '#f6b206')
$("#person-color").val(localStorage.getItem('person-color') || '#000')
$("#highlight-color").val(localStorage.getItem('highlight-color') || '#ec443d')
$(".c-dialog--dialog_wrap").addClass('c-dialog--visiable c-dialog--show')
});
if (localStorage.getItem('person-setting') == 'color') {
document.querySelector('input[value="color"]').checked = true
document.querySelector('#person-bg-btn').style.display = 'none';
document.querySelector('#person-color').style.display = 'block';
document.documentElement.style.setProperty('--person-color', localStorage.getItem('person-color') || '#000');
document.documentElement.style.setProperty('--person-bg', '');
}
else {
document.querySelector('input[value="pic"]').checked = true
document.querySelector('#person-bg-btn').style.display = 'block';
document.querySelector('#person-color').style.display = 'none';
document.documentElement.style.setProperty('--person-color', '');
document.documentElement.style.setProperty('--person-bg', localStorage.getItem('person-bg') || 'url(https://cdn-community.codemao.cn/community_frontend/asset/banner_65b4a.png)');
}
if ((window.location.href.indexOf("user") != -1) && (JSON.parse(response).user_id != parseInt(window.location.href.slice(25 + 5,)))) {
GM_xmlhttpRequest({
method: "get",
url: "https://api.codemao.cn/creation-tools/v1/user/center/honor?user_id=" + parseInt(window.location.href.slice(25 + 5,)),
data: document.cookie,
binary: true,
async onload({ response }) {
if (JSON.parse(response).user_cover == '') {
document.documentElement.style.setProperty('--person-bg', 'url(https://cdn-community.codemao.cn/community_frontend/asset/banner_65b4a.png)');
document.documentElement.style.setProperty('--person-color', '');
}
else {
document.documentElement.style.setProperty('--person-bg', 'url(' + JSON.parse(response).user_cover + ')');
document.documentElement.style.setProperty('--person-color', '');
}
}
})
}
}
})
$("head").after(`
`);
})();