41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { LoginMessage, Message, MessageType } from './message';
|
|
import { optionsStorage } from './options-storage';
|
|
import { decrypt, encrypt } from './crypto';
|
|
|
|
const COOKIE_NAME = 'sid';
|
|
|
|
chrome.runtime.onMessage.addListener(
|
|
(message: Message, sender, sendResponse) => {
|
|
switch (message.type) {
|
|
case MessageType.LOGIN:
|
|
handleLogin(message);
|
|
}
|
|
}
|
|
);
|
|
|
|
const handleLogin = async (message: LoginMessage) => {
|
|
const cookie = await chrome.cookies.get({
|
|
name: COOKIE_NAME,
|
|
url: message.url,
|
|
});
|
|
|
|
console.log(cookie);
|
|
|
|
if (cookie) {
|
|
const opts = await optionsStorage.getAll();
|
|
const test1 = await encrypt(cookie.value, opts.encryptionPassword);
|
|
const test2 = await decrypt(test1, opts.encryptionPassword);
|
|
console.log(opts.encryptionPassword, test1, test2);
|
|
}
|
|
|
|
const url = new URL(message.url);
|
|
url.pathname = '/game.php';
|
|
url.searchParams.set('screen', 'overview_villages');
|
|
const resp = await fetch(url.toString(), {
|
|
method: 'GET',
|
|
credentials: 'include',
|
|
redirect: 'manual',
|
|
});
|
|
console.log(resp.status, resp.redirected);
|
|
};
|