JDbScript

提效gogogo!

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

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

QingJ © 2025

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