您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name YApiScript // @namespace http://tampermonkey.net/ // @version 0.1.7 // @description try to take over the world! // @author HolmesZhao // @match *://yapi.zuoyebang.cc/* // @grant none // ==/UserScript== (function() { 'use strict'; var enumHeader = "MM"; var app = 'mmj'; // Your code here... function copyMMJText() { let note = document.getElementsByClassName('ant-col-8 colName')[0].innerText; let dom = document.getElementsByClassName('colValue')[1].getElementsByClassName('colValue')[1]; if (dom == null) { dom = document.getElementsByClassName('colValue')[2].getElementsByClassName('colValue')[1]; } let urlPath = dom.innerText; let urlPathDefine = 'kUrl' + urlPath.split('/').join('_'); urlPathDefine = '#define ' + urlPathDefine + " @\"" + urlPath.split('/').slice(1).join('/') + "\""; urlPathDefine = "/// " + note + '\n' + urlPathDefine; // dom.innerText = urlPathDefine; document.getElementsByClassName('anticon anticon-copy interface-url-icon')[0].innerHTML = "<textarea id=\"copyText\" style=\"opacity: 0;position:absolute;\">" + urlPathDefine + "</textarea>"; var element = document.getElementById("copyText"); element.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 // let range = document.createRange(); // range.selectNode(dom); // let selection = window.getSelection(); // if(selection.rangeCount > 0) selection.removeAllRanges(); // selection.addRange(range); // document.execCommand('copy'); // setTimeout(() => { // dom.innerText = urlPath; // }, 1000); } function copyStudyText() { let note = document.getElementsByClassName('ant-col-8 colName')[0].innerText; let dom = document.getElementsByClassName('colValue')[1].getElementsByClassName('colValue')[1]; if (dom == null) { dom = document.getElementsByClassName('colValue')[2].getElementsByClassName('colValue')[1]; } let urlPath = dom.innerText; let urlPathDefine = 'kUrl' + urlPath.split('/').join('_'); //urlPathDefine = '#define ' + urlPathDefine + " @\"" + urlPath.split('/').slice(1).join('/') + "\""; urlPathDefine = 'static let ' + urlPathDefine + ": NetRequestUrls = \"" + urlPath.split('/').slice(1).join('/') + "\""; urlPathDefine = "/// " + note + '\n' + urlPathDefine; // dom.innerText = urlPathDefine; document.getElementsByClassName('anticon anticon-copy interface-url-icon')[0].innerHTML = "<textarea id=\"copyText\" style=\"opacity: 0;position:absolute;\">" + urlPathDefine + "</textarea>"; var element = document.getElementById("copyText"); element.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 // let range = document.createRange(); // range.selectNode(dom); // let selection = window.getSelection(); // if(selection.rangeCount > 0) selection.removeAllRanges(); // selection.addRange(range); // document.execCommand('copy'); // setTimeout(() => { // dom.innerText = urlPath; // }, 1000); } function copyAll() { let trDoms = document.getElementsByTagName('tr'); let defines = []; for (let index = 1; index < trDoms.length; index++) { const element = trDoms[index]; let note = element.getElementsByTagName('td')[0].innerText; let urlPath = element.getElementsByTagName('td')[1].innerText; let urlPathDefine = 'kUrl_' + urlPath.split('/').slice(1).join('_'); urlPathDefine = '#define ' + urlPathDefine + " @\"" + urlPath.split('/').slice(1).join('/') + "\""; urlPathDefine = "/// " + note + '\n' + urlPathDefine; defines.push(urlPathDefine); } let copy_text = defines.join('\n\n'); let titleDom = document.getElementsByClassName('interface-title')[0]; let titleInnerHtml = titleDom.innerHTML; titleDom.innerHTML = titleInnerHtml + "<textarea id=\"copyAllText\" style=\"opacity: 0;position:absolute;\">" + copy_text + "</textarea>"; var element = document.getElementById("copyAllText"); element.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 } function enumCopy() { let trDoms = document.getElementsByTagName('tr'); let enums = []; let enumType = enumHeader for (let i = 1; i < trDoms.length; i++) { const element = trDoms[i]; let note = element.getElementsByTagName('td')[0].innerText; let urlPath = element.getElementsByTagName('td')[1].innerText; let string = ""; let array = urlPath.split('/').slice(1); for (let j = 0; j < array.length; j++) { const obj = array[j]; string += obj.charAt(0).toUpperCase() + obj.slice(1) if (j == 0 && i == 1) { enumType += string } } let urlPathDefine = enumHeader + string + ','; urlPathDefine = "\t/// " + note + '\n' + '\t' + urlPathDefine; enums.push(urlPathDefine); } let copy_text = enums.join('\n'); let enumStr = "typedef NS_ENUM(NSUInteger, " + enumType + "Type) {"; enumStr += '\n'; enumStr += copy_text; enumStr += '\n'; enumStr += '};'; let titleDom = document.getElementsByClassName('interface-title')[0]; let titleInnerHtml = titleDom.innerHTML; titleDom.innerHTML = titleInnerHtml + "<textarea id=\"enumCopy\" style=\"opacity: 0;position:absolute;\">" + enumStr + "</textarea>"; var element = document.getElementById("enumCopy"); element.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 } function enumSwitchCopy() { let trDoms = document.getElementsByTagName('tr'); let enums = []; let enumType = enumHeader for (let i = 1; i < trDoms.length; i++) { const element = trDoms[i]; let note = element.getElementsByTagName('td')[0].innerText; let urlPath = element.getElementsByTagName('td')[1].innerText; let string = ""; let array = urlPath.split('/').slice(1); for (let j = 0; j < array.length; j++) { const obj = array[j]; string += obj.charAt(0).toUpperCase() + obj.slice(1) } let urlPathDefine = enumHeader + string; urlPathDefine = "\tcase " + urlPathDefine + ':\n' + '\t\treturn kUrl_' + array.join('_') + ";"; enums.push(urlPathDefine); } let header = "switch (self.reqType) {\n"; let footer = "\n\tdefault:\n\t\treturn @\"\";\n}" let copy_text = enums.join('\n'); let enumStr = header + copy_text + footer; let titleDom = document.getElementsByClassName('interface-title')[0]; let titleInnerHtml = titleDom.innerHTML; titleDom.innerHTML = titleInnerHtml + "<textarea id=\"enumSwitchCopy\" style=\"opacity: 0;position:absolute;\">" + enumStr + "</textarea>"; var element = document.getElementById("enumSwitchCopy"); element.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 } 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' localStorage.setItem(key, 'study'); break; case 'study': btn.innerText = '喵喵机' localStorage.setItem(key, 'mmj'); break; default: break; } app = localStorage.getItem(key) } function appName() { let key = 'mbkj' app = localStorage.getItem(key) if (app == '' || app == null) { app = 'mmj' } switch (app) { case 'mmj': return '喵喵机' case 'study': return '错题APP' default: return "" } } 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 inject() { var clickDom = document.getElementsByClassName('colValue')[1].getElementsByClassName('colValue')[1]; if (clickDom == null) { clickDom = document.getElementsByClassName('colValue')[2].getElementsByClassName('colValue')[1]; } if (clickDom) { clickDom.onclick = () => { switch (app) { case "mmj": copyMMJText() break; case "study": copyStudyText() default: break; } } alert('注入成功'); } else { copyAll(); alert('已复制所有接口'); addButton('复制枚举', 100, enumCopy); addButton('复制枚举Path', 200, enumSwitchCopy); } } window.onload = () => { var btnLeft = screen.width/5; var marginLeft = 30; btnLeft += marginLeft; btnLeft = addButton(appName(), btnLeft, changeApp); btnLeft += marginLeft; btnLeft = addButton('注入脚本', btnLeft, inject); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址