73 lines
3.4 KiB
JavaScript
73 lines
3.4 KiB
JavaScript
const { SlashCommandBuilder } = require('discord.js')
|
||
const fs = require('fs')
|
||
|
||
const appDir = require('path').dirname(require.main.filename)
|
||
require('require-all')(appDir + '/utilsCrack')
|
||
|
||
var headers1 = {
|
||
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||
"x-requested-with": "XMLHttpRequest"
|
||
}
|
||
var headers2 = {
|
||
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
||
"accept-language": "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7",
|
||
"cache-control": "no-cache",
|
||
"pragma": "no-cache",
|
||
"sec-ch-ua": "\"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"110\", \"Opera GX\";v=\"96\"",
|
||
"sec-ch-ua-mobile": "?0",
|
||
"sec-ch-ua-platform": "\"Windows\"",
|
||
"sec-fetch-dest": "document",
|
||
"sec-fetch-mode": "navigate",
|
||
"sec-fetch-site": "none",
|
||
"sec-fetch-user": "?1",
|
||
"upgrade-insecure-requests": "1",
|
||
"cookie": "online_fix_auth=gAAAAABkKM0s9WNLe_V6euTnJD7UQjppVty9B7OOyHBYOyVcbcejj8F6KveBcLxlf3mlx_vE7JEFPHlrpj-Aq6BFJyKPGzxds_wpcPV2MdXPyDGQLsz4mAvt3qgTgGg25MapWo_fSIOMiAAsF4Gv_uh4kUOiR_jgbHCZWJGPgpNQwU2HFFyvahYR6MzR7nYE9-fCmrev3obkRbro43vIVTTX4UyJMRHadrsY5Q-722TzinCZVmAuJfc=; dle_password=89465c26673e0199e5272e4730772c35; _ym_uid=1670534560361937997; _ym_d=1680394955; _ym_isad=2; dle_user_id=2619796; PHPSESSID=3v8sd281sr0n1n9f1p66q25sa2",
|
||
"Referer": "https://online-fix.me/",
|
||
"Referrer-Policy": "strict-origin-when-cross-origin"
|
||
}
|
||
|
||
module.exports = {
|
||
data: new SlashCommandBuilder().setName('crack').setDescription('Télécharge un crack sur le site online-fix.me !')
|
||
.addStringOption(option => option.setName('jeu').setDescription('Quel jeu tu veux DL ?').setRequired(true)),
|
||
async execute(interaction) {
|
||
await interaction.deferReply()
|
||
|
||
let query = interaction.options.getString('jeu')
|
||
let games = await search(query, headers1)
|
||
if (!Array.isArray(games)) {
|
||
if (games.toString() == "TypeError: Cannot read properties of undefined (reading 'split')") return interaction.followUp({ content: `J'ai rien trouvé pour "${query}" !` })
|
||
else return interaction.followUp({ content: "Une erreur s'est produite ! ```" + games + "```" })
|
||
}
|
||
|
||
let game
|
||
if (games.length > 1) {
|
||
games = games.slice(0, 9)
|
||
let list = ''
|
||
for (let i = 0; i < games.length; i++) list += `\n${i + 1}. ${games[i].name} (${games[i].link})`
|
||
let message = await interaction.followUp({ content: `J'ai trouvé plusieurs jeux pour "${query}" ! ${list}` })
|
||
|
||
let emojis = ['1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣', '9️⃣']
|
||
for (let i = 0; i < games.length; i++) await message.react(emojis[i])
|
||
|
||
// Wait for a reaction to be added by the interaction author.
|
||
const filter = (reaction, user) => {
|
||
return emojis.includes(reaction.emoji.name) && user.id === interaction.user.id
|
||
}
|
||
let collected = await message.awaitReactions({ filter, max: 1, time: 5000, errors: ['time'] })
|
||
.catch(() => { return interaction.followUp({ content: 'T\'as mis trop de temps à choisir !' }) })
|
||
console.log(collected)
|
||
if (!collected.first) return
|
||
let reaction = collected.first()
|
||
let index = emojis.indexOf(reaction.emoji.name)
|
||
game = games[index]
|
||
}
|
||
else game = games[0]
|
||
|
||
let url = await repo(game, headers2)
|
||
let file = await torrent(url, headers2)
|
||
let path = await download(url, file, headers2)
|
||
|
||
await interaction.followUp({ content: `Voici ce que j'ai trouvé pour "${query}" !`, files: [path] })
|
||
fs.unlink(path, (err) => { if (err) throw err })
|
||
}
|
||
} |