您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
禅道与飞书的bug通信
- // ==UserScript==
- // @name flash-Zentao
- // @namespace https://www.flashmoney.com/
- // @version 2.1.1
- // @description 禅道与飞书的bug通信
- // @grant GM_addStyle
- // @run-at document-end
- // @author ll
- // @match https://project.flashexpress.pub/bug-*
- // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- $('body')
- .delegate('#submit', 'click', function(event) {
- const href = window.top.location.href
- if(href.indexOf('bug-create') > -1) {
- // 影响版本
- const _require = $('#openedBuild_chosen .search-choice >span').text()
- // 标题
- const _bugTitle = $('.input-control #title').val()
- // 指派给
- const bugUserName = $("#assignedTo_chosen >.chosen-single-with-deselect >span").text()
- if (_require && _bugTitle) {
- sendMessageFeiShu(_bugTitle, bugUserName)
- }
- } else {
- const _bugUserName = $(".picker-selections .picker-selection-text").text()
- const _bugTitle = $('.input-control #title').val() || $('.main-header >h2').children().eq(1).text()
- // 状态置为解决不发送
- const _resolution = $('#resolution_chosen')
- if (_resolution.length) return
- sendMessageFeiShu(_bugTitle, _bugUserName)
- }
- });
- // send飞书
- function sendMessageFeiShu(_title, _name){
- const _emailElement = $(`#assignedTo option:contains(${_name})`)
- const email = _emailElement && _emailElement.val()
- // 白名单:不发送的email
- const whiteEmail = ['yanxuesong']
- if(whiteEmail.includes(email)) return
- // 发送人
- const _sendName = window.top.$("#header #userNav .user-name").text()
- // bug地址
- const href = window.top.location.href
- const query = {
- email: `${email}@flashexpress.com`,
- msg_type: "interactive",
- card: {
- "config": {
- "update_multi": true,
- "wide_screen_mode": true
- },
- "header": {
- "title": {
- "tag": "plain_text",
- "content": '🥺【bug】' + _name,
- },
- "template": "red"
- },
- "elements": [
- {
- "tag": "div",
- "text": {
- "tag": "lark_md",
- "content": `**bug:**[${_title}](${href})`
- }
- },
- {
- "tag": "div",
- "text": {
- "tag": "lark_md",
- "content": `**发送人:**${_sendName}`
- }
- },
- {
- "tag": "div",
- "text": {
- "tag": "lark_md",
- "content": `**发送时间:**${formatTimestamp(new Date(), "yyyy-MM-dd hh:mm:ss")}`
- }
- },
- {
- "tag": "action",
- "actions": [
- {
- "tag": "button",
- "text": {
- "tag":"plain_text",
- "content":'禅道bug地址' //指定按钮文本
- },
- "url": href,
- "type": "danger"
- }
- ]
- }
- ]
- }
- }
- let apiUrl = 'https://feishu-api.flashfin.com/send-message'
- // 针对没有邮箱的,url不一样
- // const whiteName = ['W:王雪晴', 'D:段飞扬']
- // if(whiteName.includes(_name)) {
- // apiUrl = 'https://open.feishu.cn/open-apis/bot/v2/hook/2cb384af-73a4-4590-9bf9-31acaf7ddc12'
- // }
- $.ajax({
- url: apiUrl,
- type: "post",
- headers:{'Content-Type':'application/json'},
- dataType: 'json',
- data: JSON.stringify(query),
- success:function(result){
- console.log('send success')
- }
- });
- }
- // 格式化时间
- function formatTimestamp (date, fmt) {
- if (!date) return date
- if (typeof date === 'string') {
- // 解决IOS上无法从dateStr parse 到Date类型问题
- date = date.replace(/-/g, '/')
- date = new Date(date)
- }
- const o = {
- 'M+': date.getMonth() + 1, // 月份
- 'd+': date.getDate(), // 日
- 'h+': date.getHours(), // 小时
- 'm+': date.getMinutes(), // 分
- 's+': date.getSeconds(), // 秒
- 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
- S: date.getMilliseconds() // 毫秒
- }
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
- }
- for (const k in o) {
- if (new RegExp('(' + k + ')').test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
- }
- }
- return fmt
- }
- })();