Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Genshin Daily Check-In
- // @namespace Violentmonkey Scripts
- // @match https://webstatic-sea.mihoyo.com/ys/event/signin-sea/index.html?act_id=e202102251931481*
- // @grant none
- // @run-at document-end
- // @version 2.0
- // @author h010c
- // @description Genshin Daily Check-In
- // @icon https://i.imgur.com/H8yt3g7.png
- // ==/UserScript==
- var hoursGenshin = 16; // UTC time when Genshin jumps to the "next day"
- var lang = "en";
- var table;
- if (/^(?:ru|uk)\b/.test(navigator.language) || document.URL.slice(-5) === "ru-ru") {
- lang = "ru";
- }
- checkLoot();
- function checkLoot(reload = false) {
- if (reload) {
- table = 0;
- document.location.reload();
- return;
- }
- // element containing list of daily loot
- if (!table) {
- table = document.getElementsByClassName("components-home-assets-__sign-content_---list---3L0nzm")[0];
- setTimeout(checkLoot, 5000);
- return;
- }
- let timeNow = new Date();
- // show timers on webpage
- let elemNote = document.getElementsByClassName("components-home-assets-__sign-content_---desc---oUGkHX")[0];
- if (elemNote) {
- if (lang === "ru") {
- elemNote.innerText = `Лут проверен ${timeNow.toLocaleDateString()} в ${timeNow.toLocaleTimeString()}`;
- } else {
- elemNote.innerText = `Loot checked ${timeNow.toLocaleDateString()} at ${timeNow.toLocaleTimeString()}`;
- }
- }
- console.log("Loot checked at " + timeNow.toLocaleTimeString());
- // notification indicator on loot waiting to be acquired
- let elem = table.getElementsByClassName("components-home-assets-__sign-content_---badge---26v3dm")[0];
- if (elem) {
- elem.parentNode.click();
- }
- // setting up the next check
- let hoursUTCNow = timeNow.getUTCHours();
- let hoursLeft = hoursUTCNow <= hoursGenshin ? hoursGenshin - hoursUTCNow : 24 + hoursGenshin - hoursUTCNow;
- let minutesNow = timeNow.getMinutes();
- let minutesLeft = 60 - minutesNow;
- setTimeout( checkLoot, ((hoursLeft * 60 + minutesLeft + 5) * 60000), true );
- if (elemNote) {
- if (lang === "ru") {
- elemNote.innerText += `; следующая проверка через ${minutesLeft > 54 ? hoursLeft + 1 : hoursLeft} часов ${minutesLeft > 54 ? minutesLeft - 55 : minutesLeft + 5} минут.`;
- } else {
- elemNote.innerText += `; next loot check in ${minutesLeft > 54 ? hoursLeft + 1 : hoursLeft} hours ${minutesLeft > 54 ? minutesLeft - 55 : minutesLeft + 5} minutes.`;
- }
- }
- console.log("Next loot check in %.2d:%.2d:00", (minutesLeft > 54 ? hoursLeft + 1 : hoursLeft), (minutesLeft > 54 ? minutesLeft - 55 : minutesLeft + 5));
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement