Greasy Fork

来自缓存

Greasy Fork is available in English.

碧蓝幻想手机通知助手

碧蓝幻想副本团灭或打完后,手机收到通知

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         碧蓝幻想手机通知助手
// @namespace    muu
// @version      0.5
// @description  碧蓝幻想副本团灭或打完后,手机收到通知
// @author       muu
// @license      MIT
// @match        *://game.granbluefantasy.jp/*
// @match        *://gbf.game.mbga.jp/*
// @icon         http://game.granbluefantasy.jp/favicon.ico
// @grant        GM_notification
// @grant        GM_xmlhttpRequest
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @require      https://cdn.jsdelivr.net/npm/[email protected]/dist/sweetalert2.all.min.js
// @connect      *
// ==/UserScript==

(function () {
    'use strict';

    function showSettings(){
        let html = `
<li>
  <input type="text" id="msgUrl" placeholder="链接" class="swal2-input" />
</li>

<li>
  <span>推送:</span>
  <select class="swal2-input" id="msgChannel">
    <option value="1">微信</option>
    <option value="2">QQ</option>
    <option value="3">钉钉</option>
    <option value="4">Discord</option>
    <option value="5">Bark</option>
  </select>
</li>
<li class="lh-item lh-target-blank">
  <label>
    <input id="die" type="checkbox" />
    <span>全灭提醒</span>
  </label>
  <label style="margin-left: 20px">
    <input id="over" type="checkbox" />
    <span>打完提醒</span>
  </label>
</li>
<style type="text/css">
  .swal2-container {
    z-index: 9999;
  }
</style>
        `;
        Swal.fire({
            title: "链接配置",
            html:html,
            showCancelButton: true,
            customClass: {
                popup: "lh-popup",
                content: "lh-content",
                closeButton: "lh-close"
            },
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            didOpen(){
                $("#msgUrl")[0].value = GM_getValue("msgUrl","");
                $("#msgChannel")[0].value = GM_getValue("msgChannel","1");
                $("#die").attr("checked",GM_getValue("die",false));
                $("#over").attr("checked",GM_getValue("over",true));
            }
        }).then((res) =>{
            if (res.isConfirmed) {
                GM_setValue("msgUrl", $("#msgUrl")[0].value);
                GM_setValue("msgChannel", $("#msgChannel")[0].value);
                GM_setValue("die", $("#die").prop('checked')?true:false);
                GM_setValue("over", $("#over").prop('checked')?true:false);
                Swal.fire({
                    toast: true,
                    showConfirmButton: false,
                    timer: 2000,
                    type: 'success',
                    title: '设置成功',
                    customClass: {
                        popup: "lh-popup",
                        content: "lh-content",
                        closeButton: "lh-close"
                    }
                })
            }
        })
    }
    GM_registerMenuCommand("配置", showSettings);
    //全灭通知
    if(GM_getValue("die")){
        window.addEventListener('load', () => {
            setTimeout(() => {
                let hash = location.hash
                if (/^#raid(_multi)?\/\d/.test(hash)) {
                    var tips = document.querySelector(".prt-tips");
                    const observer = new MutationObserver((mutationList) => {
                        if(tips.style.display=="block"){
                            GM_notification({
                                title: '碧蓝幻想全灭了',
                                text: '看一下',
                                timeout: 2000
                            })
                            switch(GM_getValue("msgChannel")){
                                case "3":
                                    GM_xmlhttpRequest({
                                        method: "POST",
                                        url: GM_getValue("msgUrl"),
                                        headers: {
                                            "Content-Type": 'application/json;charset=utf-8'
                                        },
                                        data: JSON.stringify({
                                            "msgtype": "text",
                                            "text": {
                                                "content": "碧蓝幻想团灭了,快来救救啊"
                                            }
                                        })
                                    })
                                    break;
                                case "4":
                                    GM_xmlhttpRequest({
                                        method: "POST",
                                        url: GM_getValue("msgUrl"),
                                        headers: {
                                            "Content-Type": 'application/json;charset=utf-8'
                                        },
                                        data: JSON.stringify({
                                            "content": "碧蓝幻想团灭了,快来救救啊"
                                        })
                                    })
                                    break;
                                default:
                                    GM_xmlhttpRequest({
                                        method: "GET",
                                        url: GM_getValue("msgUrl")+"碧蓝幻想团灭了,快来救救啊"
                                    })
                            }
                        }
                    })
                    observer.observe(tips, { attributes:true })
                }
            }, 2000)
        })
    }
    //打完通知
    if(GM_getValue("over")){
        window.addEventListener('hashchange', () => {
            let hash = location.hash
            if (/^#result_multi\/\d/.test(hash)) {
                GM_notification({
                    title: '碧蓝幻想打完了',
                    text: '看一下',
                    timeout: 2000
                })
                switch(GM_getValue("msgChannel")){
                    case "3":
                        GM_xmlhttpRequest({
                            method: "POST",
                            url: GM_getValue("msgUrl"),
                            headers: {
                                "Content-Type": 'application/json;charset=utf-8'
                            },
                            data: JSON.stringify({
                                "msgtype": "text",
                                "text": {
                                    "content": "碧蓝幻想打完了,速开下一把"
                                }
                            })
                        })
                        break;
                    case "4":
                        GM_xmlhttpRequest({
                            method: "POST",
                            url: GM_getValue("msgUrl"),
                            headers: {
                                "Content-Type": 'application/json;charset=utf-8'
                            },
                            data: JSON.stringify({
                                "content": "碧蓝幻想打完了,速开下一把"
                            })
                        })
                        break;
                    default:
                        GM_xmlhttpRequest({
                            method: "GET",
                            url: GM_getValue("msgUrl")+"碧蓝幻想打完了,速开下一把"
                        })
                }
            }
        })
    }
}());