This commit is contained in:
parent
3a0481112f
commit
7c3f7294cc
2 changed files with 39 additions and 46 deletions
84
index.js
84
index.js
|
@ -1,35 +1,12 @@
|
||||||
|
const { env } = require('process');
|
||||||
const { createTask } = require('./lib/task')
|
const { createTask } = require('./lib/task')
|
||||||
const { fetchVisitorData } = require('./lib/workflow')
|
const { fetchVisitorData } = require('./lib/workflow')
|
||||||
const { Redis } = require('ioredis')
|
const http = require('http');
|
||||||
|
|
||||||
const redis = new Redis({ host: process.env.HOST || config.host });
|
const port = env.PORT || "3000"
|
||||||
const sub = new Redis({ host: process.env.HOST || config.host });
|
const address = env.ADDRESS || "0.0.0.0"
|
||||||
|
|
||||||
redis.on('error', (error) => {
|
let tokens = {};
|
||||||
console.error('Could not connect to Redis:', error);
|
|
||||||
process.exit(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
sub.on('error', (error) => {
|
|
||||||
console.error('Could not connect to Redis:', error);
|
|
||||||
process.exit(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
sub.subscribe("generate-token", (err, count) => {
|
|
||||||
if (err) {
|
|
||||||
console.error("Failed to subscribe: %s", err.message);
|
|
||||||
} else {
|
|
||||||
console.log(
|
|
||||||
`Subscribed successfully! This client is currently subscribed to ${count} channels.`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
sub.on("message", (channel, user) => {
|
|
||||||
console.log(`${channel}`);
|
|
||||||
console.log(`Generating po_token and visitor_data for ${user}`);
|
|
||||||
userGen(user);
|
|
||||||
});
|
|
||||||
|
|
||||||
const generate = async () => {
|
const generate = async () => {
|
||||||
console.debug("[DEBUG] generate called")
|
console.debug("[DEBUG] generate called")
|
||||||
|
@ -43,29 +20,46 @@ const generate = async () => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const run = async () => {
|
const refreshTokens = async () => {
|
||||||
|
console.log("[DEBUG] generateTokens called")
|
||||||
try {
|
try {
|
||||||
const { visitorData, poToken } = await generate();
|
const { visitorData, poToken } = await generate();
|
||||||
redis.set("invidious:po_token", poToken)
|
tokens.visitorData = visitorData;
|
||||||
redis.set("invidious:visitor_data", visitorData)
|
tokens.poToken = poToken;
|
||||||
} catch(e) {
|
} catch (e) {
|
||||||
console.error(`run: Error ${e}`)
|
console.error(`refreshTokens: Error ${e}`)
|
||||||
}
|
}
|
||||||
console.log("New tokens sent to redis")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const userGen = async (user) => {
|
const server = http.Server(async (req, res) => {
|
||||||
try {
|
switch (req.url) {
|
||||||
const { visitorData, poToken } = await generate();
|
case "/generate":
|
||||||
redis.set(`invidious:${user}:po_token`, poToken)
|
if (tokens.visitorData == undefined || tokens.poToken == undefined) {
|
||||||
redis.set(`invidious:${user}:visitor_data`, visitorData)
|
res.writeHead(500)
|
||||||
} catch(e) {
|
return res.end()
|
||||||
console.error(`userGen: Error ${e}`)
|
}
|
||||||
|
const json = {
|
||||||
|
potoken: tokens.poToken,
|
||||||
|
visitorData: tokens.visitorData,
|
||||||
|
};
|
||||||
|
res.writeHead(200, { 'Content-Type': 'text/json' })
|
||||||
|
res.write(JSON.stringify(json))
|
||||||
|
return res.end()
|
||||||
|
case "/update":
|
||||||
|
await refreshTokens();
|
||||||
|
res.writeHead(200, { 'Content-Type': 'text/plain' })
|
||||||
|
res.write("Tokens updated")
|
||||||
|
return res.end()
|
||||||
|
default:
|
||||||
|
return res.end()
|
||||||
}
|
}
|
||||||
console.log(`Tokens generated successfully for user: ${user}`)
|
})
|
||||||
}
|
|
||||||
|
|
||||||
run();
|
|
||||||
setInterval(run, (process.env.RENEW_INTERVAL || 60) * 1000)
|
refreshTokens();
|
||||||
|
setInterval(refreshTokens, (env.RENEW_INTERVAL || 60) * 1000)
|
||||||
|
server.listen(port, address, () => {
|
||||||
|
console.log("Listening at port", port);
|
||||||
|
})
|
||||||
|
|
||||||
module.exports = { generate }
|
module.exports = { generate }
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ioredis": "^5.4.1",
|
|
||||||
"jsdom": "^24.1.1"
|
"jsdom": "^24.1.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
Loading…
Reference in a new issue