Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="pt-br">
- <head>
- <meta charset="UTF-8">
- <meta name="author" content="Mizuno Call of Duty">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Salva lista de Links Web e gera lista HTML</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- margin: 20px;
- }
- h2 {
- color: #333;
- }
- label {
- display: block;
- margin-bottom: 5px;
- }
- input {
- width: 600px; /* Ajuste o tamanho conforme desejado */
- padding: 5px;
- margin-bottom: 10px;
- }
- button {
- padding: 8px;
- background-color: #007bff;
- color: #fff;
- border: none;
- cursor: pointer;
- }
- button:hover {
- background-color: #0056b3;
- }
- #linksContainer {
- margin-top: 20px;
- }
- a {
- color: #007bff;
- text-decoration: none;
- }
- a:hover {
- text-decoration: underline;
- }
- footer {
- margin-top: 20px;
- font-style: italic;
- color: #666;
- }
- </style>
- </head>
- <body>
- <h2>Salva lista de Links Web e gera lista HTML</h2>
- <label for="urlInput">Informe a URL:</label>
- <input type="text" id="urlInput">
- <button onclick="gerarLink()">Gerar Link</button>
- <button onclick="gerarHTML()">Salvar lista de links</button>
- <ul id="linksContainer"></ul>
- <footer><a href="https://www.maislegal.com.br">Voltar</a></footer>
- <script>
- var links = [];
- function obterTitulo(url, callback) {
- var proxyUrl = 'https://api.codetabs.com/v1/proxy?quest=';
- var xhr = new XMLHttpRequest();
- xhr.onreadystatechange = function() {
- if (xhr.readyState === 4 && xhr.status === 200) {
- var match = xhr.responseText.match(/<title>(.*?)<\/title>/);
- var titulo = match ? match[1] : "Título não encontrado";
- callback(titulo);
- }
- };
- xhr.open("GET", proxyUrl + url, true);
- xhr.send();
- }
- function obterDataHoraFormatada() {
- var agora = new Date();
- var dataFormatada =
- `${agora.getFullYear()}-${zeroAEsquerda(agora.getMonth() + 1)}-${zeroAEsquerda(agora.getDate())}` +
- ` ${zeroAEsquerda(agora.getHours())}:${zeroAEsquerda(agora.getMinutes())}:${zeroAEsquerda(agora.getSeconds())}`;
- return dataFormatada;
- }
- function gerarLink() {
- // Obtém o valor do input
- var url = document.getElementById("urlInput").value.trim();
- // Verifica se a URL não está vazia
- if (url !== "") {
- // Obtém o título da página
- obterTitulo(url, function(titulo) {
- // Adiciona o link ao array
- links.push({ url: url, titulo: titulo });
- // Adiciona o link à lista
- var lista = document.getElementById("linksContainer");
- var itemLista = document.createElement("li");
- var linkElement = document.createElement("a");
- // Define os atributos do link
- linkElement.href = url;
- linkElement.target = "_blank";
- linkElement.textContent = titulo;
- // Adiciona o link ao item da lista
- itemLista.appendChild(linkElement);
- lista.appendChild(itemLista);
- // Limpa o valor do input
- document.getElementById("urlInput").value = "";
- });
- }
- }
- function gerarHTML() {
- // Cria um conteúdo HTML com os links e o título
- var conteudoHTML = `
- <html>
- <head>
- <title>Links Gerados em ${obterDataHoraFormatada()}</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- }
- a {
- color: #007bff;
- text-decoration: none;
- }
- a:hover {
- text-decoration: underline;
- }
- footer {
- margin-top: 20px;
- font-style: italic;
- color: #666;
- }
- </style>
- </head>
- <body>
- <h1>Links Exportados em ${obterDataHoraFormatada()}</h1>
- <ul>
- `;
- for (var i = 0; i < links.length; i++) {
- conteudoHTML += `<li><a href="${links[i].url}" target="_blank">${links[i].titulo}</a></li>`;
- }
- conteudoHTML += `
- </ul>
- <footer><a href="https://www.maislegal.com.br" target="_blank">maislegal.com.br</a></footer>
- </body>
- </html>
- `;
- // Cria um Blob com o conteúdo HTML
- var blob = new Blob([conteudoHTML], { type: "text/html" });
- // Cria um objeto URL para o Blob
- var url = URL.createObjectURL(blob);
- // Gera um nome de arquivo organizado
- var agora = new Date();
- var nomeArquivo =
- `links_${agora.getFullYear()}-${zeroAEsquerda(agora.getMonth() + 1)}-${zeroAEsquerda(agora.getDate())}` +
- `_${zeroAEsquerda(agora.getHours())}-${zeroAEsquerda(agora.getMinutes())}.html`;
- // Cria um elemento de link para fazer o download
- var linkDownload = document.createElement("a");
- linkDownload.href = url;
- linkDownload.download = nomeArquivo;
- document.body.appendChild(linkDownload);
- // Aciona o clique no link de download
- linkDownload.click();
- // Remove o link de download do corpo
- document.body.removeChild(linkDownload);
- // Limpa o array de links
- links = [];
- }
- function zeroAEsquerda(numero) {
- return numero.toString().padStart(2, '0');
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement