MyDropFreeCaseClaimer/MyDropFreeCaseClaimer.user.js

54 lines
1.5 KiB
JavaScript

// ==UserScript==
// @name My Drop Free Case Claimer
// @namespace https://pube.tk
// @version 2025-09-21
// @description Claims free cases
// @author Abhorrent_Anger
// @match https://mydrop.pro/free*
// @match https://csdrop.skin/free*
// @icon https://www.google.com/s2/favicons?sz=64&domain=mydrop.pro
// @grant none
// @require https://cdn.jsdelivr.net/gh/CoeJoder/waitForKeyElements.js@v1.3/waitForKeyElements.js
// @run-at document-end
// ==/UserScript==
const INITIAL_TIMER = 2000;
const RECHECK_TIMER = 60 * 1000;
const RELOAD_TIMER = 30 * 60 * 1000;
const MAIN_WINDOW_SELECTOR = ".case-page";
const FREE_CASE_BUTTON = '.js-free-case-participate';
const HOUR_SELECTOR = '.js-countdown-hours';
const MINUTE_SELECTOR = '.js-countdown-minutes';
function clickFreeCase() {
$(FREE_CASE_BUTTON).click();
}
function runRoutines() {
console.log('Checking for free coin claims...');
clickFreeCase();
setTimeout(runRoutines, RECHECK_TIMER);
}
function setupReload() {
let reload_timer = Math.max(RELOAD_TIMER, getCooldown());
console.log('Sleeping for '+reload_timer+' seconds...');
setTimeout(reload, reload_timer);
}
function getCooldown() {
let time = 0;
time += $(HOUR_SELECTOR).text() * 60 * 60 * 1000;
time += ($(MINUTE_SELECTOR).text() * 60 * 1000) + 60 * 1000;
return time;
}
function reload() {
console.log('Reloading...');
location.reload();
}
waitForKeyElements(MAIN_WINDOW_SELECTOR, () => {
setTimeout(runRoutines, INITIAL_TIMER);
setTimeout(setupReload, RECHECK_TIMER);
});