Skip to content

Commit

Permalink
Merge commit 'cff1138677a70ebd5f58c375fa1e0d59e72fc345'
Browse files Browse the repository at this point in the history
  • Loading branch information
jiaojiaodubai committed Dec 16, 2023
2 parents 9ee2407 + cff1138 commit b61c934
Show file tree
Hide file tree
Showing 2 changed files with 164 additions and 10 deletions.
173 changes: 163 additions & 10 deletions Douban.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"translatorID": "fc353b26-8911-4c34-9196-f6f567c93901",
"label": "Douban",
"creator": "不是船长<[email protected]>, Ace Strong<[email protected]>, Zeping Lee",
"target": "^https?://(www|book)\\.douban\\.com/(subject|doulist|people/[a-zA-Z._]*/(do|wish|collect)|.*?status=(do|wish|collect)|group/[0-9]*?/collection|tag)",
"target": "^https?://(www|book|read)\\.douban\\.com/(subject|doulist|people/[a-zA-Z._]*/(do|wish|collect)|.*?status=(do|wish|collect)|group/[0-9]*?/collection|tag|ebook)",
"minVersion": "2.0rc1",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
"lastUpdated": "2022-10-28 08:35:39"
"lastUpdated": "2023-03-22 18:46:52"
}

/*
Expand Down Expand Up @@ -137,7 +137,7 @@ function processName(item, name, type, extraContents) {
};

// 去掉括号中的内容,如 "戴维 A.帕特森 (David A.Patterson)"
matched = name.match(/^(.*?)\s*\(([^(]*)\)$/);
matched = name.replace(//g, '(').replace(//g, ')').match(/^(.*?)\s*\(([^(]*)\)$/);
if (matched) {
name = matched[1];
let parenthetical = matched[2];
Expand Down Expand Up @@ -270,10 +270,19 @@ function transformChineseNumber(number) {
return res;
}

function isRead(url){
Z.debug(url);
if(url.includes('read.douban')){
return true;
}
return false;
}

function scrape(doc, url) {
// 类型 & URL
var itemType = "book";
var newItem = new Zotero.Item(itemType);
var read = isRead(url);
newItem.url = url;
let extraContents = [];

Expand All @@ -297,18 +306,59 @@ function scrape(doc, url) {
newItem.language = 'en';
}

let info = doc.querySelector('#info');
let info = doc.querySelector(read ? '.article-meta' : '#info');
let items = [];
let itemText = '';
for (let node of info.childNodes) {
if (node.tagName === 'BR') {
items.push(ZU.trimInternal(itemText));
itemText = '';
if(read){
for (let node of info.childNodes) {
if (node.tagName === 'P') {
let label = node.querySelector('.label').textContent;
let text = node.querySelector('.labeled-text').innerHTML;

mix_text = text.match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/g);
if(mix_text){
let contentInfo=[];
for (let i = 0; i < mix_text.length; i++) {
let match = mix_text[i].match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/);
contentInfo.push(match[1]);
}
text = contentInfo.join(" / ");
}else{
text = node.querySelector('.labeled-text').textContent;
}

if(label == '出版社'){
let m = text.match(/([^\/]*)\/(.+)/);
if (m){
text = m[1];
items.push(ZU.trimInternal('出版年:'+m[2]));
}
}
Z.debug(label+':'+text);

items.push(ZU.trimInternal(label+':'+text));
itemText = '';
}
else {
itemText += node.textContent;
}
}
else {
itemText += node.textContent;
let subtitle = doc.querySelector('.subtitle');
if(subtitle){
items.push(ZU.trimInternal('副标题:'+subtitle.textContent));
}
}else{
for (let node of info.childNodes) {
if (node.tagName === 'BR') {
items.push(ZU.trimInternal(itemText));
itemText = '';
}
else {
itemText += node.textContent;
}
}
}


for (let item of items) {
let parts = item.match(/^([^:]*):\s*(.*)$/);
Expand Down Expand Up @@ -407,6 +457,24 @@ function scrape(doc, url) {
note += ' - 目录</h1>\n' + toc.innerHTML;
newItem.notes.push({ note: note });
}
if(read){
let toc = doc.querySelector('.article-profile-intro.table-of-contents.collapse-context');
if(toc){
let text=toc.querySelector('.bd.collapse-content ol');
if(text){
text = text.innerText.replace(/\n/g, '<br>\n');
let note = '<h1>';
if (isChinese(title)) {
note += '《' + title + '》';
}
else {
note += '<i>' + title + '</i>';
}
note += ' - 目录</h1>\n' + text;
newItem.notes.push({ note: note });
}
}
}

// 标签
var tags = ZU.xpath(doc, '//div[@id="db-tags-section"]/div[@class="indent"]/span/a[contains(@class, "tag") ]');
Expand Down Expand Up @@ -443,6 +511,16 @@ function scrape(doc, url) {
contentInfoTwo = contentInfoTwo + RegExp.$1 + "\n";
}
}

if(read){
contentInfoList = doc.querySelector("div[itemprop='description']").querySelectorAll(".info");
if(contentInfoList && contentInfoList.length>1){
for(let i=0; i<contentInfoList.length-1; i++){
let contentInfo = contentInfoList[i].innerText.replace(/\n\n/g, '\n');
contentInfoTwo += contentInfo + "\n";
}
}
}

// let abstractNoteTemp = "作者简介:" + "\n" + authorInfotwo + "\n"
// +"内容简介:" + "\n" + contentInfoTwo;
Expand Down Expand Up @@ -1015,6 +1093,81 @@ var testCases = [
}
]
},
{
"type": "web",
"url": "https://read.douban.com/ebook/2383275/",
"items": [
{
"itemType": "book",
"title": "汽车是怎样跑起来的",
"creators": [
{
"lastName": "[日]御堀直嗣",
"creatorType": "author"
},
{
"lastName": "卢扬",
"creatorType": "translator"
}
],
"date": "2013-12",
"ISBN": "9787115330321",
"abstractNote": "本书从汽车的内部结构开始讲起,精选了大量手绘图与各知名汽车公司提供的照片,以图配文的形式详细讲解了汽油动力车、电动汽车和混合动力车的工作原理,同时开辟了“汽车辟谣”专栏,通过生动有趣的人物对话,澄清对汽车的种种误解。\n车为什么会跑?汽车会跑与人会走路一样,都是日常生活中再普通不过的事情了。正因如此,一旦被问及原因,反而不知该如何回答。\n从零开始讲解汽车的结构,需要花费很长时间。并且,各种新技术层出不穷,也迫使我们不得不重新认识汽车的行驶原理。多问几个“为什么”,我们就能感受到汽车的伟大和珍贵。",
"language": "zh",
"libraryCatalog": "Douban",
"publisher": "人民邮电出版社",
"url": "https://read.douban.com/ebook/2383275/",
"attachments": [],
"tags": [],
"notes": [
{
"note": "前言<br>\n第1章 汽车的五大要素<br>\n1.1汽车的五大要素<br>\n1.1.1行驶、转向和停车<br>\n1.1.2五大要素密切协作<br>\n1.2使汽车发动的物理原理<br>\n1.2.1汽车因热而动、因热而停<br>\n1.2.2轮胎也受“热”的影响<br>\n1.2.3借助作用力与反作用力转向<br>\n1.2.4充分利用物理原理采取安全措施<br>\n1.2.5汽车巧用物理<br>\n1.3汽车行驶、转向直至停车的过程<br>\n1.3.1动力传动系驱动汽车<br>\n1.3.2转向系统实现汽车转向<br>\n1.3.3制动液传递制动压力,使轮胎停止转动<br>\nColumn汽车辟谣 世界上最早的汽车真的是三轮车吗?<br>\n第1部分 汽油动力车篇<br>\n第2章 行驶——发动机是汽车的心脏<br>\n2.1启动发动机<br>\n2.1.1从点火开始<br>\n2.1.2四冲程发动机的结构<br>\n2.1.3将活塞的上下运动转化为曲轴的旋转<br>\n2.1.4启动发动机前先使曲轴转动<br>\n2.1.5用蓄电池供电<br>\n2.2将空气与汽油混合后的混合气体吸入发动机<br>\n2.2.1雾化汽油,生成混合气体<br>\n2.2.2将燃料注入汽缸的“燃料喷射”<br>\n2.2.3燃料喷射包括直接喷射和吸气管喷射<br>\n2.2.4空气和汽油的理想比例是14.7∶1<br>\n2.2.5在直喷中,需要形成旋涡才能很好地生成混合气体<br>\n2.2.6开启阀门,混合气体进入汽缸<br>\n2.2.7活塞上升,压缩混合气体<br>\n2.3压缩并引燃混合气体<br>\n2.3.1用电引燃混合气体<br>\n2.3.2从12伏到1万伏<br>\n2.3.3转动凸轮,开启阀门<br>\n2.3.4实现凸轮与活塞联动的装置<br>\n2.3.5曲轴和凸轮轴还会影响引燃时机<br>\n2.3.6不同形状的凸轮<br>\n2.3.7VTEC区别使用两个不同形状的凸轮<br>\n2.4净化废气,减小噪声<br>\n2.4.1废气的处理<br>\n2.4.2用贵金属净化废气<br>\n2.4.3废气既不能过热也不能过冷<br>\n2.4.4降低油耗的稀薄燃烧<br>\n2.4.5设置消音器迷宫,减小噪声<br>\n2.5改良发动机<br>\n2.5.1使发动机运转更顺畅 改良1:多缸发动机<br>\n2.5.2直列发动机和V型发动机<br>\n2.5.3使发动机运转更顺畅 改良2:飞轮<br>\n2.5.4使发动机运转更顺畅 改良3:平衡重<br>\n2.5.5使发动机运转更顺畅 改良4:机油<br>\n2.6从空转到提高发动机转速<br>\n2.6.1调节混合气体流量的油门<br>\n2.6.2用电控制空气量的线控油门<br>\n2.6.3没有油门,效率更高<br>\nColumn汽车辟谣 发动机的效率真的只有30%?<br>\n第3章 行驶——变速器利用齿轮改变力量<br>\n3.1离合器连接发动机和变速器<br>\n3.1.1将发动机旋转传递至轮胎的动力传动系<br>\n3.1.2利用离合器接合或分离变速器<br>\n3.2利用齿轮实现发动机的自由变速<br>\n3.2.1利用齿轮的减速增大发动机的旋转力<br>\n3.2.2变速器的齿轮将旋转力变至原来的4倍<br>\n3.2.3变换齿轮组,完成加速<br>\n3.2.4在所有齿轮啮合时切换齿轮<br>\n3.2.5行驶中无法实现齿轮的啮合<br>\n3.2.6利用同步啮合装置实现精准啮合<br>\n3.3从变速器到差速器<br>\n3.3.1将发动机的旋转力传递至万向节<br>\n3.3.2将旋转力从差速器传递到左右车轮<br>\n3.3.3差速器也能降低速度,增大动力<br>\n3.3.4利用差速器调整内侧和外侧的距离差<br>\n3.3.5连接差速器和轮胎的传动轴<br>\n3.4自动变速方式1:变矩器式<br>\n3.4.1自动变速器有三种<br>\n3.4.2液力变扭器像面对面摆放的两个风扇<br>\n3.4.3用导轮加快液体的流速<br>\n3.4.4离合器与液力变扭器强强联合<br>\n3.4.5使用三个齿轮的行星齿轮<br>\n3.4.6利用两个齿轮的组合进行齿轮切换<br>\n3.4.7行星齿轮也是利用齿轮的半径比进行变速<br>\n3.4.8利用离合器和制动器等驱动行星齿轮<br>\n3.5自动变速方式2:自动离合器式<br>\n3.6自动变速方式3:CVT<br>\nColumn汽车辟谣 汽车的最快速度与空气有关吗?<br>\n第4章 转向——借助轮胎和差速器顺利转向<br>\n4.1改变汽车方向的转向系统<br>\n4.1.1方向盘的转动带动齿轮工作<br>\n4.1.2动力转向系统借助助力实现轻松转向<br>\n4.2借助轮胎的变形和弯曲转向<br>\n4.2.1轮胎具有柔软性,可以改变形状<br>\n4.2.2充分利用轮胎的四边形触地面<br>\n4.2.3轮胎弯曲,产生侧偏力<br>\n4.3轮胎的抓地力支撑汽车<br>\n4.3.1没有抓地力就无法转向<br>\n4.3.2揭开抓地力的神秘面纱<br>\n4.3.3轮胎的抓地力随路面状况发生变化<br>\n4.3.4把抓地力分配给行驶和转向<br>\n4.3.5抓地力的作用方法在前轮和后轮上有所不同<br>\n4.3.6前轮驱动和后轮驱动利用抓地力的方法<br>\n4.3.7如何增大轮胎的抓地力<br>\n4.4差速器用于调整左右转速<br>\n4.4.1转向时里侧转速慢,外侧转速快<br>\n4.4.2四个伞齿轮吸收左右的转速差<br>\n4.5利用悬架调整车体的倾斜度<br>\n4.5.1转向时悬架受力,车身倾斜<br>\n4.5.2利用弹簧、减震器和稳定器缓和振动<br>\n4.5.3恰到好处的车身倾斜能够增大抓地力<br>\n4.5.4转向时轮胎依然直立<br>\n4.5.5转向时轮胎的触地面发生变形<br>\n4.5.6为不改变触地面的形状而努力<br>\nColumn汽车辟谣 真敢侧滑轮胎来驾驶汽车吗?<br>\n第5章 停车——制动器将速度转化为摩擦热<br>\n5.1负责让汽车停止的制动器的结构<br>\n5.1.1松开加速踏板时速度会因摩擦而降低<br>\n5.1.2踩下制动踏板时制动液会传递力量<br>\n5.1.3制动器将速度转化为摩擦热<br>\n5.1.4盘式制动器和鼓式制动器的不同<br>\n5.1.5前后轮的制动负担不同<br>\n5.1.6增强前轮制动效果的结构<br>\n5.2制动器的助力<br>\n5.2.1用很小的力也能让1吨的车停止<br>\n5.2.2用杠杆原理增大踏力<br>\n5.2.3用发动机的力辅助制动踏板的踏力<br>\n5.3轮胎使汽车停止<br>\n5.3.1轮胎也会影响制动效果<br>\n5.3.2轮胎不转动就无法制动<br>\n5.4除制动器之外的减速装置<br>\nColumn汽车辟谣 紧急时刻有人不踩刹车吗?<br>\n第6章 舒适性——很好地减小噪声和振动<br>\n6.1减小各种噪声<br>\n6.1.1汽车上处处都是噪声源<br>\n6.1.2减小发动机的噪声<br>\n6.1.3利用轮胎的沟纹减小噪声<br>\n6.1.4轮胎上的花纹沟兼顾排水性和噪声控制<br>\n6.1.5用轮胎抑制噪声的增加<br>\n6.1.6柔软地固定金属,减小制动器噪声<br>\n6.1.7接近流线型能够减小风噪<br>\n6.1.8因动力传动系的变速产生的噪声<br>\n6.1.9悬架也会产生很小的噪声<br>\n6.1.10利用底盘上的隔音材料和底盘下的表面处理隔音<br>\n6.2减轻振动<br>\n6.3减轻声振粗糙<br>\nColumn汽车辟谣 乘坐舒适度高的汽车容易晕车吗?<br>\n第7章 安全性——多项技术保护人们免受事故伤害<br>\n7.1防患于未然的主动安全技术<br>\n7.1.1安全技术大体分为三种<br>\n7.1.2ABS防止轮胎锁死<br>\n7.1.3利用电脑自动调节制动器<br>\n7.1.4踩住加速踏板时ESC发挥作用<br>\n7.1.5紧急时刻借助制动辅助系统增强制动效果<br>\n7.1.6接近于自动驾驶的雷达巡航控制系统<br>\n7.1.7借助摄像头识别车道标记线的车道保持系统<br>\n7.2临近事故时发挥作用的预碰撞安全技术<br>\n7.2.1在即将撞击时制动<br>\n7.2.2临近撞击时收紧安全带<br>\n7.3撞击后控制损失的被动安全技术<br>\n7.3.1既易变性又坚固的吸能车身结构<br>\n7.3.2三点式安全带利用急减速的趋势固定<br>\n7.3.3SRS安全气囊能够感知冲击力从而膨胀起来<br>\n7.3.4保护头颈部的主动式头枕技术<br>\nColumn汽车辟谣 即使有发达的安全技术也无法减少事故吗?<br>\n第2部分 新一代汽车篇<br>\n第8章 电动汽车——用电启动电动机驱动汽车<br>\n8.1电动汽车与汽油动力车的区别<br>\n8.1.1电动汽车的零件比汽油动力车少<br>\n8.1.2即使按下了按钮仍处于静止状态<br>\n8.1.3根据加速情况调节输送到电动机中的电量<br>\n8.2利用变频器和电动机产生旋转力<br>\n8.2.1变频器负责转动电动机<br>\n8.2.2交流电动机的结构<br>\n8.2.3利用电动机发电的再生功能<br>\n8.2.4再生需要变频器<br>\n8.2.5从汽车发动时开始,电动机就能产生最大扭矩<br>\n8.2.6电动机安静地转动<br>\n8.3轮毂电机的结构<br>\n8.3.1每个轮子上都有电动机<br>\n8.3.2汽车的新可能性蕴藏在电动汽车中<br>\n8.4锂离子电池的特征<br>\nColumn汽车辟谣 电动汽车果真静得吓人吗?<br>\n第9章 环保型汽车——混合动力汽车以及燃料电池汽车等<br>\n9.1燃料电池汽车的结构<br>\n9.1.1蓄电池的低性能催生出了能够发电的电动汽车<br>\n9.1.2以氢为燃料发电<br>\n9.1.3仅残留水的燃料电池汽车是终极环保车<br>\n9.2混合动力汽车有很多种<br>\n9.2.1同时使用发动机和电动机<br>\n9.2.2并联式混合动力汽车和串联式混合动力汽车<br>\n9.2.3接近电动汽车的插入式混合动力汽车<br>\n9.3不用电的新一代汽车<br>\n9.3.1不受排放标准限制的清洁柴油汽车<br>\n9.3.2使用生物燃料的发动机汽车<br>\n9.3.3燃烧氢的氢动力汽车<br>\nColumn汽车辟谣 新一代汽车里果真没有赢家吗?<br>\n结语<br>\n致谢"
}
],
"seeAlso": []
}
]
},
{
"type": "web",
"url": "https://read.douban.com/ebook/314197637/?dcs=search",
"items": [
{
"itemType": "book",
"title": "永不停歇的时钟:机器、生命动能与现代科学的形成",
"creators": [
{
"lastName": "[美]杰西卡·里斯金",
"creatorType": "author"
},
{
"lastName": "王丹",
"creatorType": "translator"
},
{
"lastName": "朱丛",
"creatorType": "translator"
}
],
"date": "2020-07",
"ISBN": "9787508699806",
"abstractNote": "*科学史扛鼎之作!美国《高等教育纪事报》誉为“20年来深具影响力的书之一”\n*从中世纪自动发条机器人到当代人工智能,探求生命的本源之问。机械狂人、蒸汽朋克、机械奇幻、人工智能爱好者的宝藏之书\n*《图书馆杂志》2016年畅销书名单,亚马逊2016年连续60天销售榜首\n*《自然》《卫报》《泰晤士高等教育》等权威期刊一致称赞,不吝专文推荐,口碑赛高\n中世纪以来盛行的自动机械人偶,曾让欧洲的皇室和宫廷贵族着迷发狂,传教士甚至将其作为贡礼献给中国皇帝。从雅凯-德罗兹的写字小男孩儿到坎普林的下棋机器人,人和动物的形象,被频繁地制成荒诞而逼真的机器,像是有了“能动的生命”。这一切都源于“万物机械说”的大行其道,它牵涉出的是困扰人类始终的问题:生命是什么?机器会拥有生命吗?事物运转的动力来自内部还是外部?\n人和机器、物质和灵魂之间的关系,几百年来争论不休。17世纪是翻天覆地的思想大变革时代,机械论作为现代科学的核心范式得以确立,整个宇宙被看作一台机器,包括动物和人类,但仍将其动力和精神归于上帝之手。然而,更为反叛的科学家和哲学家,则认为生命机器具有内在动能。现代生命科学就在这两种矛盾的机械论中兵分两路。笛卡儿、玻意耳及其追随者,坚持经典的被动机械论,莱布尼茨、拉马克创造性发展了主动机械论,达尔文的进化论在被动和主动模型之间摇摆不定。由此还催生了理查德·道金斯“自私的基因”说,薛定谔则用颠覆性的量子力学解释生命体能从“秩序生秩序”。机械论接连引发了控制论、目的论、进化论以及认知科学、进化心理学、人工智能等理论和学科的形成,在社会文化环境的联动下,铺展成一幅气势磅礴、方兴未艾的现代科学图景。\n杰西卡·里斯金拥有哲学、历史学和科学研究综合背景,她用生动而思辨的文笔,原创性地将一手资料、学界往来通信和文献档案熔融一炉,顺着生命本源问题的脉络,展开这场“长达四个世纪的争论”。理解现代科学的历史,对于思考当下、想象未来具有重要意义。这本科学史著作不仅会颠覆我们对现代科学的认知,还将成为我们理解当下生命科学、认知科学和人工智能等前沿问题的思考利器。",
"language": "zh",
"libraryCatalog": "Douban",
"publisher": "中信出版社",
"shortTitle": "永不停歇的时钟",
"url": "https://read.douban.com/ebook/314197637/?dcs=search",
"attachments": [],
"tags": [],
"notes": [
{
"note": "<h1>《永不停歇的时钟》 - 目录</h1>\n引言 究竟是赫胥黎的玩笑,还是自然与科学界的能动作用<br>\n第一章 花园里的机器<br>\n第二章 机器之间的笛卡儿<br>\n第三章 被动的望远镜还是永不停歇的时钟<br>\n第四章 最早的机器人<br>\n第五章 机器先生冒险记<br>\n第六章 自组织机器的困境<br>\n第七章 机器间的达尔文<br>\n第八章 机械卵和智能卵<br>\n第九章 由外而内<br>\n第十章 历史的重要性<br>\n致谢<br>\n参考文献"
}
],
"seeAlso": []
}
]
},
{
"type": "web",
"url": "https://www.douban.com/doulist/120664512/",
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
- 作者优化:欧美作者区分开了名与姓(在这里吐槽下豆瓣编辑对作者的命名规范,尤其是外籍作者的命名规范真是各路牛鬼蛇神)
- 摘要信息:作者简介 + 内容简介
- 目录信息:目录存放至note附件里
- 支持识别豆瓣阅读的[出版图书](https://read.douban.com/ebooks/)(因为不像豆瓣读书那么规则,部分字段可能需要手动修改)
- [详细截图](https://github.com/Captain2021/myTranslator/tree/main)
+ [国家出版发行信息公共服务平台](https://book.cppinfo.cn/home/index) -> [CCPINFO](/translators/CCPINFO.js)
- [x] 抓取引文信息
Expand Down

0 comments on commit b61c934

Please sign in to comment.