Twitch Auto-claim

Will auto-claim drops from campaigns

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Twitch Auto-claim
// @namespace    twitch-auto-drops
// @version      0.3
// @description  Will auto-claim drops from campaigns
// @author       PlatinumLyfe
// @run-at       document-idle
// @match        https://www.twitch.tv/drops/inventory
// @icon         https://static.twitchcdn.net/assets/favicon-16-52e571ffea063af7a7f4.png
// @grant        none
// ==/UserScript==

(function(window, document) {
    'use strict';

    const claimButtonSelector = '[data-test-selector="DropsCampaignInProgressRewardPresentation-claim-button"]';
    var timeMins = 2.5;
    var timeScale = 0.5;
    console.log('Script running and checking for claimable drops...');

    setTimeout(function () {

        var claimButton = document.querySelector(claimButtonSelector);
        if (claimButton) {
            console.log('Claim found!');
            claimButton.click();
        } else {
            console.info('No claimable items found... sorry');
        }
        console.log('Refreshing page in ' + timeMins + ' minutes');
        setInterval(function () {
            timeMins = timeMins - timeScale;
            console.log('Refreshing page in ' + timeMins + ' minutes');
            if (timeMins <= 0) window.top.location.reload();
        }, 1000 * 60 * timeScale);
    }, 5000);
    // Sometimes this bugs and won't reload. This should fix.
    setTimeout(window.top.location.reload, (1000 * 60 * timeMins) + 5000);
    setTimeout(window.location.reload, (1000 * 60 * timeMins) + 5000);
})(window, document);