Summarize Rapidgator links and display them with a copy button.
当前为
// ==UserScript==
// @name Summarize Rapidgator links
// @namespace http://tampermonkey.net/
// @version 0.9
// @description Summarize Rapidgator links and display them with a copy button.
// @author Setcher
// @match https://rapidgator.net/folder/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=rapidgator.net
// @grant GM_setClipboard
// ==/UserScript==
(function() {
'use strict';
// Function to extract and prepend links
function extractAndDisplayLinks() {
// Find the container div where we want to insert the new div (summary div)
let summaryDiv = document.querySelector('.summary');
if (!summaryDiv) return; // If summary div is not found, do nothing
// Create a new div under the summary div with the 'table_header' class
let newDiv = document.createElement('div');
newDiv.setAttribute('class', 'btm'); // Set the class to table_header
// Heading for the new div
let heading = document.createElement('div');
heading.innerHTML = "Rapidgator Links"; // Simplified heading
newDiv.appendChild(heading);
// Create a table for displaying the links
let table = document.createElement('table');
table.classList.add('items'); // Apply the 'items' class for consistent styling
// Add table header row
let thead = document.createElement('thead');
let headerRow = document.createElement('tr');
let nameHeader = document.createElement('th');
nameHeader.textContent = "File Name";
let sizeHeader = document.createElement('th');
headerRow.appendChild(nameHeader);
thead.appendChild(headerRow);
table.appendChild(thead);
// Extract all file links that start with href="/file/"
let links = document.querySelectorAll('a[href^="/file/"]');
let tbody = document.createElement('tbody');
links.forEach(link => {
let fileLink = link.getAttribute('href');
if (fileLink && fileLink.startsWith("/file/")) {
let fullLink = 'https://www.rapidgator.net' + fileLink;
// Create a new table row for each link
let row = document.createElement('tr');
row.setAttribute('class', 'odd');
let nameCell = document.createElement('td');
// Create a link in the first cell
let fileLinkElement = document.createElement('a');
fileLinkElement.href = fullLink;
fileLinkElement.textContent = fullLink; // Use the text of the link
nameCell.appendChild(fileLinkElement);
row.appendChild(nameCell);
tbody.appendChild(row);
}
});
// Add the tbody to the table
table.appendChild(tbody);
// Add the table to the new div
newDiv.appendChild(table);
// Create the "Copy all" button
let copyButton = document.createElement('button');
copyButton.textContent = 'Copy all';
// Button click handler to copy all links to the clipboard
copyButton.addEventListener('click', function() {
let allLinks = Array.from(tbody.querySelectorAll('tr')).map(row => {
let link = row.querySelector('a');
return link ? link.href : '';
}).join('\n');
GM_setClipboard(allLinks);
alert('Links copied to clipboard!');
});
// Add the button below the table
newDiv.appendChild(copyButton);
// Append the new div with the table to the summary div
summaryDiv.appendChild(newDiv);
}
// Run the script when the page is fully loaded
window.addEventListener('load', extractAndDisplayLinks);
})();