// ==UserScript== // @name Mann Co. Store Giveaway Autojoiner // @namespace http://tampermonkey.net/ // @version 2026-08-20 // @description Tries to join giveaways on page load // @author Abhorrent_Anger // @include /^https?:\/\/mannco\.store\/giveaways.?$/ // @icon https://www.google.com/s2/favicons?sz=64&domain=mannco.store // @grant GM_xmlhttpRequest // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js // @require https://cdn.jsdelivr.net/gh/CoeJoder/waitForKeyElements.js@v1.3/waitForKeyElements.js // @run-at document-end // ==/UserScript== setTimeout(function () { location.reload(); }, 90 * 60 * 1000); waitForKeyElements('.giveaways__content', () => { setTimeout(function () { $('.giveaways-list-item:not(.giveaways-list-item--joined)').each(function () { let giveawayURL = $(this).attr('href'); let giveaway = /[^/]*$/.exec(giveawayURL)[0]; let giveawayJoinURL = 'https://api.mannco.store/giveaways/join/' + giveaway; let bearerToken = getTokenFromCookie('auth'); let csrfToken = getTokenFromCookie('csrf'); let xJoin = new GM_xmlhttpRequest({ method: 'POST', url: giveawayJoinURL, headers: { 'Authorization': 'Bearer ' + bearerToken, 'X-Csrf-Token': csrfToken }, onreadystatechange: function (response) { if (response.readyState == 4 && response.status == 200) { console.log('Successfully joined ' + giveaway, response.response); } else { console.log("Couldn't join " + giveaway, response); } } }); }); console.log('Done with giveaway join attempts'); }, 2000); }); const getCookieValue = (name) => ( document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')?.pop() || '' ) function getTokenFromCookie(tokenName) { let tokenArray = getCookieValue(tokenName); let decodedTokenArray = decodeURIComponent(tokenArray); if (typeof decodedTokenArray !== 'string' || !decodedTokenArray) { return false; } let array = JSON.parse(decodedTokenArray); if (Array.isArray(array)) { return array['token']; } return false; }