1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-11-17 04:10:59 -05:00

Move stuff inside the for loop

This commit is contained in:
toast-ts 2023-12-27 11:21:30 +11:00
parent cfc1d5db19
commit b45bc31997

View File

@ -9,42 +9,42 @@ export default async(client:TClient)=>{
let Data:any; let Data:any;
const cacheExpiry:number = 7200; // Invalidate cache after sitting in Redis for 2 hours const cacheExpiry:number = 7200; // Invalidate cache after sitting in Redis for 2 hours
let YTChannelID:string;
let YTChannelName:string;
let DiscordChannelID:string;
let DiscordRoleID:string;
const YTDB = await client.ytChannels.getChannels(); const YTDB = await client.ytChannels.getChannels();
for (const channel of YTDB) { for (const channel of YTDB) {
let YTChannelID:string;
let YTChannelName:string;
let DiscordChannelID:string;
let DiscordRoleID:string;
YTChannelID = channel.dataValues.ytchannel; YTChannelID = channel.dataValues.ytchannel;
DiscordChannelID = channel.dataValues.dcchannel; DiscordChannelID = channel.dataValues.dcchannel;
DiscordRoleID = channel.dataValues.dcrole; DiscordRoleID = channel.dataValues.dcrole;
};
try { try {
await Undici.request(`https://youtube.googleapis.com/youtube/v3/activities?part=snippet&channelId=${YTChannelID}&maxResults=2&key=${(await TSClient()).youtube}`, { await Undici.request(`https://youtube.googleapis.com/youtube/v3/activities?part=snippet&channelId=${YTChannelID}&maxResults=2&key=${(await TSClient()).youtube}`, {
signal: AbortSignal.timeout(10000), signal: AbortSignal.timeout(10000),
headers: {'User-Agent':`${client.user.username} - YTModule/undici`}, headers: {'User-Agent':`${client.user.username} - YTModule/undici`},
}).then(async resp=>Data = await resp.body.json()); }).then(async resp=>Data = await resp.body.json());
YTChannelName = Data.items[0].snippet.channelTitle; YTChannelName = Data.items[0].snippet.channelTitle;
} catch { } catch {
Logger.console('log', 'YTModule', `Failed to get video data for "${YTChannelName}" from YouTube API`); Logger.console('log', 'YTModule', `Failed to get video data for "${YTChannelName}" from YouTube API`);
} }
if (!Data) return; if (!Data) return;
const getVideoId = (index:number)=>Data.items[index].snippet.thumbnails.default.url.split('/')[4]; const getVideoId = (index:number)=>Data.items[index].snippet.thumbnails.default.url.split('/')[4];
const videoUrl = `https://www.youtube.com/watch?v=${getVideoId(0)}`; const videoUrl = `https://www.youtube.com/watch?v=${getVideoId(0)}`;
const cacheKey = `YTCache:${YTChannelID}`; const cacheKey = `YTCache:${YTChannelID}`;
const cachedVideoId = await CacheServer.get(cacheKey, false); const cachedVideoId = await CacheServer.get(cacheKey, false);
if (!cachedVideoId) { if (!cachedVideoId) {
await CacheServer.set(cacheKey, getVideoId(0), false).then(async()=>await CacheServer.expiry(cacheKey, cacheExpiry)); await CacheServer.set(cacheKey, getVideoId(0), false).then(async()=>await CacheServer.expiry(cacheKey, cacheExpiry));
return; return;
} }
if (getVideoId(1) === cachedVideoId) { if (getVideoId(1) === cachedVideoId) {
await CacheServer.delete(cacheKey).then(async()=>await CacheServer.set(cacheKey, getVideoId(0), false).then(async()=>await CacheServer.expiry(cacheKey, cacheExpiry))); await CacheServer.delete(cacheKey).then(async()=>await CacheServer.set(cacheKey, getVideoId(0), false).then(async()=>await CacheServer.expiry(cacheKey, cacheExpiry)));
(client.channels.resolve(DiscordChannelID) as TextChannel).send({ (client.channels.resolve(DiscordChannelID) as TextChannel).send({
content: `${MessageTool.formatMention(DiscordRoleID, 'role')}\n**${YTChannelName}** just uploaded a video!\n${videoUrl}`, allowedMentions: {parse: ['roles']}, content: `${MessageTool.formatMention(DiscordRoleID, 'role')}\n**${YTChannelName}** just uploaded a video!\n${videoUrl}`, allowedMentions: {parse: ['roles']},
}); });
}
} }
} };