// ==UserScript== // @name 米游社_米游币工具 // @namespace https://space.bilibili.com/451551665 // @version 1.3 // @description 米游社 原神签到 获取米游币 // @author 灵舒 // @match *://*/* // @icon https://images.cnblogs.com/cnblogs_com/zhou1106/1804028/o_220422043444_1.webp // @require https://cdn.jsdelivr.net/npm/js-md5@0.7.3/build/md5.min.js // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_notification // @connect api-takumi.mihoyo.com // @connect bbs-api.mihoyo.com // @run-at document-end // @grant unsafeWindow // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/443791/%E7%B1%B3%E6%B8%B8%E7%A4%BE_%E7%B1%B3%E6%B8%B8%E5%B8%81%E5%B7%A5%E5%85%B7.user.js // @updateURL https://update.greasyfork.icu/scripts/443791/%E7%B1%B3%E6%B8%B8%E7%A4%BE_%E7%B1%B3%E6%B8%B8%E5%B8%81%E5%B7%A5%E5%85%B7.meta.js // ==/UserScript== function Rn(min,max){ return Math.floor(Math.random()*(max-min+1)+min) } 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 headers = { 'Referer': 'https://bbs.mihoyo.com/', 'DS': ds(), 'x-rpc-app_version': '2.3.0', 'x-rpc-client_type': '5', 'x-rpc-device_id': 'bd7f912e-908c-3692-a520-e70206823495', } var mpid=[9873884] //防止出毛病感觉多设一点好了。。。 for (var i=0; i<30; i++) { mpid.push(Rn(6000000,9870000)) } var siPost,siReply,siUpvote //发主帖 (有时间限制) function mPost(){ var url = 'https://bbs-api.mihoyo.com/post/wapi/releasePost' var data = {"collection_id":0, "content":"
水贴谁是第一?
【灵舒】天下第一!
", "cover":"", "draft_id":"666", "f_forum_id":0, "forum_id":0,"gids":"2", "is_original":0, "post_id":"", "structured_content":"[{\"insert\":\"水贴谁是第一?\\n【灵舒】天下第一!\\n\"}]", "subject":"【灵舒】天下第一", "topic_ids":["180"], "view_type":1 } var sData = JSON.stringify(data) GM_xmlhttpRequest({ url: url, method: 'POST', data: sData, headers: headers, onload: function(xhr) { var re = (xhr.responseText) console.log("发帖:"+re) var json = JSON.parse(re) if (json.message == "OK") { GM_setValue('vPost',GM_getValue('vPost',0)+1) } if(GM_getValue('vPost',0)>=2){ ShowToast("发主贴经验已混完!", 3) GM_notification({ title: "[米游社 水经验]", text: "发主贴经验已混完!", }) } } }) } //发评论 (有时间限制) function mReply(){ var url = 'https://bbs-api.mihoyo.com/post/wapi/releaseReply' var data = { "content":"灵舒天下第一!
", "gids":"2", "post_id":"9873884", "structured_content":"[{\"insert\":\"灵舒天下第一!\\n\"}]" } var sData = JSON.stringify(data) GM_xmlhttpRequest({ url: url, method: 'POST', data: sData, headers: headers, onload: function(xhr) { var re = (xhr.responseText) console.log("评论:"+re) var json = JSON.parse(re) if (json.message == "OK") { GM_setValue('vReply',GM_getValue('vReply',0)+1) } if(GM_getValue('vReply',0)>=3){ ShowToast("发评论经验已混完!", 3) GM_notification({ title: "[米游社 水经验]", text: "发评论经验已混完!", }) } } }) } //点赞 (这个没有时间限制) function mUpvote(){ var tip = 0 for (var i in mpid) { var id = mpid[i].toString() var url = 'https://bbs-api.mihoyo.com/apihub/api/upvotePost' var data = {"gids":"2", "is_cancel":false, "post_id":id } var sData = JSON.stringify(data) GM_xmlhttpRequest({ url: url, method: 'POST', data: sData, headers: headers, onload: function(xhr) { var re = (xhr.responseText) console.log("点赞:"+re) var json = JSON.parse(re) if (json.message == "OK") { GM_setValue('vUpvote',GM_getValue('vUpvote',0)+1) } if(GM_getValue('vUpvote',0)>=10){ if(tip == 0){ tip = 2 ShowToast("点赞经验已混完!", 3) GM_notification({ title: "[米游社 水经验]", text: "点赞经验已混完!", }) } } } }) } } function Multiline(string) { var str = string.toString().split('\n') return str.slice(1, str.length - 1).join('\n') } function su_style() {/* #Su-1_kawaii{ position: fixed; z-index: 999999999; height: 100%; width: 100%; top: 0; left: 0; background: #44444488; } #Su-1_Out{ position: absolute; z-index: 80; height: 200px; width: 660px; margin-top: -100px; margin-left: -330px; top: 50%; left: 50%; background: #4e6ef2e8; border-radius: 20px; justify-content: center; padding-top: 50px; } #Su-1_In{ height: 100%; width: 100%; line-height: 40px; text-align: center; cursor: pointer; font-size: 24px; text-shadow: #000 1px 0 0, #000 0 1px 0, #000 -1px 0 0, #000 0 -1px 0; color: #fff; } #Su-1_kawaii a { text-decoration: none; color: #f00; } */} GM_addStyle(Multiline(su_style)) function ShowToast(str, s) { var ele = '