JDbScript

提效gogogo!

当前为 2022-11-23 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name JDbScript
  3. // @namespace http://598570789@qq.com/
  4. // @version 0.1
  5. // @description 提效gogogo!
  6. // @author JDb
  7. // @compatible chrome
  8. // @compatible firefox
  9. // @match *://*.shizhuang-inc.com/*
  10. // @match *://*.shizhuang-inc.net/*
  11. // @match *://open.feishu.cn/*
  12. // @match *://home.console.aliyun.com/*
  13. // @include *://signin.aliyun.com/poizon.onaliyun.com/*
  14. // @license MIT
  15. // @run-at document-start
  16. // @require http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
  17. // ==/UserScript==
  18. var 测试 = 80;//P
  19. var 评测默认没问题 = 79;//O
  20. // 键盘编码表 https://jingyan.baidu.com/article/fedf073780e16335ac8977a4.html
  21. // console document.querySelector("video").playbackRate=
  22.  
  23. //获取所有 class 同时包括 'red' 和 'test' 的元素.
  24. //document.getElementsByClassName('red test');
  25.  
  26. //在id 为'main'的元素的子节点中,获取所有class为'test'的元素
  27. //document.getElementById('main').getElementsByClassName('test');
  28.  
  29.  
  30.  
  31.  
  32. //统一登录(不可用)平台
  33. var poizonLoginAliyunUrl="https://prism.shizhuang-inc.com/account/cloudy/account/my";
  34. //阿里云控制台
  35. var ailiyunConsoleUrl="https://home.console.aliyun.com/home/dashboard/ProductAndService";
  36. //poizon登录(不可用) 飞书扫码
  37. var poizonLoginUrl="https://sso.shizhuang-inc.com/?returnUrl=https://prism.shizhuang-inc.com/account/cloudy/account/my";
  38. //poizon登录(不可用) 飞书授权
  39. var poizonLoginUrl2="https://open.feishu.cn/open-apis/authen/v1/user_auth_page_beta?app_id=cli_9eca60ff3b28d102&redirect_uri=https://sso.shizhuang-inc.com&state=https://prism.shizhuang-inc.com/account/cloudy/account/my";
  40.  
  41. (function() {
  42. 'use strict';
  43. window.onload = ()=>{
  44. doTask();
  45. }
  46. })();
  47. const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
  48.  
  49. //页面加载后执行
  50. async function doTask(){
  51. log("doTask document.domain:"+document.domain)
  52. log("doTask currentUrl:"+decodeURIComponent(location.href.split('#')[0]))
  53. await sleep(300);
  54. var ele
  55. var eleArr
  56.  
  57. //自动登录(不可用)
  58. log("1.尝试 自动登录(不可用)阿里云")
  59. if(isUrlOrDomainMatch("signin.aliyun.com")||isUrlMatch(poizonLoginAliyunUrl)||isUrlMatch(ailiyunConsoleUrl)){
  60. log("是阿里云登录(不可用)页面")
  61. autoLoginAliyun()
  62. return;
  63. }
  64.  
  65. log("2.尝试 自动登录(不可用)poizon")
  66. if(isUrlOrDomainMatch(poizonLoginUrl)||isUrlOrDomainMatch(poizonLoginUrl2)){
  67. log("是poizon登录(不可用)页面")
  68. autoLoginPoizon()
  69. return;
  70. }
  71.  
  72.  
  73. log("x.未知页面")
  74.  
  75. // clickTag('button','飞书登录(不可用)',false)
  76. // clickTag('button','授 权',false)
  77. // clickTag('button','登录(不可用)',false)
  78. // clickTag('button','审批通过',false)
  79. // clickTag('input','登录(不可用)',false)
  80. // clickTag('div','授权',false)
  81.  
  82. // await sleep(300)
  83. // clickTag('button','飞书扫码登录(不可用)')
  84. }
  85.  
  86. async function autoLoginAliyun(){
  87. //1.打开公司登录(不可用)页面
  88. if(hasTag('button','使用企业账号登录(不可用)') && "signin.aliyun.com"===document.domain ){
  89. log("autoLoginAliyun.1.打开公司登录(不可用)页面")
  90. window.open("https://prism.shizhuang-inc.com/cloud/cloudy",'_blank');
  91. return
  92. }
  93. //2.点开控制台登录(不可用)
  94. if("prism.shizhuang-inc.com"===document.domain){
  95. log("autoLoginAliyun.2.点开控制台登录(不可用)")
  96. if(await clickTagPlus('button','控制台登陆',true,20)){
  97. log("点击控制台登陆成功")
  98. window.close()
  99. }else{
  100. error("点击控制台登陆失败")
  101. }
  102. return
  103. }
  104.  
  105. sleep(1000)
  106. //3.关闭阿里云控制台
  107. if("home.console.aliyun.com"===document.domain){
  108. log("autoLoginAliyun.3.关闭阿里云控制台")
  109. window.close()
  110. return
  111. }
  112. }
  113.  
  114. function autoLoginPoizon(){
  115. //1.飞书扫码登录(不可用)
  116. if(isUrlOrDomainMatch(poizonLoginUrl)){
  117. log("autoLoginPoizon.1")
  118. clickTag('button','飞书扫码登录(不可用)')
  119. return
  120. }
  121. //2.授权
  122. if(isUrlOrDomainMatch(poizonLoginUrl2)){
  123. log("autoLoginPoizon.1")
  124. clickTag('div','授权',false)
  125. return
  126. }
  127.  
  128. }
  129.  
  130.  
  131. function log(str){
  132. var d=new Date()
  133. var s=d.getMinutes()+":" + d.getSeconds() + " "+ str;
  134. console.log('%c'+s,'color:green;fontpsize:35px;')
  135. }
  136. function error(str){
  137. var d=new Date()
  138. var s=d.getMinutes()+":" + d.getSeconds() + " "+ str;
  139. console.error('%c'+s,'color:red;fontpsize:35px;')
  140. }
  141.  
  142.  
  143.  
  144.  
  145. //域名或完整地址匹配
  146. function isUrlOrDomainMatch(urlOrDamin){
  147. // log("isUrlOrDomainMatch.urlOrDamin:"+isUrlOrDomainMatch.urlOrDamin)
  148. return isUrlMatch(urlOrDamin)||isDomainMatch(urlOrDamin)
  149. }
  150. //完整地址匹配
  151. function isUrlMatch(url){
  152. if(decodeURIComponent(location.href.split('#')[0])===url){
  153. log("matchUrlSuccess:"+url)
  154. return true
  155. }
  156. error("matchUrlFail:"+url)
  157. return false
  158. }
  159. //域名匹配
  160. function isDomainMatch(domain){
  161. if(domain===document.domain){
  162. log("domainMatchSuccess:"+domain)
  163. return true
  164. }
  165. error("domainMatchFail:"+domain)
  166. return false
  167. }
  168.  
  169.  
  170.  
  171. //ark自动审批
  172. async function autoCheckArk(){
  173. log("autoCheckArk()")
  174. log(window.location.href)
  175.  
  176. var eleArr
  177. var rs
  178. if(window.location.href.indexOf("ark.shizhuang-inc.com/approveList?")!=-1
  179. ||
  180. window.location.href.indexOf("ark.shizhuang-inc.com/ark/approveList?")!=-1
  181. ){
  182. log("进入ark list")
  183. retry(()=>clickTag('a','详情',true))
  184. await sleep(1000)
  185.  
  186. if(await retry(()=>clickTag('button','审批通过',true))){
  187. retry(()=>clickTag('button','返回',true))
  188. }
  189. }
  190. }
  191.  
  192. //是否有当前指定标签
  193. async function hasTag(tag,val){
  194. await sleep(500);
  195. var eleArr = document.getElementsByTagName(tag);
  196. var rs=false
  197. for( var i=0; i<eleArr.length; i++ ){
  198. // log("value="+eleArr[i].value+" innerText="+eleArr[i].innerText)
  199. if(val===eleArr[i].innerText||val===eleArr[i].value){
  200. rs= true
  201. }
  202. }
  203. return rs;
  204. }
  205.  
  206. //带重试的点击行为
  207. async function clickTagPlus(tag,val,onlyFirst,retries){
  208. for(var i=0;i<retries;i++){
  209. log("第"+(i+1)+"次点击:"+val)
  210. if(await clickTag(tag,val,onlyFirst)){
  211. return true;
  212. }
  213. await sleep(1000);
  214. }
  215. return false;
  216. }
  217.  
  218. //点击行为
  219. async function clickTag(tag,val,onlyFirst){
  220. await sleep(500);
  221. // log("clickTag(" + val + ")")
  222. var eleArr = document.getElementsByTagName(tag);
  223. var rs=false
  224. for( var i=0; i<eleArr.length; i++ ){
  225. // log("value="+eleArr[i].value+" innerText="+eleArr[i].innerText)
  226. if(tag==='button'){
  227. if(val===eleArr[i].innerText.trim()||val===eleArr[i].value.trim()){
  228. eleArr[i].click()
  229. // log("点击"+val)
  230. rs= true
  231. }
  232. }else{
  233. if(val==eleArr[i].innerText){
  234. eleArr[i].click()
  235. // log("点击"+val)
  236. rs= true
  237. }
  238. }
  239. if(onlyFirst && rs){
  240. return rs;
  241. }
  242. }
  243. return rs;
  244. }
  245.  
  246. //重试
  247. async function retry(asyncRequest) {
  248. var times=2
  249. log("尝试调用"+asyncRequest)
  250. while(!await asyncRequest()){
  251. log("等待500ms 再次尝试")
  252. await sleep(500)
  253. }
  254. return true;
  255. }
  256. //满意度评测默认没问题
  257. function autoCheck(){
  258. var eleArr = document.getElementsByTagName('input');
  259. var rs=false
  260. for( var i=0; i<10; i++ ){
  261. eleArr[i].click()
  262. }
  263. clickTag('input','没问题',false)
  264. }
  265.  
  266.  
  267. $(document).ready(function() {
  268. //调用键盘编码,按了键盘回调keydown里的function(event)函数,event就是你按的那个按键的code码
  269.  
  270. // var 测试 = 80;//P
  271. // var 评测默认没问题 = 79;//O
  272. $(document).keydown(function(event){
  273. switch(event.keyCode){
  274. case 测试:
  275. // autoCheckArk();
  276. doTask();
  277. break;
  278. case 评测默认没问题:
  279. // autoCheck();
  280. }
  281. });
  282. });
  283.  

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址