- // ==UserScript==
- // @name JDbScript
- // @namespace http://598570789@qq.com/
- // @version 0.6
- // @description 提效gogogo!
- // @author JDb
- // @compatible chrome
- // @compatible firefox
- // @match *://*.shizhuang-inc.com/*
- // @match *://*.shizhuang-inc.net/*
- // @match *://open.feishu.cn/*
- // @match *://home.console.aliyun.com/*
- // @match *://ide2-cn-hangzhou.data.aliyun.com/*
- // @match *://poizon.feishu.cn/docx/JaBTdv67yoeXLzxXbZ6cntjXnGb
- // @include *://signin.aliyun.com/poizon.onaliyun.com/*
- // @license MIT
- // @run-at document-start
- // @require http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
- // ==/UserScript==
- var 测试 = 80;//P
- var 吃啥 = 69;//E
- var 评测默认没问题 = 79;//O
- // 键盘编码表 https://jingyan.baidu.com/article/fedf073780e16335ac8977a4.html
- // console document.querySelector("video").playbackRate=
-
- //获取所有 class 同时包括 'red' 和 'test' 的元素.
- //document.getElementsByClassName('red test');
-
- //在id 为'main'的元素的子节点中,获取所有class为'test'的元素
- //document.getElementById('main').getElementsByClassName('test');
-
-
- //吃啥
- var eatwhatUrl="https://poizon.feishu.cn/docx/JaBTdv67yoeXLzxXbZ6cntjXnGb";
- //统一登录平台
- var poizonLoginAliyunUrl="https://prism.shizhuang-inc.com/account/cloudy/account/my";
- //阿里云控制台
- var ailiyunConsoleUrl="https://home.console.aliyun.com/home/dashboard/ProductAndService";
- //poizon登录 飞书扫码
- var poizonLoginUrl="https://sso.shizhuang-inc.com/";
- //poizon登录 飞书授权
- var poizonLoginUrl2="https://open.feishu.cn/open-apis/authen/v1/user_auth_page_beta";
- // dataworks审批
- var dataworksReviewUrl="https://ide2-cn-hangzhou.data.aliyun.com/page/review";
- var dataworksReviewDetailUrl="https://ide2-cn-hangzhou.data.aliyun.com/page/review/detail";
-
- //资源加载完成事件
- (function() {
- 'use strict';
- window.onload = ()=>{
- doTask();
- }
- })();
-
- //dom加载完成事件
- document.addEventListener("DOMContentLoaded", onDomReady);
- function onDomReady() {
- closeAliyun();
- }
-
- //标签切换事件
- document.addEventListener('visibilitychange', () => {
- if(document.visibilityState === 'hidden') {
- // 离开当前tab标签
- }else {
- log("回到当前tab标签")
- //回到sso登录页,关闭
- if("prism.shizhuang-inc.com"===document.domain){
- window.close()
- history.back(1)
- return
- }
- //回到阿里云ram用户登录页,刷新
- if("signin.aliyun.com"===document.domain){
- location.reload()
- return
- }
- //回到datawork审批,刷新
- if(isUrlOrDomainMatch(dataworksReviewUrl)){
- // location.reload()
- // autoReview()
- return
- }
- }
- }
- )
- const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
-
- //页面加载后执行
- async function doTask(){
- // log("domain:"+document.domain)
- // log("url:"+decodeURIComponent(location.href.split('#')[0]))
- log(window.location.protocol+"//"+window.location.host+""+window.location.pathname)
-
- await sleep(300);
-
- //自动登录 阿里云
- autoLoginAliyun()
- //自动登录 poizon
- autoLoginPoizon()
- //自动审批 dataworks任务
- // autoReview()
- //吃啥
- eatWhat()
-
- }
-
- async function autoLoginAliyun(){
- if(!isUrlOrDomainMatch("signin.aliyun.com")&&!isUrlMatch(poizonLoginAliyunUrl)&&!isUrlMatch(ailiyunConsoleUrl)){
- return;
- }
- log("是阿里云登录页面")
-
- //1.打开公司登录页面
- if(hasTag('button','使用企业账号登录') && "signin.aliyun.com"===document.domain ){
- log("autoLoginAliyun.1.打开公司登录页面")
- window.open("https://prism.shizhuang-inc.com/cloud/cloudy",'_blank');
- return
- }
- //2.点开控制台登录
- if("prism.shizhuang-inc.com"===document.domain){
- log("autoLoginAliyun.2.点开控制台登录")
- if(await clickTagPlus('button','控制台登陆',true)){
- sleep(500)
- log("点击控制台登陆成功")
- // window.close()
- }else{
- error("点击控制台登陆失败")
- }
- return
- }
- }
- function closeAliyun(){
- //1.关闭阿里云控制台
- if("home.console.aliyun.com"===document.domain){
- log("autoLoginAliyun.3.关闭阿里云控制台")
- window.close()
- return
- }
- }
-
- function autoLoginPoizon(){
- if(!isUrlOrDomainMatch(poizonLoginUrl)&&!isUrlOrDomainMatch(poizonLoginUrl2)){
- return
- }
- log("是poizon登录页面")
-
- //1.飞书扫码登录
- if(isUrlOrDomainMatch(poizonLoginUrl)){
- log("autoLoginPoizon.1")
- clickTag('button','飞书扫码登录')
- return
- }
- //2.授权
- if(isUrlOrDomainMatch(poizonLoginUrl2)){
- log("autoLoginPoizon.1")
- clickTag('div','授权',false)
- return
- }
- }
- async function autoReview(){
- if(!isUrlOrDomainMatch(dataworksReviewUrl)&&!isUrlOrDomainMatch(dataworksReviewDetailUrl)){
- return
- }
-
- //审批列表
- if(isUrlOrDomainMatch(dataworksReviewUrl)){
- if(await clickTagPlus('button','查看',true)){
- return
- }
- }
-
-
- //审批详情
- if(isUrlOrDomainMatch(dataworksReviewDetailUrl)){
- if(hasTag(('button','通过'))){
- if(await clickTagPlus('button','通过',true)){
- // window.close()
- return
- }
- }else{
- window.close()
- }
- }
-
- }
-
-
- function log(str){
- var d=new Date()
- var s=d.getMinutes()+":" + d.getSeconds() + " "+ str;
- console.log('%c'+s,'color:green;fontpsize:35px;')
- }
- function error(str){
- var d=new Date()
- var s=d.getMinutes()+":" + d.getSeconds() + " "+ str;
- console.error('%c'+s,'color:red;fontpsize:35px;')
- }
-
-
-
-
- //域名或完整地址匹配
- function isUrlOrDomainMatch(urlOrDamin){
- // log("isUrlOrDomainMatch.urlOrDamin:"+isUrlOrDomainMatch.urlOrDamin)
- return isUrlMatch(urlOrDamin)||isDomainMatch(urlOrDamin)
- }
- //完整地址匹配
- function isUrlMatch(url){
- if(window.location.protocol+"//"+window.location.host+""+window.location.pathname===url){
- log("matchUrlSuccess:"+url)
- return true
- }
- error("matchUrlFail:"+url)
- return false
- }
- //域名匹配
- function isDomainMatch(domain){
- if(domain===document.domain){
- log("domainMatchSuccess:"+domain)
- return true
- }
- error("domainMatchFail:"+domain)
- return false
- }
-
-
-
- //ark自动审批
- async function autoCheckArk(){
- log("autoCheckArk()")
- log(window.location.href)
-
- var eleArr
- var rs
- if(window.location.href.indexOf("ark.shizhuang-inc.com/approveList?")!=-1
- ||
- window.location.href.indexOf("ark.shizhuang-inc.com/ark/approveList?")!=-1
- ){
- log("进入ark list")
- retry(()=>clickTag('a','详情',true))
- await sleep(1000)
-
- if(await retry(()=>clickTag('button','审批通过',true))){
- retry(()=>clickTag('button','返回',true))
- }
- }
- }
-
- //是否有当前指定标签
- async function hasTag(tag,val){
- await sleep(500);
- var eleArr = document.getElementsByTagName(tag);
- var rs=false
- for( var i=0; i<eleArr.length; i++ ){
- // log("value="+eleArr[i].value+" innerText="+eleArr[i].innerText)
- if(val===eleArr[i].innerText||val===eleArr[i].value){
- rs= true
- }
- }
- return rs;
- }
-
- //带重试的点击行为
- async function clickTagPlus(tag,val,onlyFirst){
- for(var i=0;i<30;i++){
- log("第"+(i+1)+"次点击:"+val)
- if(await clickTag(tag,val,onlyFirst)){
- return true;
- }
- await sleep(1000);
- }
- return false;
- }
-
- //点击行为
- async function clickTag(tag,val,onlyFirst){
- await sleep(500);
- // log("clickTag(" + val + ")")
- var eleArr = document.getElementsByTagName(tag);
- var rs=false
- for( var i=0; i<eleArr.length; i++ ){
- // log("value="+eleArr[i].value+" innerText="+eleArr[i].innerText)
- if(tag==='button'||tag==='input'){
- if(val===eleArr[i].innerText.trim()||val===eleArr[i].value.trim()){
- eleArr[i].click()
- // log("点击"+val)
- rs= true
- }
- }else{
- if(val==eleArr[i].innerText){
- eleArr[i].click()
- // log("点击"+val)
- rs= true
- }
- }
- if(onlyFirst && rs){
- return rs;
- }
- }
- return rs;
- }
-
- //重试
- async function retry(asyncRequest) {
- var times=2
- log("尝试调用"+asyncRequest)
- while(!await asyncRequest()){
- log("等待500ms 再次尝试")
- await sleep(500)
- }
- return true;
- }
- //满意度评测默认没问题
- function autoCheck(){
- var eleArr = document.getElementsByTagName('input');
- var rs=false
- for( var i=0; i<10; i++ ){
- eleArr[i].click()
- }
- clickTag('input','没问题',false)
- }
- function shuffle(array){
- let res = [], random;
- while(array.length>0){
- random = Math.floor(Math.random()*array.length);
- res.push(array[random]);
- array.splice(random, 1);
- }
- return res;
- }
- function eatWhat(){
-
- if(!isUrlMatch(eatwhatUrl)){
- return;
- }
- var lunchArr=['肯德基','麦当劳','德克士','食其家','得来鲜','大米先生','荷特宝','谷田稻香','胡子大厨','饺子','张拉拉','成都你六姐','鱼你在一起','江西拌粉','老乡鸡']
- var dinnerArr=[]
-
- var arr=shuffle(lunchArr)
- alert(arr[0]+","+arr[1]+","+arr[2] )
- }
-
-
-
- $(document).ready(function() {
- //调用键盘编码,按了键盘回调keydown里的function(event)函数,event就是你按的那个按键的code码
-
- // var 测试 = 80;//P
- // var 评测默认没问题 = 79;//O
- $(document).keydown(function(event){
- switch(event.keyCode){
- case 测试:
- // autoCheckArk();
- doTask();
- break;
- case 吃啥:
- // autoCheckArk();
- eatWhat();
- break;
- case 评测默认没问题:
- // autoCheck();
- break;
- }
- });
- });
-