Greasy Fork

Greasy Fork is available in English.

米游社 原神 签到

米游社 原神 签到工具

目前为 2021-09-07 提交的版本。查看 最新版本

// ==UserScript==
// @name         米游社 原神 签到
// @namespace    https://space.bilibili.com/52159566
// @version      0.1
// @description  米游社 原神 签到工具
// @author       苏芣苡
// @match        *://bbs.mihoyo.com/ys/
// @icon         https://q.qlogo.cn/g?b=qq&s=100&nk=318328258
// @grant        GM_xmlhttpRequest
// @connect      api-takumi.mihoyo.com
// @run-at       document-start
// @grant        unsafeWindow
// ==/UserScript==

let script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.src = "https://cdn.jsdelivr.net/gh/emn178/js-md5/build/md5.min.js";
document.documentElement.appendChild(script);

function ShowToast(str) {
    var ele = '<div style="right: 10px;top: 80px;background: #40abf2bd;color:#ffffff;z-index: 9999;position: fixed;padding: 20px;text-align:center;width: 400px;height: 100px;border-bottom-left-radius: 10px;border-bottom-right-radius: 10px;border-top-left-radius: 10px;border-top-right-radius: 10px;">'+str+'</div>'

    let toast = document.createElement('div')
    toast.innerHTML = ele
    document.querySelector('body').append(toast)
    setInterval(function () { toast.remove() }, 3000);

}

function ds(){
    var s = 'h8w582wxwgqvahcdkpvdhbh2w9casgfl';
    var t = Math.floor(Date.now()/1000);
    var r = Math.random().toString(36).slice(-6);
    var c = 'salt=' +s+ '&t=' +t+ '&r=' +r;
    var ds = t+ ',' +r+ ',' +md5(c);
    return ds;
}

var data = ''
var uid = ''
var region = ''
var region_name = ''
var nickname = ''
var level = ''
var message =''

GM_xmlhttpRequest({
    url:"https://api-takumi.mihoyo.com/binding/api/getUserGameRolesByCookie?game_biz=hk4e_cn",
    method :"GET",
    onload:function(xhr){
        var json = JSON.parse(xhr.responseText)
        var list = json.data.list
        for(var i in list){

            uid = json.data.list[i].game_uid
            region = json.data.list[i].region
            region_name = json.data.list[i].region_name
            nickname = json.data.list[i].nickname
            level = json.data.list[i].level

            data = '{"act_id":"e202009291139501","region":"' +region+ '","uid":"' +uid+ '"}'

            /*----------------------------------------------------------------------------------------------*/
            GM_xmlhttpRequest({
                url:'https://api-takumi.mihoyo.com/event/bbs_sign_reward/sign',
                method:'POST',
                data:data,
                headers:{
                    'DS':ds(),
                    'x-rpc-app_version': '2.3.0',
                    'x-rpc-client_type': '5',
                    "x-rpc-device_id":"bd7f912e-908c-3692-a520-e70206823495",
                },
                onload:function(xhr){
                    var json = JSON.parse(xhr.responseText)
                    message = json.message
					var tips = '【'+region_name+'】—【'+nickname+'】[ Lv : '+level+']—'+uid+'<br>'+message
					console.log(tips);
                    ShowToast(tips)

                }
            });
            /*----------------------------------------------------------------------------------------------*/
        }
    }
});