@lucasmod/modulo-torrent
Version:
Módulo para scraping de torrents, desenvolvido por @lucas_mod_domina.
67 lines (65 loc) • 2.26 kB
JavaScript
//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}`
}
}
}
}