mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-04 08:38:41 +08:00
feature: theater
feature: imageData.url
This commit is contained in:
parent
240f71f635
commit
6c52606417
@ -79,6 +79,7 @@
|
||||
| type | 类型 | 类型 | 类型 | 类型 | 类型 | 类型 | - |
|
||||
| score | 评分 | 评分 | 评分 | 评分 | 评分 | 评分 | - |
|
||||
| image | 封面 | 封面 | 封面 | 封面 | 图片 | 封面 | - |
|
||||
| imageData.url | 封面url | 封面url | 封面url | 封面url | 封面url | 封面url | - |
|
||||
| url | 豆瓣网址 | 豆瓣网址 | 豆瓣网址 | 豆瓣网址 | 豆瓣网址 | 豆瓣网址 | - |
|
||||
| desc | 简介 | 简介 | 内容简介 | 简介 | 简介 | 简介 | - |
|
||||
| publisher | - | - | 出版社 | 出版者 | 发布者 | 发行商 | - |
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-douban-plugin",
|
||||
"name": "Douban",
|
||||
"version": "1.8.8",
|
||||
"version": "1.8.9",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "This is a plugin that can import movies/books/musics/notes/games info data from Douban for Obsidian .",
|
||||
"author": "Wanxp",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "obsidian-douban-plugin",
|
||||
"version": "1.8.8",
|
||||
"version": "1.8.9",
|
||||
"description": "This is a plugin for Obsidian (https://obsidian.md) that can import data from Douban (https://www.douban.com/).",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
@ -104,6 +104,7 @@ export enum SupportType {
|
||||
NOTE = 'NOTE',
|
||||
GAME = 'GAME',
|
||||
TELEPLAY = 'TELEPLAY',
|
||||
THEATER = 'THEATER',
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,6 +178,7 @@ export const DoubanSearchResultSubjectPreviousPage:DoubanSearchResultSubject = {
|
||||
genre: [],
|
||||
id: "",
|
||||
image: "",
|
||||
imageUrl: "",
|
||||
publisher: "",
|
||||
score: 0,
|
||||
title: i18nHelper.getMessage("150102"),
|
||||
@ -191,6 +193,7 @@ export const DoubanSearchResultSubjectNextPage:DoubanSearchResultSubject = {
|
||||
genre: [],
|
||||
id: "",
|
||||
image: "",
|
||||
imageUrl: "",
|
||||
publisher: "",
|
||||
score: 0,
|
||||
title: i18nHelper.getMessage("150103"),
|
||||
@ -205,6 +208,7 @@ export const DoubanSearchResultSubjectNextPageNeedLogin:DoubanSearchResultSubjec
|
||||
genre: [],
|
||||
id: "",
|
||||
image: "",
|
||||
imageUrl: "",
|
||||
publisher: "",
|
||||
score: 0,
|
||||
title: i18nHelper.getMessage("150104"),
|
||||
|
||||
@ -58,6 +58,13 @@ export const DoubanSubjectStateRecords_TELEPLAY: { [key in DoubanSubjectState]:
|
||||
[DoubanSubjectState.collect]: i18nHelper.getMessage('500704'),
|
||||
}
|
||||
|
||||
export const DoubanSubjectStateRecords_THEATER: { [key in DoubanSubjectState]: string } = {
|
||||
[DoubanSubjectState.not]: i18nHelper.getMessage('500701'),
|
||||
[DoubanSubjectState.wish]: i18nHelper.getMessage('500702'),
|
||||
[DoubanSubjectState.do]: i18nHelper.getMessage('500703'),
|
||||
[DoubanSubjectState.collect]: i18nHelper.getMessage('500704'),
|
||||
}
|
||||
|
||||
export const DoubanSubjectStateRecords: { [key in SupportType]: Record<DoubanSubjectState, string> } = {
|
||||
[SupportType.ALL]:DoubanSubjectStateRecords_ALL,
|
||||
[SupportType.MOVIE]:DoubanSubjectStateRecords_MOVIE,
|
||||
@ -66,6 +73,7 @@ export const DoubanSubjectStateRecords: { [key in SupportType]: Record<DoubanSub
|
||||
[SupportType.NOTE]:DoubanSubjectStateRecords_NOTE,
|
||||
[SupportType.GAME]:DoubanSubjectStateRecords_GAME,
|
||||
[SupportType.TELEPLAY]:DoubanSubjectStateRecords_TELEPLAY,
|
||||
[SupportType.THEATER]:DoubanSubjectStateRecords_THEATER,
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -284,6 +284,7 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
||||
.replaceAll(DoubanParameter.TYPE, extract.type)
|
||||
.replaceAll(DoubanParameter.SCORE, this.handleSpecialContent(extract.score))
|
||||
.replaceAll(DoubanParameter.IMAGE, extract.image)
|
||||
.replaceAll(DoubanParameter.IMAGE_URL, extract.imageUrl)
|
||||
.replaceAll(DoubanParameter.URL, extract.url)
|
||||
.replaceAll(DoubanParameter.DESC, this.handleSpecialContent(extract.desc, textMode))
|
||||
.replaceAll(DoubanParameter.PUBLISHER, extract.publisher)
|
||||
|
||||
@ -112,6 +112,7 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
author: author,
|
||||
translator: valueMap.has('translator') ? valueMap.get('translator') : [],
|
||||
image: image,
|
||||
imageUrl: image,
|
||||
datePublished: valueMap.has('datePublished') ? new Date(valueMap.get('datePublished')) : undefined,
|
||||
isbn: isbn,
|
||||
publisher: valueMap.has('publisher') ? valueMap.get('publisher') : "",
|
||||
|
||||
@ -95,6 +95,7 @@ export default class DoubanGameLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
url: url,
|
||||
genre: valueMap.has('genre') ? valueMap.get('genre') : [],
|
||||
image: image,
|
||||
imageUrl: image,
|
||||
datePublished: valueMap.has('datePublished') ? new Date(valueMap.get('datePublished')) : undefined,
|
||||
publisher: valueMap.has('publisher') ? valueMap.get('publisher') : "",
|
||||
score: Number(score),
|
||||
|
||||
@ -94,6 +94,7 @@ export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
aggregateRating: obj.aggregateRating,
|
||||
datePublished: obj.datePublished ? new Date(obj.datePublished) : undefined,
|
||||
image: obj.image,
|
||||
imageUrl: obj.image,
|
||||
genre: obj.genre,
|
||||
publisher: '',
|
||||
aliases: [""],
|
||||
|
||||
@ -86,6 +86,7 @@ export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
|
||||
const result: DoubanMusicSubject = {
|
||||
image: image,
|
||||
imageUrl: image,
|
||||
datePublished: valueMap.has('datePublished') ? new Date(valueMap.get('datePublished')) : undefined,
|
||||
publisher: valueMap.has('publisher') ? valueMap.get('publisher') : "",
|
||||
score: Number(score),
|
||||
|
||||
@ -53,6 +53,7 @@ export default class DoubanNoteLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
|
||||
const result: DoubanNoteSubject = {
|
||||
image: image,
|
||||
imageUrl: image,
|
||||
datePublished: timePublished ? new Date(timePublished) : undefined,
|
||||
content: content ? html2markdown(content.toString()) : "",
|
||||
id: id ? id[0] : "",
|
||||
|
||||
@ -29,10 +29,12 @@ export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
}
|
||||
|
||||
parseSubjectFromHtml(data: CheerioAPI, context: HandleContext): DoubanSubject {
|
||||
log.notice(i18nHelper.getMessage('140101'));
|
||||
return undefined;
|
||||
}
|
||||
|
||||
analysisUser(html: CheerioAPI, context: HandleContext): { data: CheerioAPI; userState: UserStateSubject } {
|
||||
log.notice(i18nHelper.getMessage('140101'));
|
||||
return {data: undefined, userState: undefined};
|
||||
}
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import {DoubanTeleplayLoadHandler} from "./DoubanTeleplayLoadHandler";
|
||||
import DoubanGameLoadHandler from "./DoubanGameLoadHandler";
|
||||
import HandleContext from "../model/HandleContext";
|
||||
import HandleResult from "../model/HandleResult";
|
||||
import DoubanTheaterLoadHandler from "./DoubanTheaterLoadHandler";
|
||||
|
||||
export class DoubanSearchChooseItemHandler {
|
||||
|
||||
@ -30,7 +31,7 @@ export class DoubanSearchChooseItemHandler {
|
||||
new DoubanMusicLoadHandler(doubanPlugin),
|
||||
new DoubanNoteLoadHandler(doubanPlugin),
|
||||
new DoubanGameLoadHandler(doubanPlugin),
|
||||
|
||||
new DoubanTheaterLoadHandler(doubanPlugin),
|
||||
this._doubanSubjectHandlerDefault];
|
||||
}
|
||||
|
||||
|
||||
@ -94,6 +94,7 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler<DoubanT
|
||||
aggregateRating: obj.aggregateRating,
|
||||
datePublished: obj.datePublished ? new Date(obj.datePublished) : undefined,
|
||||
image: obj.image,
|
||||
imageUrl: obj.image,
|
||||
genre: obj.genre,
|
||||
score: obj.aggregateRating ? obj.aggregateRating.ratingValue : undefined,
|
||||
publisher: "",
|
||||
|
||||
149
src/org/wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts
Normal file
149
src/org/wanxp/douban/data/handler/DoubanTheaterLoadHandler.ts
Normal file
@ -0,0 +1,149 @@
|
||||
import {CheerioAPI} from 'cheerio';
|
||||
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
||||
import DoubanPlugin from "../../../main";
|
||||
import SchemaOrg from "src/org/wanxp/utils/SchemaOrg";
|
||||
import DoubanSubject from '../model/DoubanSubject';
|
||||
import DoubanMovieSubject from '../model/DoubanMovieSubject';
|
||||
import StringUtil from "../../../utils/StringUtil";
|
||||
import HandleContext from "../model/HandleContext";
|
||||
import {PersonNameMode, SupportType, TemplateKey} from "../../../constant/Constsant";
|
||||
import {UserStateSubject} from "../model/UserStateSubject";
|
||||
import {moment} from "obsidian";
|
||||
import YamlUtil, {SPECIAL_CHAR_REG, TITLE_ALIASES_SPECIAL_CHAR_REG_G} from "../../../utils/YamlUtil";
|
||||
import { Person } from 'schema-dts';
|
||||
|
||||
export default class DoubanTheaterLoadHandler extends DoubanAbstractLoadHandler<DoubanMovieSubject> {
|
||||
|
||||
constructor(doubanPlugin: DoubanPlugin) {
|
||||
super(doubanPlugin);
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.THEATER;
|
||||
}
|
||||
|
||||
getHighQuantityImageUrl(fileName:string):string{
|
||||
return `https://img9.doubanio.com/view/photo/l/public/${fileName}`;
|
||||
}
|
||||
|
||||
parseText(beforeContent: string, extract: DoubanMovieSubject, context: HandleContext): string {
|
||||
const {settings} = context;
|
||||
return beforeContent
|
||||
.replaceAll("{{originalTitle}}", extract.originalTitle ? extract.originalTitle : "")
|
||||
.replaceAll("{{director}}", extract.director ? extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{actor}}", extract.actor ? extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{author}}", extract.author ? extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{aliases}}", extract.aliases ? extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{country}}", extract.country ? extract.country.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{language}}", extract.language ? extract.language.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{IMDb}}", extract.IMDb ? extract.IMDb : "")
|
||||
.replaceAll("{{time}}", extract.time ? extract.time : "")
|
||||
;
|
||||
}
|
||||
|
||||
support(extract: DoubanSubject): boolean {
|
||||
return extract && extract.type && (extract.type.contains("舞台剧") || extract.type.contains("舞剧") || extract.type.contains("Theater") || extract.type.contains("theater"));
|
||||
}
|
||||
|
||||
analysisUser(html: CheerioAPI, context: HandleContext): {data:CheerioAPI , userState: UserStateSubject} {
|
||||
let rate = html('input#n_rating').val();
|
||||
let tagsStr = html('div#interest_sect_level > div.a_stars > span.color_gray').text().trim();
|
||||
let tags = tagsStr ? tagsStr.replace('标签:', '').trim().split(' ') : null;
|
||||
let stateWord = html('div#interest_sect_level > div.a_stars > span.mr10').text().trim();
|
||||
let collectionDateStr = html('div#interest_sect_level > div.a_stars > span.mr10 > span.collection_date').text().trim();
|
||||
let userState1 = DoubanAbstractLoadHandler.getUserState(stateWord);
|
||||
let component = html('div#interest_sect_level > div.a_stars > span.color_gray').next().next().text().trim();
|
||||
|
||||
|
||||
const userState: UserStateSubject = {
|
||||
tags: tags,
|
||||
rate: rate?Number(rate):null,
|
||||
state: userState1,
|
||||
collectionDate: collectionDateStr?moment(collectionDateStr, 'YYYY-MM-DD').toDate():null,
|
||||
comment: component
|
||||
}
|
||||
return {data: html, userState: userState};
|
||||
}
|
||||
|
||||
|
||||
parseSubjectFromHtml(html: CheerioAPI, context: HandleContext): DoubanMovieSubject {
|
||||
const movie:DoubanMovieSubject = html('script')
|
||||
.get()
|
||||
.filter(scd => "application/ld+json" == html(scd).attr("type"))
|
||||
.map(i => {
|
||||
let item = html(i).text();
|
||||
item = super.html_decode(item);
|
||||
let obj = JSON.parse(item.replace(/[\r\n\s+]/g, ''));
|
||||
let idPattern = /(\d){5,10}/g;
|
||||
let id = idPattern.exec(obj.url);
|
||||
let name = obj.name;
|
||||
let title = super.getTitleNameByMode(name, PersonNameMode.CH_NAME, context)??name;
|
||||
let originalTitle = super.getTitleNameByMode(name, PersonNameMode.EN_NAME, context) ?? name;
|
||||
|
||||
const result: DoubanMovieSubject = {
|
||||
id: id ? id[0] : '',
|
||||
title: title,
|
||||
type: 'Movie',
|
||||
score: obj.aggregateRating ? obj.aggregateRating.ratingValue : undefined,
|
||||
originalTitle: originalTitle,
|
||||
desc: obj.description,
|
||||
url: "https://movie.douban.com" + obj.url,
|
||||
director: obj.director,
|
||||
author: obj.author,
|
||||
actor: obj.actor,
|
||||
aggregateRating: obj.aggregateRating,
|
||||
datePublished: obj.datePublished ? new Date(obj.datePublished) : undefined,
|
||||
image: obj.image,
|
||||
imageUrl: obj.image,
|
||||
genre: obj.genre,
|
||||
publisher: '',
|
||||
aliases: [""],
|
||||
language: [""],
|
||||
country: [],
|
||||
time: null,
|
||||
IMDb: null,
|
||||
}
|
||||
return result;
|
||||
})[0];
|
||||
this.handlePersonNameByMeta(html, movie, context, 'video:actor', 'actor');
|
||||
this.handlePersonNameByMeta(html, movie, context, 'video:director', 'director');
|
||||
|
||||
let detailDom = html(html("#info").get(0));
|
||||
let publish = detailDom.find("span.pl");
|
||||
|
||||
let valueMap = new Map<string, any>();
|
||||
|
||||
publish.map((index, info) => {
|
||||
let key = html(info).text().trim();
|
||||
let value;
|
||||
if (key.indexOf('又名') >= 0 || key.indexOf('语言') >= 0 || key.indexOf('制片国家') >= 0) {
|
||||
// value = html(info.next.next).text().trim();
|
||||
let vas = html(info.next).text().trim();
|
||||
value = vas.split("/").map((v) => v.trim());
|
||||
} else if(key.indexOf('片长') >= 0) {
|
||||
value = html(info.next.next).text().trim()
|
||||
} else {
|
||||
value = html(info.next).text().trim();
|
||||
}
|
||||
valueMap.set(MovieKeyValueMap.get(key), value);
|
||||
})
|
||||
|
||||
movie.country = valueMap.has('country') ? valueMap.get('country') : [];
|
||||
movie.language = valueMap.has('language') ? valueMap.get('language') : [];
|
||||
movie.time = valueMap.has('time') ? valueMap.get('time') : "";
|
||||
movie.aliases = valueMap.has('aliases') ? valueMap.get('aliases') : [];
|
||||
movie.IMDb = valueMap.has('IMDb') ? valueMap.get('IMDb') : "";
|
||||
return movie;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
const MovieKeyValueMap: Map<string, string> = new Map(
|
||||
[['制片国家/地区:', 'country'],
|
||||
['语言:', 'language'],
|
||||
['片长:', 'time'],
|
||||
['又名:', 'aliases'],
|
||||
['IMDb:', 'IMDb']
|
||||
]
|
||||
);
|
||||
@ -6,6 +6,7 @@ export default class DoubanSubject {
|
||||
type: string;
|
||||
score: number;
|
||||
image: string;
|
||||
imageUrl: string;
|
||||
url: string;
|
||||
desc: string;
|
||||
publisher: string;
|
||||
@ -24,6 +25,7 @@ export const DoubanParameter = {
|
||||
TYPE: '{{type}}',
|
||||
SCORE: '{{score}}',
|
||||
IMAGE: '{{image}}',
|
||||
IMAGE_URL: '{{imageData.url}}',
|
||||
URL: '{{url}}',
|
||||
DESC: '{{desc}}',
|
||||
PUBLISHER: '{{publisher}}',
|
||||
|
||||
13
src/org/wanxp/douban/data/model/DoubanTheaterSubject.ts
Normal file
13
src/org/wanxp/douban/data/model/DoubanTheaterSubject.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {AggregateRating, Person} from 'schema-dts';
|
||||
|
||||
import DoubanSubject from "./DoubanSubject";
|
||||
|
||||
export default class DoubanTheaterSubject extends DoubanSubject {
|
||||
director: string[];
|
||||
author: string[];
|
||||
actor: string[];
|
||||
aggregateRating: AggregateRating;
|
||||
originalTitle: string;
|
||||
aliases: string[];
|
||||
language: string[];
|
||||
}
|
||||
@ -29,6 +29,7 @@ export default class SearchParserHandler {
|
||||
desc: desc ? desc : '-',
|
||||
url: urlResult ? decodeURIComponent(urlResult[0]) : 'https://www.douban.com',
|
||||
image: "",
|
||||
imageUrl: "",
|
||||
publisher: "",
|
||||
datePublished: undefined,
|
||||
genre: []
|
||||
|
||||
@ -72,6 +72,16 @@ ${i18nHelper.getMessage('122004')}
|
||||
<td>${i18nHelper.getMessage('310605')}</td>
|
||||
<td>${i18nHelper.getMessage('310705')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>imageData.url</td>
|
||||
<td>${i18nHelper.getMessage('310121')}</td>
|
||||
<td>${i18nHelper.getMessage('310221')}</td>
|
||||
<td>${i18nHelper.getMessage('310321')}</td>
|
||||
<td>${i18nHelper.getMessage('310421')}</td>
|
||||
<td>${i18nHelper.getMessage('310521')}</td>
|
||||
<td>${i18nHelper.getMessage('310621')}</td>
|
||||
<td>${i18nHelper.getMessage('310721')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url</td>
|
||||
<td>${i18nHelper.getMessage('310106')}</td>
|
||||
|
||||
@ -5,6 +5,8 @@ import {log} from "../../utils/Logutil";
|
||||
import {i18nHelper} from "../../lang/helper";
|
||||
import User from "./User";
|
||||
import StringUtil from "../../utils/StringUtil";
|
||||
import {DEFAULT_SETTINGS} from "../../constant/DefaultSettings";
|
||||
import {doubanHeaders} from "../../constant/Douban";
|
||||
|
||||
export default class UserComponent {
|
||||
private settingsManager: SettingsManager;
|
||||
@ -75,19 +77,30 @@ export default class UserComponent {
|
||||
return this.user;
|
||||
}
|
||||
|
||||
|
||||
async loadUserInfo(cookie: any): Promise<User> {
|
||||
const headers1 = {
|
||||
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
|
||||
'Accept-Language': 'zh-CN,zh;q=0.9',
|
||||
'Cookie': 'll="118254"; bid=e3SJhuRaDoQ; _pk_id.100001.8cb4=0b044d4d91fdda7d.1689002992.; ap_v=0,6.0; __yadk_uid=7Eg5yv2X4YarGEeH16Tm4fYL49PdGNcN; push_noty_num=0; push_doumail_num=0; __utmv=30149280.16378; _pk_ref.100001.8cb4=%5B%22%22%2C%22%22%2C1689007676%2C%22https%3A%2F%2Fwww.google.com%2F%22%5D; _pk_ses.100001.8cb4=1; __utma=30149280.2026487677.1689002992.1689002992.1689007676.2; __utmc=30149280; __utmz=30149280.1689007676.2.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utmt=1; dbcl2="163783265:gitjSogzBf4"; ck=-hBQ; __gads=ID=df3cc2947f6dddaa-2255abc9a2e200c3:T=1689004292:RT=1689007691:S=ALNI_MZZ0HVSzWxK28Qd8yN2KGJNkdthHA; __gpi=UID=00000c1f8aeb6832:T=1689004292:RT=1689007691:S=ALNI_MYsS7sKea87clnkc-vWGArdV8O6gQ; __utmb=30149280.7.10.1689007676',
|
||||
'Referer': 'https://accounts.douban.com/',
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
|
||||
}
|
||||
// Object.assign(headers, doubanHeaders, {'Cookie': cookie}, {'Referer': 'https://accounts.douban.com/'})
|
||||
let requestUrlParam: RequestUrlParam = {
|
||||
url: 'https://www.douban.com/mine/',
|
||||
method: "GET",
|
||||
headers: {'Cookie': cookie},
|
||||
headers: headers1,
|
||||
throw: true
|
||||
};
|
||||
this.settingsManager.debug('loadUserInfo:尝试获取用户信息:https://www.douban.com/mine/');
|
||||
return request(requestUrlParam)
|
||||
.then(requestUrlResponse => {
|
||||
if (requestUrlResponse.indexOf('https://sec.douban.com/a') > 0) {
|
||||
this.settingsManager.debug(`loadUserInfo:登录Douban获取异常网页如下:\n${requestUrlResponse}`);
|
||||
throw new Error(i18nHelper.getMessage('130105'));
|
||||
}
|
||||
this.settingsManager.debug(`loadUserInfo:登录Douban获取网页如下:\n${requestUrlResponse}`);
|
||||
return requestUrlResponse;
|
||||
})
|
||||
.then(load)
|
||||
|
||||
@ -296,7 +296,7 @@ PS: This file could be delete if you want to.
|
||||
'310102': `书名`,
|
||||
'310103': `类型`,
|
||||
'310104': `评分`,
|
||||
'310105': `封面URL`,
|
||||
'310105': `封面路径`,
|
||||
'310106': `豆瓣网址`,
|
||||
'310107': `内容简介`,
|
||||
'310108': `出版社`,
|
||||
@ -313,6 +313,8 @@ PS: This file could be delete if you want to.
|
||||
'310119': `-`,
|
||||
'310120': `-`,
|
||||
'310130': `出版年份`,
|
||||
'310121': `封面URL`,
|
||||
|
||||
|
||||
|
||||
//电影
|
||||
@ -320,7 +322,7 @@ PS: This file could be delete if you want to.
|
||||
'310202': `电影名称`,
|
||||
'310203': `类型`,
|
||||
'310204': `评分`,
|
||||
'310205': `封面`,
|
||||
'310205': `封面路径`,
|
||||
'310206': `豆瓣网址`,
|
||||
'310207': `简介`,
|
||||
'310208': ``,
|
||||
@ -337,13 +339,14 @@ PS: This file could be delete if you want to.
|
||||
'310219': `IMDb`,
|
||||
'310220': `-`,
|
||||
'310230': `上映年份`,
|
||||
'310221': `封面URL`,
|
||||
|
||||
//电视剧
|
||||
'310301': `豆瓣ID`,
|
||||
'310302': `电视剧名称`,
|
||||
'310303': `类型`,
|
||||
'310304': `评分`,
|
||||
'310305': `封面`,
|
||||
'310305': `封面路径`,
|
||||
'310306': `豆瓣网址`,
|
||||
'310307': `简介`,
|
||||
'310308': ``,
|
||||
@ -360,6 +363,7 @@ PS: This file could be delete if you want to.
|
||||
'310319': `IMDb`,
|
||||
'310320': `episode:集数`,
|
||||
'310330': `上映年份`,
|
||||
'310321': `封面URL`,
|
||||
|
||||
|
||||
//音乐
|
||||
@ -367,7 +371,7 @@ PS: This file could be delete if you want to.
|
||||
'310402': `音乐名`,
|
||||
'310403': `类型`,
|
||||
'310404': `评分`,
|
||||
'310405': `封面`,
|
||||
'310405': `封面路径`,
|
||||
'310406': `豆瓣网址`,
|
||||
'310407': `简介`,
|
||||
'310408': `出版者`,
|
||||
@ -384,13 +388,14 @@ PS: This file could be delete if you want to.
|
||||
'310419': `-`,
|
||||
'310420': `-`,
|
||||
'310430': `发行年份`,
|
||||
'310421': `封面URL`,
|
||||
|
||||
//日记
|
||||
'310501': `豆瓣ID`,
|
||||
'310502': `日记标题`,
|
||||
'310503': `类型`,
|
||||
'310504': `评分`,
|
||||
'310505': `图片`,
|
||||
'310505': `封面路径`,
|
||||
'310506': `豆瓣网址`,
|
||||
'310507': `简介`,
|
||||
'310508': `发布者`,
|
||||
@ -407,13 +412,14 @@ PS: This file could be delete if you want to.
|
||||
'310519': `-`,
|
||||
'310520': `-`,
|
||||
'310530': `发布年份`,
|
||||
'310521': `封面URL`,
|
||||
|
||||
//游戏
|
||||
'310601': `豆瓣ID`,
|
||||
'310602': `游戏名称`,
|
||||
'310603': `类型`,
|
||||
'310604': `评分`,
|
||||
'310605': `封面`,
|
||||
'310605': `封面路径`,
|
||||
'310606': `豆瓣网址`,
|
||||
'310607': `简介`,
|
||||
'310608': `发行商`,
|
||||
@ -430,6 +436,7 @@ PS: This file could be delete if you want to.
|
||||
'310619': `-`,
|
||||
'310620': `-`,
|
||||
'310630': `发行年份`,
|
||||
'310621': `封面URL`,
|
||||
|
||||
//广播
|
||||
'310701': `待开发`,
|
||||
@ -453,6 +460,7 @@ PS: This file could be delete if you want to.
|
||||
'310719': `-`,
|
||||
'310720': `-`,
|
||||
'310730': `-`,
|
||||
'310721': `封面URL`,
|
||||
|
||||
|
||||
'320101': `扩展1`,
|
||||
|
||||
@ -314,7 +314,7 @@ export default {
|
||||
'310102': `书名`,
|
||||
'310103': `类型`,
|
||||
'310104': `评分`,
|
||||
'310105': `封面URL`,
|
||||
'310105': `封面路径`,
|
||||
'310106': `豆瓣网址`,
|
||||
'310107': `内容简介`,
|
||||
'310108': `出版社`,
|
||||
@ -329,13 +329,15 @@ export default {
|
||||
'310117': `binding:装帧`,
|
||||
'310118': `producer:出品方`,
|
||||
'310130': `出版年份`,
|
||||
'310121': `封面URL`,
|
||||
|
||||
|
||||
//电影
|
||||
'310201': `豆瓣ID`,
|
||||
'310202': `电影名称`,
|
||||
'310203': `类型`,
|
||||
'310204': `评分`,
|
||||
'310205': `封面`,
|
||||
'310205': `封面路径`,
|
||||
'310206': `豆瓣网址`,
|
||||
'310207': `简介`,
|
||||
'310208': ``,
|
||||
@ -352,13 +354,14 @@ export default {
|
||||
'310219': `IMDb`,
|
||||
'310220': `-`,
|
||||
'310230': `上映年份`,
|
||||
'310221': `封面URL`,
|
||||
|
||||
//电视剧
|
||||
'310301': `豆瓣ID`,
|
||||
'310302': `电视剧名称`,
|
||||
'310303': `类型`,
|
||||
'310304': `评分`,
|
||||
'310305': `封面`,
|
||||
'310305': `封面路径`,
|
||||
'310306': `豆瓣网址`,
|
||||
'310307': `简介`,
|
||||
'310308': `(固定值:未知)`,
|
||||
@ -375,6 +378,7 @@ export default {
|
||||
'310319': `IMDb`,
|
||||
'310320': `episode:集数`,
|
||||
'310330': `上映年份`,
|
||||
'310321': `封面URL`,
|
||||
|
||||
|
||||
//音乐
|
||||
@ -382,7 +386,7 @@ export default {
|
||||
'310402': `音乐名`,
|
||||
'310403': `类型`,
|
||||
'310404': `评分`,
|
||||
'310405': `封面`,
|
||||
'310405': `封面路径`,
|
||||
'310406': `豆瓣网址`,
|
||||
'310407': `简介`,
|
||||
'310408': `出版者`,
|
||||
@ -397,13 +401,15 @@ export default {
|
||||
'310417': `-`,
|
||||
'310418': `-`,
|
||||
'310430': `发行年份`,
|
||||
'310421': `封面URL`,
|
||||
|
||||
|
||||
//日记
|
||||
'310501': `豆瓣ID`,
|
||||
'310502': `日记标题`,
|
||||
'310503': `类型`,
|
||||
'310504': `评分`,
|
||||
'310505': `图片`,
|
||||
'310505': `封面路径`,
|
||||
'310506': `豆瓣网址`,
|
||||
'310507': `简介`,
|
||||
'310508': `发布者`,
|
||||
@ -418,13 +424,14 @@ export default {
|
||||
'310517': `-`,
|
||||
'310518': `-`,
|
||||
'310530': `发布年份`,
|
||||
'310521': `封面URL`,
|
||||
|
||||
//游戏
|
||||
'310601': `豆瓣ID`,
|
||||
'310602': `游戏名称`,
|
||||
'310603': `类型`,
|
||||
'310604': `评分`,
|
||||
'310605': `封面`,
|
||||
'310605': `封面路径`,
|
||||
'310606': `豆瓣网址`,
|
||||
'310607': `简介`,
|
||||
'310608': `发行商`,
|
||||
@ -439,6 +446,8 @@ export default {
|
||||
'310617': `-`,
|
||||
'310618': `-`,
|
||||
'310630': `发行年份`,
|
||||
'310621': `封面URL`,
|
||||
|
||||
|
||||
//广播
|
||||
'310701': `待开发`,
|
||||
@ -460,6 +469,7 @@ export default {
|
||||
'310717': `-`,
|
||||
'310718': `-`,
|
||||
'310730': `-`,
|
||||
'310721': `封面URL`,
|
||||
|
||||
'320101': `扩展1`,
|
||||
'320102': `扩展2`,
|
||||
|
||||
@ -32,6 +32,8 @@
|
||||
"1.8.4": "0.12.0",
|
||||
"1.8.5": "0.12.0",
|
||||
"1.8.6": "0.12.0",
|
||||
"1.8.7": "0.12.0"
|
||||
"1.8.7": "0.12.0",
|
||||
"1.8.8": "0.12.0",
|
||||
"1.8.9": "0.12.0"
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user