UNPKG

@lucasmod/modulo-torrent

Version:

Módulo para scraping de torrents, desenvolvido por @lucas_mod_domina.

130 lines (116 loc) 5.16 kB
const torrent = require('@lucasmod/modulo-torrent') // Usando getDestaques torrent.getDestaques((result) => { if (result.status) { console.log('Destaques:', JSON.stringify(result, null, 2)) } else { console.error('Erro ao buscar destaques:', result.mensagem) } }) // Usando getUltimosAdicionados torrent.getUltimosAdicionados((result) => { if (result.status) { console.log('Últimos Adicionados:', JSON.stringify(result, null, 2)) } else { console.error('Erro ao buscar últimos adicionados:', result.mensagem) } }) // Usando getPagination para a página 2 torrent.getPagination((result) => { if (result.status) { console.log('Página 2:', JSON.stringify(result, null, 2)) } else { console.error('Erro ao buscar a página 2:', result.mensagem) } }, 2) // Usando search para buscar filmes ou séries const searchQuery = 'avengers' torrent.search(searchQuery).then(result => { if (result.status) { console.log(`Resultados para "${searchQuery}":`, JSON.stringify(result, null, 2)) } else { console.error(`Erro ao buscar por "${searchQuery}":`, result.mensagem) } }).catch(error => { console.error('Erro ao realizar a busca:', error.message) }) // Usando getMovieDetails para obter detalhes de um filme ou série const movieUrl = 'https://limontorrents.com/os-vingadores-the-avengers/' torrent.getMovieDetails(movieUrl).then(result => { console.log('Detalhes do Filme ou Série:', JSON.stringify(result, null, 2)) }).catch(error => { console.error('Erro ao buscar detalhes do filme ou série:', error.message) }) // Usando download para baixar um torrent const magnetURI = 'magnet:?xt=urn:btih:D430C1BF03CCEC2375E7950853DFFABDF53C366B&dn=The.Avengers.Os.Vingadores.2012.720p-WOLVERDONFILMES.COM&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337' torrent.downloadTorrent(magnetURI) .then(result => { console.log('Download concluído:'); console.log('Arquivo salvo em:', result.filePath) // Escutando o progresso (caso o evento ainda esteja sendo emitido) result.progressEmitter.on('progress', percent => { console.log(`Progresso: ${percent}%`) }) }) .catch(error => { console.error('Erro ao fazer o download:', error.message) }) // Usando stream para streaming um torrent const magnetURI = 'magnet:?xt=urn:btih:D430C1BF03CCEC2375E7950853DFFABDF53C366B&dn=The.Avengers.Os.Vingadores.2012.720p-WOLVERDONFILMES.COM&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337' torrent.streamTorrent(magnetURI) .then(result => { console.log('Streaming iniciado:') // Exemplo: lendo alguns dados do stream result.stream.on('data', chunk => { console.log(`Recebido chunk com ${chunk.length} bytes`) }) result.progressEmitter.on('progress', percent => { console.log(`Progresso do streaming: ${percent}%`) }) }) .catch(error => { console.error('Erro ao iniciar streaming:', error.message) }) // Usando download de maneira mais avançada para baixar um torrent const magnetURI = 'magnet:?xt=urn:btih:D430C1BF03CCEC2375E7950853DFFABDF53C366B&dn=The.Avengers.Os.Vingadores.2012.720p-WOLVERDONFILMES.COM&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337' async function advancedDownload() { try { const result = await torrent.downloadTorrent(magnetURI) console.log('Download iniciado com progresso dinâmico:') // Exibe o progresso em tempo real result.progressEmitter.on('progress', percent => { process.stdout.write(`\rProgresso: ${percent}%`) }) // Quando o download for concluído (evento 'idle' já ocorreu), exibe informações finais console.log('\nDownload concluído: ', result.filePath) // Realiza a limpeza do engine result.cleanup() } catch (error) { console.error('Erro:', error.message) } } advancedDownload() // Integração no express // Endpoint para streaming do torrent app.get('/stream', async (req, res) => { const magnetURI = 'magnet:?xt=urn:btih:D430C1BF03CCEC2375E7950853DFFABDF53C366B&dn=The.Avengers.Os.Vingadores.2012.720p-WOLVERDONFILMES.COM&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337' try { // Recupera o header de range, se presente const range = req.headers.range || '' const result = await torrent.streamTorrent(magnetURI, 0, range) // Configura os cabeçalhos de resposta res.writeHead(206, result.headers) // Pipe do stream do torrent para a resposta HTTP result.stream.pipe(res) // Exibe o progresso no console result.progressEmitter.on('progress', percent => { console.log(`Streaming Progresso: ${percent}%`) }) // Limpa o engine se o cliente encerrar a conexão req.on('close', () => { result.cleanup() }) } catch (error) { res.status(500).send(`Erro no streaming: ${error.message}`) } })