// ==UserScript== // @name ChessNitro Web // @namespace http://tampermonkey.net/ // @version 1.0.1 // @description Shows Discord Nitro Code from chess.com username // @author kpxyy // @match https://www.chess.com/* // @grant none // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js // @license the-unlicense // @downloadURL https://update.greasyfork.icu/scripts/507455/ChessNitro%20Web.user.js // @updateURL https://update.greasyfork.icu/scripts/507455/ChessNitro%20Web.meta.js // ==/UserScript== (function() { 'use strict'; var $div = $('
' + '

ChessNitro Web\n

' + '
' + '
' + '
').appendTo('body'); var $usernameInput = $('').appendTo($div); var $searchButton = $('').appendTo($div); $div.append('
'); $div.append('
'); var $opponentButton = $('').appendTo($div); var $profileButton = $('').appendTo($div); $opponentButton.on('click', function() { var username = $('.user-username-component.user-username-white.user-username-link.user-tagline-username').first().text(); $usernameInput.val(username); }); $profileButton.on('click', function() { if (!window.location.pathname.includes('/member/')) return; var username = window.location.pathname.replace('/member/', '') $usernameInput.val(username); }); var dragging = false; var offset = {x: 0, y: 0}; $div.on('mousedown', function(e) { dragging = true; offset = { x: $div.offset().left - e.clientX, y: $div.offset().top - e.clientY }; }); $(document).on('mousemove', function(e) { if (dragging) { $div.offset({ left: e.clientX + offset.x, top: e.clientY + offset.y }); } }); $(document).on('mouseup', function(e) { dragging = false; }); $searchButton.on('click', function() { var username = $usernameInput.val(); if (username) { fetch(`https://www.chess.com/callback/user/popup/${username}`, { "headers": { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0", "Accept": "*/*", "Accept-Language": "en-GB" }, "referrer": `https://www.chess.com/member/${username}`, "method": "GET" }).then(response => response.json()).then(data => { let body = JSON.stringify({ userUuid: data.uuid, campaignId: "4daf403e-66eb-11ef-96ab-ad0a069940ce" }); fetch("https://www.chess.com/rpc/chesscom.partnership_offer_codes.v1.PartnershipOfferCodesService/RetrieveOfferCode", { body: body, method: "POST", headers: { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0", "Accept": "*/*", "Accept-Language": "en-GB", "Content-Type": "application/json" } }).then(response => { if (response.status != 200) { alert(`Unable to get nitro code. Status: ${response.status}`); return; } return response.json(); }).then(nitroCode => { if (nitroCode.codeValue) { alert(`https://discord.com/billing/promotions/${nitroCode.codeValue}`); } }); }); } }); })();