LeoZINN22 / copiar link repertorio enem

// ==UserScript==
// @name         copiar link repertorio enem
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       LZNN
// @license MIT
// @match        https://app.repertorioenem.com.br/exams/exam_list
// @icon         https://www.google.com/s2/favicons?sz=64&domain=repertorioenem.com.br
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Função para copiar o link
    function copiarLink(button) {
        // Obter o valor do atributo data-bs-exam
        const dataBsExam = button.getAttribute('data-bs-exam');

        // Converter o JSON em um objeto JavaScript
        const examData = JSON.parse(dataBsExam);

        // Obter o link do objeto examData
        const link = examData.route;

        // Criar um elemento de input para copiar o link
        const input = document.createElement('input');
        input.value = link;
        document.body.appendChild(input);

        // Selecionar o texto no input
        input.select();
        input.setSelectionRange(0, 99999); // Para dispositivos móveis

        // Copiar o texto para a área de transferência
        document.execCommand('copy');

        // Remover o elemento de input
        document.body.removeChild(input);

        // Exibir uma mensagem de sucesso
        alert('Link copiado com sucesso: ' + link);
    }

    // Encontre todos os elementos <div class="col">
    const colElements = document.querySelectorAll('div.col');

    // Itere sobre os elementos
    colElements.forEach(function(colElement) {
        // Encontre o botão existente com o atributo data-bs-exam
        const button = colElement.querySelector('button[data-bs-exam], a.btn-secondary[href*="exams/exam"]');

        if (button) {
            // Encontre o elemento card-footer
            const cardFooter = colElement.querySelector('.card-footer');

            // Crie um novo botão "Copiar Link"
            const copiarLinkButton = document.createElement('button');
            copiarLinkButton.className = 'btn btn-primary mb-2';
            copiarLinkButton.textContent = 'Copiar Link';
            copiarLinkButton.style.width = '100%';
            copiarLinkButton.addEventListener('click', function() {
                copiarLink(button);
            });

            // Adicione o novo botão ao final do card-footer
            cardFooter.appendChild(copiarLinkButton);
        }
    });
})();