// ==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-end // @grant unsafeWindow // @downloadURL none // ==/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 = '
'+str+'
' 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+'
'+message console.log(tips); ShowToast(tips) } }); /*----------------------------------------------------------------------------------------------*/ } } });