dmm mission

dmm mission!

// ==UserScript==
// @name         dmm mission
// @namespace    http://tampermonkey.net/
// @version      2023.12.8
// @description  dmm mission!
// @author       cunhan
// @match      *://mission.games.dmm.com/
// @match      *://library.games.dmm.com/
// @match      *://mission.games.dmm.co.jp/
// @match      *://library.games.dmm.co.jp/
// @match      *://sp-play.games.dmm.com/*
// @match      *://sp-play.games.dmm.co.jp/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_openInTab
// ==/UserScript==

/*
1、先手动签到dmm客户端的两个游戏
2、手动开启浏览器手机模式,然后打开https://library.games.dmm.co.jp/
2.1 脚本按顺序执行以下操作,打开https://library.games.dmm.com/
2.2 接着打开https://mission.games.dmm.co.jp/,并重复4次“打开页游,返回mission页面”,完成任务并领取代币。最后在新标签页打开https://mission.games.dmm.co.jp/(PC版)
2.3 接着打开https://mission.games.dmm.com/,同上。最后也是在新标签里打开https://mission.games.dmm.com/(PC版)
2.4 由于没有方法“以手机模式打开某个网页”,所以手机版的签到流程全都在同一个页面里顺序执行。
3、上述2.2和2.3打开的PC版mission页面,会同时在新标签页打开3个页游、library页面以及pachinko页面。等待10s后mission标签页自动刷新,领取代币。
4、上面打开的标签页都可以配置TabAutoClose(30s)来自动关闭

总结,手动签到2个客户端游戏,然后手机模式打开https://library.games.dmm.co.jp/,剩下的事情脚本会全部搞定。
*/

(function() {
    'use strict';
    var a = setTimeout(function() { myFunction(); },3000);//增加等待时间,让sp-play可以加载完成
    function myFunction(){ // 声明一个函数
        console.log("正在运行中...");
        var platform = document.getElementById("i3_vwtp");
        if (platform.value == "pc")
        {
            console.log("pc html");
            //处理PC版:
            //找到daliy challenge,如果有新的期间限定任务,让手机版的脚本去点
            var daily = document.getElementsByClassName("p-captStandard");
            for (i = 0; i < daily.length; i++) {
                console.log(daily[i].innerText)
                if (daily[i].innerText == "毎日チャレンジできる、デイリーミッション")
                {
                    console.log(daily[i].nextSibling.nextSibling)
                    var mission_status = daily[i].nextSibling.nextSibling.getElementsByClassName("listMission_gauge_flame");;
                    if (mission_status.length > 0)
                    {
                        //还没有领取状态的文字,把几个页游点一遍
                        var missionitems_pc = daily[i].nextSibling.nextSibling.getElementsByClassName("listMission_targetGameItem_inner");
                        var i;
                        for (i = 0; i < 3; i++) {
                            console.log(missionitems_pc[i].href);
                            var playstatus = missionitems_pc[i].getElementsByClassName("listMission_targetGameItem_isPlayed");
                            if (playstatus.length == 0)
                            {

                                GM_openInTab(missionitems_pc[i].href);
                            }
                        }
                        GM_openInTab("https://www.dmm.com/netgame/pachinko/-/game/");
                        GM_openInTab("https://library.games.dmm.co.jp/");
                        GM_openInTab("https://library.games.dmm.com/");
                        setTimeout(function() { uselessFunction(); },10000);
                    }
                    else
                    {
                        var adddiv = document.getElementsByClassName("receiveAll_btn");
                        if (adddiv.length > 0)
                        {
                            console.log("PC:找到按钮"+adddiv.length);
                            adddiv[0].click();
                            console.log("PC:已点击接受所有报酬");
                        }
                    }
                }

            }
        }
        //处理手机版
        //手动开启手机模式,按以下顺序依次跳转library.games.dmm.co.jp -> library.games.dmm.com -> mission.games.dmm.com -> mission.games.dmm.co.jp
        if (platform.value == "sp")
        {
            console.log("sp html")
            //从页游跳回mission
            if (document.domain == "sp-play.games.dmm.co.jp")
            {
                window.location.replace("https://mission.games.dmm.co.jp/");
                return;
            }
            if (document.domain == "sp-play.games.dmm.com")
            {
                window.location.replace("https://mission.games.dmm.com/");
                return;
            }

            if (document.domain == "library.games.dmm.co.jp")//#1
            {
                window.location.replace("https://library.games.dmm.com/");
                return;
            }
            if (document.domain == "library.games.dmm.com")//#2
            {
                window.location.replace("https://mission.games.dmm.co.jp/");
                return;
            }
            //未play的逐个点
            var missionitems_mobile = document.getElementsByClassName("target-item-inner");
            var ij;
            for (ij = 0; ij < missionitems_mobile.length; ij++) {
                console.log(missionitems_mobile[ij].href);
                var playstatusm = missionitems_mobile[ij].getElementsByClassName("target-item-text-played");
                if (playstatusm.length == 0)
                {
                    console.log("redirect.")
                    window.location.replace(missionitems_mobile[ij].href);
                    return;
                }
                else
                {
                    console.log(playstatusm[0]);
                }
            }
            //访问mission页面时,先收菜后跳转
            adddiv = document.getElementsByClassName("receive-all-button");
            if (adddiv.length > 0)
            {
                console.log("手机版:找到按钮"+adddiv.length);
                adddiv[0].click();
                console.log("手机版:已点击接受所有报酬");
            }
            //同时在新标签页打开PC版
            if (document.domain == "mission.games.dmm.co.jp")//#3
            {
                console.log("mobile mission.jp -> mobile mission com, new pc mission.jp")
                GM_openInTab("https://mission.games.dmm.co.jp/");
                window.location.replace("https://mission.games.dmm.com/");
                return;
            }
            if (document.domain == "mission.games.dmm.com")//#4 end
            {
                console.log("mobile mission.com -> new pc misson.com")
                GM_openInTab("https://mission.games.dmm.com/");
                return;
            }
        }

    }


    function uselessFunction(){
        console.log("最后刷新页面")
        location.reload();
    }




})();