Adds the 'Add to Deck' button from a cards page to the cards on the search page.
// ==UserScript==
// @name Scryfall: Add to Deck
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Adds the 'Add to Deck' button from a cards page to the cards on the search page.
// @author Bastian Hentschel
// @match https://scryfall.com/search?*
// @icon https://www.google.com/s2/favicons?sz=64&domain=scryfall.com
// @grant none
// @license GNU GPLv3
// ==/UserScript==
(function() {
'use strict';
function makeButton(id) {
let temp = document.createElement('template');
temp.innerHTML = '<button name="button" type="button" class="button-n deckbuilder-card-add-button" title="Add to saved cards" data-card-id="2c65185b-6cf0-451d-985e-56aa45d9a57d">\
<svg focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M320 64h-16V48c0-26.47-21.53-48-48-48h-64c-26.47 0-48 21.53-48 48v16h-16C57.31 64 0 121.31 0 192v256c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V192c0-70.69-57.31-128-128-128zM176 48c0-8.83 7.19-16 16-16h64c8.81 0 16 7.17 16 16v16h-96V48zm160 432H112v-96h224v96zm0-128H112v-32c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32v32zm80 96c0 17.64-14.36 32-32 32h-16V320c0-35.29-28.71-64-64-64H144c-35.29 0-64 28.71-64 64v160H64c-17.64 0-32-14.36-32-32V192c0-52.94 43.06-96 96-96h192c52.94 0 96 43.06 96 96v256zM312 160H136c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z"></path></svg>\
\
<b>Add to Deck</b>\
</button>';
let button = temp.content.firstChild;
button.setAttribute("data-card-id", id);
return temp.content.firstChild;
}
let cards = document.getElementsByClassName("card-grid-item");
for (let i = 0; i < cards.length; i += 1) {
if (cards[i].getAttribute("aria-hidden")) {
continue;
}
let id = cards[i].getAttribute("data-card-id");
let button = makeButton(id);
cards[i].appendChild(button);
}
})();