mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-25 08:58:23 +03:00
Use cache for ttl if possible
Also fixes etag when compression enabled
This commit is contained in:
@@ -143,6 +143,7 @@ async function getKeyLastModified(key: string): Promise<Date> {
|
||||
if (!config.redis?.enabled) return Promise.reject("ETag - Redis not enabled");
|
||||
return await redis.ttl(key)
|
||||
.then(ttl => {
|
||||
if (ttl <= 0) return new Date();
|
||||
const sinceLive = config.redis?.expiryTime - ttl;
|
||||
const now = Math.floor(Date.now() / 1000);
|
||||
return new Date((now-sinceLive) * 1000);
|
||||
|
||||
@@ -193,6 +193,15 @@ if (config.redis?.enabled) {
|
||||
}
|
||||
};
|
||||
|
||||
const ttl = client.ttl.bind(client);
|
||||
exportClient.ttl = (key) => {
|
||||
if (cache && cacheClient && cache.has(key)) {
|
||||
return Promise.resolve(config.redis?.expiryTime - Math.floor((cache.ttl - cache.info(key).ttl) / 1000));
|
||||
} else {
|
||||
return ttl(createKeyName(key));
|
||||
}
|
||||
};
|
||||
|
||||
const get = client.get.bind(client);
|
||||
const getRead = readClient?.get?.bind(readClient);
|
||||
exportClient.get = (key) => new Promise((resolve, reject) => {
|
||||
|
||||
Reference in New Issue
Block a user