Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Mediafire Link Converter For JDownloader
- // @namespace TampermonkeyScripts
- // @version 1.1
- // @author vhugoelosegui
- // @description Convierte enlaces de Mediafire a enlaces directos para JDownloader.
- // @match https://www.mediafire.com/
- // @grant GM_setClipboard
- // ==/UserScript==
- function checkUrl(link) {
- try {
- new URL(link);
- return true;
- }
- catch (error) {
- return false;
- }
- }
- // Contenedor principal para la interfaz
- document.body.insertAdjacentHTML('afterbegin', `
- <div style="margin-bottom: 20px; padding: 15px; border: 1px solid #ccc; background-color: #f9f9f9; border-radius: 8px; z-index: 999999;">
- <h3 style="margin-top: 0; color: #333;">Conversor de Enlaces Mediafire para JDownloader</h3>
- <textarea id="input_md_converter" style="width:100%; min-height:150px; margin-bottom: 10px; padding: 10px; border: 1px solid #ddd; border-radius: 4px;" placeholder="Pega uno o más enlaces de Mediafire aquí (uno por línea)"></textarea>
- <button id="copy_all_button" style="padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer;">Copiar todo al portapapeles</button>
- <h4 style="margin-top: 20px; margin-bottom: 5px; color: #333;">Enlaces Convertidos:</h4>
- <textarea id="output_md_converter" style="width:100%; min-height:150px; padding: 10px; border: 1px solid #ddd; border-radius: 4px; background-color: #e9e9e9;" readonly placeholder="Los enlaces convertidos aparecerán aquí..."></textarea>
- <div id="error_messages" style="color: red; margin-top: 10px;"></div>
- </div>
- `);
- // Ajuste del encabezado (puede ser opcional si ya no causa problemas visuales)
- document.querySelector("header#header")?.setAttribute("style", "position:relative!important");
- let inputContainer = document.getElementById("input_md_converter");
- let outputContainer = document.getElementById("output_md_converter");
- let copyButton = document.getElementById("copy_all_button");
- let errorMessagesDiv = document.getElementById("error_messages");
- // Función para copiar al portapapeles (requiere @grant GM_setClipboard)
- copyButton.addEventListener("click", () => {
- const textToCopy = outputContainer.value;
- if (textToCopy) {
- GM_setClipboard(textToCopy);
- copyButton.textContent = "¡Copiado!";
- setTimeout(() => {
- copyButton.textContent = "Copiar todo al portapapeles";
- }, 2000);
- } else {
- copyButton.textContent = "Nada que copiar";
- setTimeout(() => {
- copyButton.textContent = "Copiar todo al portapapeles";
- }, 2000);
- }
- });
- inputContainer.addEventListener("input", async () => {
- const links = inputContainer.value.split("\n").map(link => link.trim()).filter(link => link.length > 0);
- let convertedLinks = [];
- errorMessagesDiv.innerHTML = ""; // Limpiar mensajes de error anteriores
- if (links.length > 0) {
- for (const trimmedLink of links) {
- if (checkUrl(trimmedLink) && trimmedLink.includes("mediafire.com")) {
- try {
- const res = await fetch(trimmedLink);
- const data = await res.text();
- const tempDiv = document.createElement('div');
- tempDiv.style.display = 'none';
- tempDiv.innerHTML = data;
- document.body.appendChild(tempDiv);
- let downloadButton = tempDiv.querySelector('#downloadButton');
- if (downloadButton) {
- let scrambledUrl = downloadButton.getAttribute('data-scrambled-url');
- if (scrambledUrl) {
- let decodedUrl = atob(scrambledUrl);
- convertedLinks.push(decodedUrl);
- } else {
- errorMessagesDiv.innerHTML += `<div>⚠️ No se encontró URL codificada para: ${trimmedLink}</div>`;
- console.warn(`No se encontró 'data-scrambled-url' en el botón de descarga para: ${trimmedLink}`);
- }
- } else {
- errorMessagesDiv.innerHTML += `<div>❌ Botón de descarga no encontrado para: ${trimmedLink}</div>`;
- console.warn(`No se encontró el botón de descarga (#downloadButton) en: ${trimmedLink}`);
- }
- tempDiv.remove(); // Eliminar el div temporal
- } catch (error) {
- errorMessagesDiv.innerHTML += `<div>❌ Error al procesar: ${trimmedLink}</div>`;
- console.error(`Error al procesar el enlace ${trimmedLink}:`, error);
- }
- } else {
- if (trimmedLink.length > 0) { // Solo mostrar error si la línea no está vacía
- errorMessagesDiv.innerHTML += `<div>❗ Formato de URL incorrecto o no es de Mediafire: ${trimmedLink}</div>`;
- }
- }
- }
- outputContainer.value = convertedLinks.join('\n'); // Mostrar enlaces en el textarea de salida
- } else {
- outputContainer.value = "";
- }
- });
Add Comment
Please, Sign In to add comment