Fix pour /crack

This commit is contained in:
Zachary Guénot
2023-05-28 00:25:29 +02:00
parent 4d25590be5
commit ef58e007bc
2 changed files with 47 additions and 28 deletions

View File

@@ -6,5 +6,4 @@
**/docker-compose* **/docker-compose*
**/Dockerfile* **/Dockerfile*
**/node_modules **/node_modules
**/cracks
README.md README.md

View File

@@ -31,15 +31,20 @@ async function search(query, headers) {
.then(response => response.arrayBuffer()) .then(response => response.arrayBuffer())
.then(arrayBuffer => { return iconv.decode(Buffer.from(arrayBuffer), 'win1251') }) .then(arrayBuffer => { return iconv.decode(Buffer.from(arrayBuffer), 'win1251') })
.catch(error => console.error(error)) .catch(error => console.error(error))
let matches = body.split('</div>')[1].split('<span class="seperator fastfullsearch">')[0].split('</a>') try {
let games = [] let matches = body.split('</div>')[1].split('<span class="seperator fastfullsearch">')[0].split('</a>')
matches.pop() let games = []
matches.forEach(async match => { matches.pop()
let name = match.split('"><span class="searchheading">')[1].split('</span>')[0].slice(0, -8) matches.forEach(async match => {
let link = match.split('<a href="')[1].split('"><span class="searchheading">')[0] let name = match.split('"><span class="searchheading">')[1].split('</span>')[0].slice(0, -8)
games.push({ name, link }) let link = match.split('<a href="')[1].split('"><span class="searchheading">')[0]
}) games.push({ name, link })
return games })
return games
} catch (error) {
console.error(error)
await interaction.followUp({ content: `Y'a eu une erreur !\n${error.toString()}` })
}
} }
async function repo(game, headers) { async function repo(game, headers) {
@@ -47,35 +52,50 @@ async function repo(game, headers) {
.then(response => response.arrayBuffer()) .then(response => response.arrayBuffer())
.then(arrayBuffer => { return iconv.decode(Buffer.from(arrayBuffer), 'win1251') }) .then(arrayBuffer => { return iconv.decode(Buffer.from(arrayBuffer), 'win1251') })
.catch(error => console.error(error)) .catch(error => console.error(error))
let name = body.split('https://uploads.online-fix.me:2053/torrents/')[1].split('"')[0] try {
let url = `https://uploads.online-fix.me:2053/torrents/${name}` let name = body.split('https://uploads.online-fix.me:2053/torrents/')[1].split('"')[0]
return url let url = `https://uploads.online-fix.me:2053/torrents/${name}`
return url
} catch (error) {
console.error(error)
await interaction.followUp({ content: `Y'a eu une erreur !\n${error.toString()}` })
}
} }
async function torrent(url, headers) { async function torrent(url, headers) {
let response = await fetch(url, { headers, body: null, method: "GET" }) let response = await fetch(url, { headers, body: null, method: "GET" })
.catch(error => console.error(error)) .catch(error => console.error(error))
let body = await response.text() try {
let file = body.split('<a href="')[2].split('">')[0] let body = await response.text()
return file let file = body.split('<a href="')[2].split('">')[0]
return file
} catch (error) {
console.error(error)
await interaction.followUp({ content: `Y'a eu une erreur !\n${error.toString()}` })
}
} }
async function download(url, file, headers) { async function download(url, file, headers) {
let path = `./cracks/${file}` let path = `./cracks/${file}`
let writer = fs.createWriteStream(path) let writer = fs.createWriteStream(path)
await axios({ url: url + file, method: 'GET', responseType: 'stream', headers }).then(response => { try {
return new Promise((resolve, reject) => { await axios({ url: url + file, method: 'GET', responseType: 'stream', headers }).then(response => {
response.data.pipe(writer) return new Promise((resolve, reject) => {
let error = null response.data.pipe(writer)
writer.on('error', err => { let error = null
error = err writer.on('error', err => {
writer.close() error = err
reject(err) writer.close()
reject(err)
})
writer.on('close', () => { if (!error) resolve(true) })
}) })
writer.on('close', () => { if (!error) resolve(true) }) }).catch(error => console.error(error))
}) return path
}).catch(error => console.error(error)) } catch (error) {
return path console.error(error)
await interaction.followUp({ content: `Y'a eu une erreur !\n${error.toString()}` })
}
} }
module.exports = { module.exports = {