您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
git add project for pms
// ==UserScript== // @name gitAddProject // @namespace http://tampermonkey.net/ // @version 0.1.4 // @description git add project for pms // @author HolmesZhao // @match *://pms.zuoyebang.cc/ApplyForGit* // @grant none // ==/UserScript== (function() { 'use strict'; // Your code here... var username_script = "" let projects = [ { "power": "paperangtest", "reason": "迁移项目"} ] function getUserInfo() { var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function() { if(this.readyState === 4) { console.log(this.responseText); let result = JSON.parse(this.responseText).data username_script = result.uname } }); xhr.open("GET", "https://pms.zuoyebang.cc/testplatapi/rdtask/GetUserInfo"); xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(); } getUserInfo(); function addProject(power, reason) { if (username_script == "") { alert('请先登录') return } let gitcode = "Paperang_iOS" let btn = document.getElementsByClassName('mmbutton')[0]; switch (btn.innerText) { case "组件": gitcode = "Paperang_iOS" break; case "项目": gitcode = "paperangnative" break; default: break; } let approved = "zhangtianlong" let deptfullname = "其他部门" var data = JSON.stringify({"username": username_script,"gitcode": gitcode,"power":"Add Project:" + power + " (private)", "gitapproved": approved, "url": "git.zuoyebang.cc", "reason": reason, "deptfullname": deptfullname}); var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function() { if(this.readyState === 4) { console.log(this.responseText); } }); xhr.open("POST", "https://pms.zuoyebang.cc/testplatapi/git/SetApproved"); xhr.setRequestHeader("Cookie", document.cookie); xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(data); } 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 injectOnce() { let ivu_tabs_tabpane = null document.getElementsByClassName('ivu-tabs-tabpane').forEach(element => { if (element.className == 'ivu-tabs-tabpane' && element.style.visibility == 'visible') { element.getElementsByClassName('ivu-form-item-label').forEach(element2 => { if (element2.textContent.indexOf('project') != -1) { ivu_tabs_tabpane = element } }) } }); if (ivu_tabs_tabpane == null) { alert('null') return } else { let input_default = ivu_tabs_tabpane.getElementsByClassName('ivu-input')[0] let input_textArea = ivu_tabs_tabpane.getElementsByClassName('ivu-input')[1] if (input_default.value.length == 0) { alert('需要输入 project 名称') return } if (input_textArea.value.length == 0) { input_textArea.value = "喵宝组件" } addProject(input_default.value, input_textArea.value) } alert('已发送请求'); } function injectAll() { projects.forEach(e => { addProject(e.power, e.reason) }) alert('已发送所有请求'); } function changedGroup() { let btn = document.getElementsByClassName('mmbutton')[0]; switch (btn.innerText) { case "组件": btn.innerText = "项目" break; case "项目": btn.innerText = "组件" break; default: break; } } window.onload = () => { addButton('组件', 0, changedGroup); addButton('单次申请', 100, injectOnce); addButton('批量申请', 200, injectAll); } })();