// ==UserScript== // @name DailyIndieGame Tool // @namespace http://tampermonkey.net/ // @version 1.0.1 // @description try to take over the world! // @author Bisumaruko // @include http*://*dailyindiegame.com/account_digstore.html // @include http*://*dailyindiegame.com/account_trades.html // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; var style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = ` .DIGTool_checkbox { display: none; } .DIGTool_checked { background-color: #222; !important } `; document.head.appendChild(style); var anchor = document.querySelector('#form3'), target = anchor.closest('tr').firstElementChild, DIGTool = document.createElement('div'), buttonSelectAll = document.createElement('button'), buttonPurchase = document.createElement('button'); buttonPurchase.textContent = 'Purchase'; buttonPurchase.classList.add('DIG3_Orange_15_Form'); buttonPurchase.addEventListener('click', function () { let anchor = document.querySelector('a[href^="account_transac"]'), balance = parseInt(anchor.closest('div').textContent.slice(12)) || 0, list = Array.from(document.querySelectorAll('.DIGTool_checkbox:checked')), headers = new Headers(), bought = 0;; headers.append('Content-Type', 'application/x-www-form-urlencoded'); for (let item of list) { let id = parseInt(item.dataset.id), price = parseInt(item.dataset.price); if (!id || !price || balance - price < 0) break; let url = 'account_buy.html', init = { method: 'POST', headers: headers, body: 'quantity=1&xgameid=' + id + '&xgameprice1=' + price + '&send=Purchase', mode: 'same-origin', credentials: 'same-origin', cache: 'no-store', referrer: 'http://www.dailyindiegame.com/account_buy_' + id + '.html' }; if (location.href.includes('account_trades')) { url = 'account_buytrade_' + id + '.html'; init.body = 'gameid=' + id + '&send=Purchase'; init.referrer = 'http://www.dailyindiegame.com/account_buytrade_' + id + '.html'; } fetch(url, init) .then(res => { if (res.ok) { item.click(); bought++; } }); } if (bought) window.location = 'http://www.dailyindiegame.com/account_page.html'; }); buttonSelectAll.textContent = 'Select All'; buttonSelectAll.classList.add('DIG3_Orange_15_Form'); buttonSelectAll.addEventListener('click', function () { let checkboxes = Array.from(document.querySelectorAll('.DIGTool_checkbox')); for (let checkbox of checkboxes) { if (this.textContent == 'Select All') { if (!checkbox.checked) checkbox.click(); } else { if (checkbox.checked) checkbox.click(); } } this.textContent = this.textContent == 'Select All' ? 'Cancel' : 'Select All'; }); DIGTool.appendChild(buttonPurchase); DIGTool.appendChild(buttonSelectAll); while (target.lastChild) { target.removeChild(target.lastChild); } target.appendChild(DIGTool); var games = Array.from(document.querySelectorAll('a[href^="account_buy"]')); for (let game of games) { let row = game.closest('tr'), checkbox = document.createElement('input'); checkbox.type = 'checkbox'; checkbox.classList.add('DIGTool_checkbox'); checkbox.dataset.id = game.href.replace(/\D/g,''); checkbox.dataset.price = parseInt(game.closest('td').previousElementSibling.textContent) || 0; checkbox.addEventListener('change', function () { let row = this.closest('tr'); if (this.checked) row.classList.add('DIGTool_checked'); else row.classList.remove('DIGTool_checked'); }); row.firstElementChild.appendChild(checkbox); row.addEventListener('click', function () { this.querySelector('input[type="checkbox"]').click(); }); } })();