Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/components/amazonLoginModal/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ export default class AmazonLoginModal {
parent: remote.getCurrentWindow(),
width: 450,
height: 730,
webPreferences: {
partition: 'persist:kindle-highlights',
},
show: false,
});

Expand Down
3 changes: 3 additions & 0 deletions src/components/amazonLogoutModal/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ export default class AmazonLogoutModal {
parent: remote.getCurrentWindow(),
width: 450,
height: 730,
webPreferences: {
partition: 'persist:kindle-highlights',
},
show: false,
});

Expand Down
3 changes: 2 additions & 1 deletion src/scraper/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ import scrapeHighlightsForBook from './scrapeBookHighlights';
import scrapeBookMetadata from './scrapeBookMetadata';
import scrapeBooks from './scrapeBooks';
import scrapeLogoutUrl from './scrapeLogoutUrl';
import clearSessionData from './session';

export { scrapeHighlightsForBook, scrapeBookMetadata, scrapeBooks, scrapeLogoutUrl };
export { scrapeHighlightsForBook, scrapeBookMetadata, scrapeBooks, scrapeLogoutUrl, clearSessionData };
1 change: 1 addition & 0 deletions src/scraper/loadRemoteDom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const loadRemoteDom = async (targetUrl: string, timeout = 0): Promise<Dom
webPreferences: {
webSecurity: false,
nodeIntegration: false,
partition: 'persist:kindle-highlights',
},
show: false,
});
Expand Down
25 changes: 25 additions & 0 deletions src/scraper/session.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { BrowserWindow, remote } from 'electron';
const { BrowserWindow: RemoteBrowserWindow } = remote;

const clearSessionData = (): Promise<boolean> => {
const window: BrowserWindow = new RemoteBrowserWindow({
width: 1000,
height: 600,
webPreferences: {
webSecurity: false,
nodeIntegration: false,
partition: 'persist:kindle-highlights',
},
show: false,
});

return window.webContents.session.clearStorageData()
.then(() => {
return Promise.resolve(true);
}).catch(() => {
return Promise.resolve(false);
});
}


export default clearSessionData;
12 changes: 2 additions & 10 deletions src/settings/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ import { get } from 'svelte/store';

import type KindlePlugin from '~/.';
import { AmazonRegions, orderedAmazonRegions } from '~/amazonRegion';
import AmazonLogoutModal from '~/components/amazonLogoutModal';
import { ee } from '~/eventEmitter';
import type FileManager from '~/fileManager';
import type { AmazonAccountRegion } from '~/models';
import { scrapeLogoutUrl } from '~/scraper';
import { clearSessionData } from '~/scraper';
import { settingsStore } from '~/store';

import TemplateEditorModal from './templateEditorModal';
Expand Down Expand Up @@ -80,14 +79,7 @@ export class SettingsTab extends PluginSettingTab {
ee.emit('startLogout');

try {
const signout = await scrapeLogoutUrl();

// User is still logged in
if (signout.isStillLoggedIn) {
const modal = new AmazonLogoutModal(signout.url);
await modal.doLogout();
}

await clearSessionData();
settingsStore.actions.logout();
} catch (error) {
console.error('Error when trying to logout', error);
Expand Down