您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
// ==UserScript== // @name YApiScript // @namespace http://tampermonkey.net/ // @version 0.1.4 // @description try to take over the world! // @author HolmesZhao // @match *://yapi.paperang.com/* // @grant none // ==/UserScript== (function() { 'use strict'; var enumHeader = "MM"; // Your code here... function copyText() { let note = document.getElementsByClassName('ant-col-8 colName')[0].innerText; let urlPath = document.getElementsByClassName('colValue')[1].getElementsByClassName('colValue')[1].innerText; let dom = document.getElementsByClassName('colValue')[1].getElementsByClassName('colValue')[1]; 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 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: "+(screen.width / 4 + marginLeft)+"px;"; btn.onclick = fun; btn.appendChild(txt); document.body.appendChild(btn); return btn.offsetWidth; }; function inject() { var clickDom = document.getElementsByClassName('colValue')[1].getElementsByClassName('colValue')[1]; if (clickDom) { clickDom.onclick = () => { copyText(); } alert('注入成功'); } else { copyAll(); alert('已复制所有接口'); addButton('复制枚举', 100, enumCopy); addButton('复制枚举Path', 200, enumSwitchCopy); } } window.onload = () => { addButton('注入脚本', 0, inject); } })();