mirror of
https://github.com/tubearchivist/browser-extension.git
synced 2025-02-05 15:40:14 +00:00
use serversside caching for channel lookup
This commit is contained in:
parent
c18ccd6e78
commit
c17b0172d9
@ -143,45 +143,15 @@ async function videoExists(id) {
|
|||||||
return new URL(`video/${id}/`, `${access.url}:${access.port}/`).href;
|
return new URL(`video/${id}/`, `${access.url}:${access.port}/`).href;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getChannelCache() {
|
|
||||||
let cache = await browserType.storage.local.get('cache');
|
|
||||||
if (cache.cache) return cache;
|
|
||||||
return { cache: {} };
|
|
||||||
}
|
|
||||||
|
|
||||||
async function setChannel(channelHandler, channelId) {
|
|
||||||
let cache = await getChannelCache();
|
|
||||||
cache.cache[channelHandler] = { id: channelId, timestamp: Date.now() };
|
|
||||||
browserType.storage.local.set(cache);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getChannelId(channelHandle) {
|
|
||||||
let cache = await getChannelCache();
|
|
||||||
|
|
||||||
if (cache.cache[channelHandle]) {
|
|
||||||
return cache.cache[channelHandle]?.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
let channel = await searchChannel(channelHandle);
|
|
||||||
if (channel) setChannel(channelHandle, channel.channel_id);
|
|
||||||
|
|
||||||
return channel.channel_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function searchChannel(channelHandle) {
|
|
||||||
const path = `api/channel/search/?q=${channelHandle}`;
|
|
||||||
let response = await sendGet(path);
|
|
||||||
return response.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getChannel(channelHandle) {
|
async function getChannel(channelHandle) {
|
||||||
let channelId = await getChannelId(channelHandle);
|
let channel;
|
||||||
if (!channelId) return;
|
const path = `api/channel/search/?q=${channelHandle}`;
|
||||||
|
try {
|
||||||
const path = `api/channel/${channelId}/`;
|
channel = await sendGet(path);
|
||||||
let response = await sendGet(path);
|
return channel.data;
|
||||||
|
} catch {
|
||||||
return response.data;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function cookieStr(cookieLines) {
|
async function cookieStr(cookieLines) {
|
||||||
@ -308,8 +278,8 @@ function handleMessage(request, sender, sendResponse) {
|
|||||||
return await subscribe(request.url, true);
|
return await subscribe(request.url, true);
|
||||||
}
|
}
|
||||||
case 'unsubscribe': {
|
case 'unsubscribe': {
|
||||||
let channelId = await getChannelId(request.url);
|
let channel = await getChannel(request.url);
|
||||||
return await subscribe(channelId, false);
|
return await subscribe(channel.channel_id, false);
|
||||||
}
|
}
|
||||||
case 'videoExists': {
|
case 'videoExists': {
|
||||||
return await videoExists(request.videoId);
|
return await videoExists(request.videoId);
|
||||||
|
Loading…
Reference in New Issue
Block a user