2021-10-12 14:09:14 +05:30

49 lines
1.4 KiB
TypeScript

import fs from 'fs';
let youtubeData: youtubeDataOptions;
if (fs.existsSync('.data/youtube.data')) {
youtubeData = JSON.parse(fs.readFileSync('.data/youtube.data').toString());
youtubeData.file = true;
}
interface youtubeDataOptions {
cookie?: Object;
file?: boolean;
}
export function getCookies(): undefined | string {
let result = '';
if (!youtubeData?.cookie) return undefined;
for (const [key, value] of Object.entries(youtubeData.cookie)) {
result += `${key}=${value};`;
}
return result;
}
export function setCookie(key: string, value: string): boolean {
if (!youtubeData?.cookie) return false;
key = key.trim();
value = value.trim();
Object.assign(youtubeData.cookie, { [key]: value });
return true;
}
export function uploadCookie() {
if (youtubeData.cookie && youtubeData.file)
fs.writeFileSync('.data/youtube.data', JSON.stringify(youtubeData, undefined, 4));
}
export function setCookieToken(options: { cookie: string }) {
let cook = options.cookie;
let cookie: Object = {};
cook.split(';').forEach((x) => {
const arr = x.split('=');
if (arr.length <= 1) return;
const key = arr.shift()?.trim() as string;
const value = arr.join('=').trim();
Object.assign(cookie, { [key]: value });
});
youtubeData = { cookie };
youtubeData.file = false;
}