fix login error

This commit is contained in:
wanxp 2022-11-12 16:58:20 +08:00
parent 23daffa699
commit 99eb83d4b5
14 changed files with 90 additions and 10 deletions

@ -71,6 +71,11 @@ export const PersonNameModeRecords: { [key in PersonNameMode]: string } = {
[PersonNameMode.CH_EN_NAME]: i18nHelper.getMessage('121208'),
}
export enum SyncType {
MY_MOVIE= 'MY_MOVIE',
MY_BOOK= 'MY_BOOK',
BROADCAST= 'BROADCAST',
}

@ -29,6 +29,9 @@ export default class DoubanLoginModel {
this.modal.setTitle(i18nHelper.getMessage('100101'));
this.modal.show();
});
this.modal.on('closed', () => {
constructDoubanTokenSettingsUI(this.containerEl, this.settingsManager);
});
const session = this.modal.webContents.session;
const filter = {
@ -40,10 +43,11 @@ export default class DoubanLoginModel {
// const wr_name = cookieArr.find((cookie) => cookie.name == 'wr_name').value;
if (cookieArr) {
let user = await settingsManager.plugin.userComponent.loginCookie(cookieArr);
constructDoubanTokenSettingsUI(containerEl, settingsManager);
this.modal.close();
if (user && user.login) {
this.onClose();
}
} else {
this.modal.reload();
this.onReload();
}
});
}
@ -63,4 +67,8 @@ export default class DoubanLoginModel {
onClose() {
this.modal.close();
}
onReload() {
this.modal.reload();
}
}

@ -26,21 +26,26 @@ export default class DoubanLogoutModel {
this.modal.setTitle(i18nHelper.getMessage('100101'));
this.modal.show();
});
this.modal.on('closed', () => {
constructDoubanTokenSettingsUI(this.containerEl, this.settingsManager);
});
const session = this.modal.webContents.session;
const filter = {
urls: ['https://www.douban.com/']
urls: ['https://www.douban.com/',
'https://www.douban.com/accounts/logout']
};
session.webRequest.onCompleted(filter, (details:any) => {
if (details.statusCode == 200) {
session.webRequest.onSendHeaders(filter, (details:any) => {
const cookies = details.requestHeaders['Cookie'];
// const wr_name = cookieArr.find((cookie) => cookie.name == 'wr_name').value;
if (cookies && cookies.indexOf('dbcl2') < 0) {
this.settingsManager.plugin.userComponent.logout();
constructDoubanTokenSettingsUI(this.containerEl, this.settingsManager);
this.modal.close();
this.onClose();
}
});
}
async doLogout() {
await this.modal.loadURL('https://www.douban.com/');
await this.modal.loadURL('https://www.douban.com/accounts/logout?source=main&ck=DfFJ');
}
onClose() {

@ -0,0 +1,57 @@
import {App, DropdownComponent, Modal, TextComponent} from "obsidian";
import DoubanPlugin from "main";
import {i18nHelper} from "src/lang/helper";
import HandleContext from "@App/data/model/HandleContext";
export class DoubanSearchModal extends Modal {
searchTerm: string;
plugin: DoubanPlugin;
context: HandleContext
constructor(app: App, plugin: DoubanPlugin, context: HandleContext) {
super(app);
this.plugin = plugin;
this.context = context;
}
onOpen() {
let {contentEl} = this;
contentEl.createEl("h3", {text: i18nHelper.getMessage('500001')});
const inputs = contentEl.createDiv("inputs");
// const syncTypeDropdown = new DropdownComponent(contentEl)
// .addOptions();
const controls = contentEl.createDiv("controls");
const searchButton = controls.createEl("button", {
text: i18nHelper.getMessage('110004'),
cls: "mod-cta",
attr: {
autofocus: true,
},
});
searchButton.addClass("obsidian_douban_search_button");
searchButton.addEventListener("click", this.close.bind(this));
const cancelButton = controls.createEl("button", {text: i18nHelper.getMessage('110005')});
cancelButton.addEventListener("click", this.close.bind(this));
cancelButton.addClass("obsidian_douban_search_button");
}
async onClose() {
let {contentEl} = this;
contentEl.empty();
if (this.searchTerm) {
await this.plugin.search(this.searchTerm, this.context);
}
}
}

@ -153,7 +153,6 @@ ${i18nHelper.getMessage('100125')}`;
button.setDisabled(true);
const loginModel = new DoubanLogoutModel(containerEl, manager);
await loginModel.doLogout();
button.setDisabled(false);
});
});
}
@ -180,6 +179,7 @@ ${i18nHelper.getMessage('100125')}`;
.setButtonText(i18nHelper.getMessage('100128'))
.setCta()
.onClick(async () => {
button.setDisabled(true);
manager.updateSetting('loginCookiesContent', '');
constructDoubanTokenSettingsUI(containerEl, manager);
});

@ -403,6 +403,10 @@ export default {
'160229': `Comment`,
'160230': `Rate Date`,
'500001': `Sync Config`,
'ALL': `all`,
'MOVIE': `movie`,
'BOOK': `book`,

@ -426,6 +426,7 @@ export default {
'160229': `我的评论`,
'160230': `我的评论/标记的日期`,
'500001': `同步设置`,
'ALL': `全部类型`,