Cache pirate respons for 3 hours in redis.

This commit is contained in:
2020-02-21 22:09:42 +01:00
parent aa4a1c2a57
commit 085fb76e11

View File

@@ -5,6 +5,9 @@ const PythonShell = require('python-shell');
const establishedDatabase = require('src/database/database'); const establishedDatabase = require('src/database/database');
const RedisCache = require('src/cache/redis')
const cache = new RedisCache()
function getMagnetFromURL(url) { function getMagnetFromURL(url) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const options = new URL(url); const options = new URL(url);
@@ -49,15 +52,23 @@ async function callPythonAddMagnet(url, callback) {
} }
async function SearchPiratebay(query) { async function SearchPiratebay(query) {
return await new Promise((resolve, reject) => find(query, (err, results) => { const cacheKey = `pirate/${query}`
return new Promise((resolve, reject) => cache.get(cacheKey)
.then(resolve)
.catch(() => find(query, (err, results) => {
if (err) { if (err) {
console.log('THERE WAS A FUCKING ERROR!\n', err); console.log('THERE WAS A FUCKING ERROR!\n', err);
reject(Error('There was a error when searching for torrents')); reject(Error('There was a error when searching for torrents'));
} }
if (results) { if (results) {
resolve(JSON.parse(results, null, '\t')); const jsonData = JSON.parse(results, null, '\t')
cache.set(cacheKey, jsonData)
resolve(jsonData);
} }
})); }))
);
} }
async function AddMagnet(magnet, name, tmdb_id) { async function AddMagnet(magnet, name, tmdb_id) {