UNPKG

@lucasmod/modulo-torrent

Version:

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

67 lines (65 loc) 2.26 kB
//By: 𖧄 𝐋𝐔𝐂𝐀𝐒 𝐌𝐎𝐃 𝐃𝐎𝐌𝐈𝐍𝐀 𖧄 //Canal: https://whatsapp.com/channel/0029Va6riekH5JLwLUFI7P2B const axios = require('axios') const cheerio = require('cheerio') const { URL } = require('url') /** * Função para realizar a busca de filmes ou séries no Limon Torrents. * * Esta função realiza uma requisição HTTP para a URL de busca, extrai as informações dos filmes e séries presentes na página de resultados, * e retorna essas informações formatadas em um objeto. * * @param {string} query - Termo de busca inserido pelo usuário. * @returns {Object} - Objeto com o status da requisição, e a lista de resultados encontrados. * * @throws {Error} Se ocorrer um erro durante a requisição ou ao processar os dados. */ module.exports = { search: async (query) => { try { const baseUrl = 'https://limontorrents.com' const searchUrl = `${baseUrl}/?s=${encodeURIComponent(query)}` const response = await axios.get(searchUrl, { headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } }) const $ = cheerio.load(response.data) const results = [] $('.movies-list .col').each((index, element) => { const movieDiv = $(element).find('.item') const movie = {} const titleTag = movieDiv.find('.title a') if (titleTag.length) { movie.title = titleTag.text().trim() movie.url = new URL(titleTag.attr('href'), baseUrl).href } const imgTag = movieDiv.find('img.img-fluid') if (imgTag.length) { movie.imageUrl = new URL(imgTag.attr('src'), baseUrl).href } const audioTag = movieDiv.find('.audio') movie.audio = audioTag.length ? audioTag.text().trim() : null const imdbTag = movieDiv.find('.imdb') if (imdbTag.length) { const imdbText = imdbTag.text().trim() movie.imdbRating = parseFloat(imdbText.replace('IMDb', '').trim()) || null } movie.category = 'Filmes' if (movie.title && movie.title.toLowerCase().includes('temporada')) { movie.category = 'Séries' } if (movie.title) results.push(movie) }) return { criador: '@lucas_mod_domina', status: true, resultados: results } } catch (error) { return { criador: '@lucas_mod_domina', status: false, mensagem: `Erro ao buscar no Limon Torrents: ${error.message}` } } } }