UNPKG

@lucasmod/modulo-torrent

Version:

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

257 lines (217 loc) 7.74 kB
[![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/colored.png)](#table-of-contents) # Módulo Torrent 🚀 ![Banner Torrent](https://media.giphy.com/media/26xBwdIuRJiAIqHwA/giphy.gif) --- [![npm version](https://img.shields.io/npm/v/modulo-torrent.svg)](https://www.npmjs.com/package/modulo-torrent) [![Build Status](https://img.shields.io/travis/username/modulo-torrent.svg)](https://travis-ci.org/username/modulo-torrent) [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](LICENSE) --------- <details open align="center"> <summary><b>↓ Total de visitantes ↓</b></summary> <br> <a href="https://www.instagram.com/lucas_mod_domina"><img alt="Cute Count" src="https://count.getloli.com/get/@NeofetchNpc?theme=rule34"/></a> </details> </div> --------- > **Módulo Torrent** é uma biblioteca Node.js que facilita o acesso a informações de torrents do site Limontorrents, permitindo a extração de dados como destaques, os últimos adicionados e navegação paginada. > Explore a documentação abaixo e descubra como integrar este módulo de forma simples e intuitiva! 😃 --- ## 📌 Recursos > *Funcionalidades Incríveis:* - **getDestaques**: Recupera os torrents em destaque. - **getUltimosAdicionados**: Lista os torrents mais recentes adicionados. - **getPagination**: Permite navegar pelas páginas dos resultados. - **search**: Realiza buscas por filmes ou séries. - **getMovieDetails**: Obtém detalhes de um filme ou série. - **downloadTorrent**: Faz o download de torrents com feedback de progresso. - **getTorrentStream**: Inicia o streaming de um torrent com progresso dinâmico. --- ## ⚙️ Instalação --- Para instalar o módulo, utilize o npm: --- ```bash npm install @lucasmod/modulo-torrent ``` --- ## 🚀 Modo de Uso --- ### Exemplo Básico ```js const torrent = require('@lucasmod/modulo-torrent') // Usando getDestaques torrent.getDestaques((result) => { console.log(JSON.stringify(result, null, 2)) }) ``` --- ```js // Usando getUltimosAdicionados torrent.getUltimosAdicionados((result) => { console.log(JSON.stringify(result, null, 2)) }) ``` --- ```js // Usando getPagination para a página 2 torrent.getPagination((result) => { console.log(JSON.stringify(result, null, 2)) }, 2) ``` --- ### Exemplos Avançados ```js 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) } }) ``` --- ```js // 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) } }) ``` --- ```js // 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) ``` --- ```js // 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) }) ``` --- ```js // 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) }) ``` --- ```js // 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) }) ``` --- ```js // Usando stream para streaming de um torrent 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) }) ``` --- ```js // Usando download de maneira mais avançada para baixar um torrent 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, 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() ``` --- ### Exemplos Express ```js // 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}`) } }) ``` --- ## Redes Sociais Conecte-se comigo: [![GitHub](https://img.shields.io/badge/GitHub-000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Otakump4) [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://youtube.com/@Otaku.mp4l) [![WhatsApp](https://img.shields.io/badge/WhatsApp-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://wa.me/559491569380) [![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://instagram.com/lucas_mod_domina) [![Telegram](https://img.shields.io/badge/Telegram-0088CC?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/LUCAS_MOD_DOMINA) --- Copyright (c) 2025 Lucas Mod Domina