文献互助小帮手:①读秀PDF一键下载 ②图书馆联盟、读秀、超星、中美百万显示SSID等索书号 ③各文献站、图书电商站与豆瓣的互访链接 ④一键复制元数据

①读秀试读或者包库全文、汇雅电子书的一键下载 ② 在图书馆参考咨询联盟(ucdrs)或读秀(duxiu)以及他们镜像站上显示文献的ssid或dxid,用于图书文献互助、群组找书等场景;显示大学数字图书馆国际合作计划(cadal)的书号-ssno,用于查询下载中美百万书册;显示社科文献中心、日本内阁文库等文献站点的索书号。 ③ 提供各文献站点、图书电商和豆瓣图书的互访链接。 ④ 一键复制各文献站点的索书号、图书元数据。 To搜索[红太狼的平底锅]的朋友:提供红太狼的平底锅的部分功能,如显示ssid,但不提供售卖,下载请自行找百度网盘群组;显示dxid或其它索书号、双向链接、一键复制等为平底锅没有的新加功能。

< Відгуки до 文献互助小帮手:①读秀PDF一键下载 ②图书馆联盟、读秀、超星、中美百万显示SSID等索书号 ③各文献站、图书电商站与豆瓣的互访链接 ④一键复制元数据

Відгук: Добре - скрипт працює добре

§
Опубліковано: 16.02.2022

很好用,感谢辛苦制作。
反馈一个问题,启用后,读秀页面会导致无法点击其他按钮,比如切换搜索方式(eg由书名切换到作者等,或者由图书切换到期刊)

TheronАвтор
§
Опубліковано: 19.02.2022

很好用,感谢辛苦制作。
反馈一个问题,启用后,读秀页面会导致无法点击其他按钮,比如切换搜索方式(eg由书名切换到作者等,或者由图书切换到期刊)

感谢告知,已修复,如有问题请反馈!

§
Опубліковано: 22.02.2022

很好用,感谢辛苦制作。
反馈一个问题,启用后,读秀页面会导致无法点击其他按钮,比如切换搜索方式(eg由书名切换到作者等,或者由图书切换到期刊)

感谢告知,已修复,如有问题请反馈!

感谢修复,好快。
提个小建议,不知道能不能实现。
就是让显示的ss号,变成点击ss号就自动复制到剪贴板。
场景eg:在使用读秀检索到书籍后,复制ss去找书(需要手动选中8位的ss,再右键复制/快捷键,如果可以实现点击ss号,ss号自动写到剪贴板就好了。

TheronАвтор
§
Опубліковано: 23.02.2022

你好,暂不打算做这个功能。
一是选中ss并ctrl+c并不复杂,二是这个功能可能在用户未预料的情况覆写粘贴板,带来很多麻烦。
感谢你的建议!

§
Опубліковано: 23.02.2022

原先直接点击文件查询就可以了,这个SS号如何使用,可以得到文献,点击并没有调到其他的界面

TheronАвтор
§
Опубліковано: 23.02.2022

原先直接点击文件查询就可以了,这个SS号如何使用,可以得到文献,点击并没有调到其他的界面

你好,提供“点击查询、存货查询”等功能的脚本是电子书卖家做的,法律风险大;本脚本不提供售卖,所以没有做这个功能。
本脚本的SS号可以用于机器人群组查书、网友互助等场景。
如果你在淘宝等处买电子书,也可以查到好直接发卖家这个SS号。

§
Опубліковано: 24.02.2022

你好,暂不打算做这个功能。
一是选中ss并ctrl+c并不复杂,二是这个功能可能在用户未预料的情况覆写粘贴板,带来很多麻烦。
感谢你的建议!

感谢回复,这样考虑也确实更加合理。
再次感谢制作这个脚本,祝一切好!

§
Опубліковано: 24.02.2022
Edited: 24.02.2022

原先直接点击文件查询就可以了,这个SS号如何使用,可以得到文献,点击并没有调到其他的界面

你好,提供“点击查询、存货查询”等功能的脚本是电子书卖家做的,法律风险大;本脚本不提供售卖,所以没有做这个功能。
本脚本的SS号可以用于机器人群组查书、网友互助等场景。
如果你在淘宝等处买电子书,也可以查到好直接发卖家这个SS号。

安全第一,脚本基本已经趋于完美了。希望能一直维护下去。
如有需要众筹打赏保持维护也可。
总之感谢,制作出了我一直想要的各种功能,简洁又美观。

TheronАвтор
§
Опубліковано: 22.08.2022

你好,暂不打算做这个功能。
一是选中ss并ctrl+c并不复杂,二是这个功能可能在用户未预料的情况覆写粘贴板,带来很多麻烦。
感谢你的建议!

你好,最近更新添加了一键复制ss号和一键复制图书元信息,具体请看 https://greasyfork.org/zh-CN/scripts/435569/discussions/145186

§
Опубліковано: 24.08.2022
Edited: 24.08.2022

你好,暂不打算做这个功能。
一是选中ss并ctrl+c并不复杂,二是这个功能可能在用户未预料的情况覆写粘贴板,带来很多麻烦。
感谢你的建议!

你好,最近更新添加了一键复制ss号和一键复制图书元信息,具体请看 https://greasyfork.org/zh-CN/scripts/435569/discussions/145186

多谢还特意过来回复,感谢增加新功能还有一直在维护。 这里就这个复制功能,反馈几个小建议。 1.安装完后,两个icon相同,虽然鼠标指针过去会现实,但建议弄两个不同icon。我想两个icon之所以很小,是想最小化改变原页面,保持原网站排版风格,但是过于小也会影响鼠标点击的易用程度,比如一个这么小的为显示为ss的icon是复制ss号的,这样就会更直观。既然添加了这个功能的支持,我感觉就应该极致的方便使用,要不然还不如不支持,个人理解哈。(见附图)

2.就是关于复制书籍元信息这个功能,也即General Information,pdg或uvz在电脑端多用老马大侠的软件进行阅读,据我所知,包括超星自身的书籍信息bookinfo.dat里面的格式是如下的形式,我一般都是直接在uv这个软件里直接添加到书里,或 示例:[General Information] 书名=编剧学刊 SS号=14750027 DX号=000019021377 作者=陆军主编 页数=261 出版社=上海:上海书店 出版日期=2020.07 ISBN号=978-7-5458-1915-1 中图法分类号=I053-53 原书定价=48.00 主题词=戏剧-编剧-文集 参考文献格式=陆军主编.编剧学刊.上海:上海书店,2020.07. 内容提要=本书收录编剧学论文二十余篇,涉及中国传统戏剧研究、国外戏剧研究、编剧学理论、戏剧创作等内容,涵盖戏剧编剧艺术的方方面面。每篇文章都有不同的主题论述,论点新颖,作者多关注于当代编剧艺术发展的前沿,亦有对古今戏剧艺术的分析与解读,一些文章通过对经典剧目的分析,引出对编剧学的理论探究。全书较全面地对编剧艺术进行了深入解读。对当代编剧创作有所指导,对读者有所裨益。是一本既具有先锋性,同时又具有高瞻性学术价值的图书。 URL=http://book.ucdrs.superlib.net/views/specific/2929/bookDetail.jsp?dxNumber=000019021377&d=BE3721EEF61A0D635FFC34A5A79F3F85
建议弄成这样的统一的格式。 还有就是现在复制出来书籍元信息排版上书名有些错位(见附图)

3.其实很多时候会在书籍详情页面进行书籍信息的复制,现在这个页面还没有添加支持。

4.另外的一个,建议添加东莞图书馆文献搜索这个镜像支持,不用登陆。http://www.dglib.superlib.net/

§
Опубліковано: 24.08.2022
Edited: 24.08.2022

你好,暂不打算做这个功能。
一是选中ss并ctrl+c并不复杂,二是这个功能可能在用户未预料的情况覆写粘贴板,带来很多麻烦。
感谢你的建议!

你好,最近更新添加了一键复制ss号和一键复制图书元信息,具体请看 https://greasyfork.org/zh-CN/scripts/435569/discussions/145186

多谢还特意过来回复,感谢增加新功能还有一直在维护。
这里就这个复制功能,反馈几个小建议。
1.安装完后,两个icon相同,虽然鼠标指针过去会现实,但建议弄两个不同icon。我想两个icon之所以很小,是想最小化改变原页面,保持原网站排版风格,但是过于小也会影响鼠标点击的易用程度,比如一个这么小的为显示为ss的icon是复制ss号的,这样就会更直观。既然添加了这个功能的支持,我感觉就应该极致的方便使用,要不然还不如不支持,个人理解哈。(见附图)

2.就是关于复制书籍元信息这个功能,也即General Information,pdg或uvz在电脑端多用老马大侠的软件进行阅读,据我所知,包括超星自身的书籍信息bookinfo.dat里面的格式是如下的形式,我一般都是直接在uv这个软件里直接添加到书里,或
示例:[General Information]
书名=编剧学刊
SS号=14750027
DX号=000019021377
作者=陆军主编
页数=261
出版社=上海:上海书店
出版日期=2020.07
ISBN号=978-7-5458-1915-1
中图法分类号=I053-53
原书定价=48.00
主题词=戏剧-编剧-文集
参考文献格式=陆军主编.编剧学刊.上海:上海书店,2020.07.
内容提要=本书收录编剧学论文二十余篇,涉及中国传统戏剧研究、国外戏剧研究、编剧学理论、戏剧创作等内容,涵盖戏剧编剧艺术的方方面面。每篇文章都有不同的主题论述,论点新颖,作者多关注于当代编剧艺术发展的前沿,亦有对古今戏剧艺术的分析与解读,一些文章通过对经典剧目的分析,引出对编剧学的理论探究。全书较全面地对编剧艺术进行了深入解读。对当代编剧创作有所指导,对读者有所裨益。是一本既具有先锋性,同时又具有高瞻性学术价值的图书。
URL=http://book.ucdrs.superlib.net/views/specific/2929/bookDetail.jsp?dxNumber=000019021377&d=BE3721EEF61A0D635FFC34A5A79F3F85


建议弄成这样的统一的格式。
还有就是现在复制出来书籍元信息排版上书名有些错位(见附图)

3.其实很多时候会在书籍详情页面进行书籍信息的复制,现在这个页面还没有添加支持。

4.另外的一个,建议添加东莞图书馆文献搜索这个镜像支持,不用登陆。http://www.dglib.superlib.net/




书籍信息发上来没有排版了,这里来一张截图
https://0.z.wiki/autoupload/2022-08-24/26937865cc8d4a8c840b798114214b73.Quicker_20220824_145428.png

TheronАвтор
§
Опубліковано: 24.08.2022

谢谢反馈!

安装完后,两个icon相同,虽然鼠标指针过去会现实,但建议弄两个不同icon

考虑过用两个icon,但没想到合适的,所以弄个一小一大,不知为何你截图上显示一样大小,可能是浏览器兼容性导致的,不知你用的哪个浏览器和脚本管理器?

我想两个icon之所以很小,是想最小化改变原页面,保持原网站排版风格

是的,这个功能是另一个回复里网友建议的,但他发的那个脚本用了一排按钮,我觉得不简洁,遇到很长的书名时可能有预料外的问题,所以想占用尽量小的点击区域

2.就是关于复制书籍元信息这个功能,也即General Information,pdg或uvz在电脑端多用老马大侠的软件进行阅读,据我所知,包括超星自身的书籍信息bookinfo.dat里面的格式是如下的形式,我一般都是直接在uv这个软件里直接添加到书里,或 示例:[General Information] 书名=编剧学刊 SS号=14750027

这个等号分割也不错,我是学习了详情页的格式,觉得【】比较醒目

还有就是现在复制出来书籍元信息排版上书名有些错位(见附图)

这个我再改改,之前测试是没问题的,估计是发布时弄错了正则匹配规则

3.其实很多时候会在书籍详情页面进行书籍信息的复制,现在这个页面还没有添加支持。 这个后面会支持

4.另外的一个,建议添加东莞图书馆文献搜索这个镜像支持,不用登陆。http://www.dglib.superlib.net/

谢谢推荐,这个排版跟读秀是一样的,好弄,下次更新我加上

§
Опубліковано: 24.08.2022

谢谢反馈!

安装完后,两个icon相同,虽然鼠标指针过去会现实,但建议弄两个不同icon

考虑过用两个icon,但没想到合适的,所以弄个一小一大,不知为何你截图上显示一样大小,可能是浏览器兼容性导致的,不知你用的哪个浏览器和脚本管理器?

我想两个icon之所以很小,是想最小化改变原页面,保持原网站排版风格

是的,这个功能是另一个回复里网友建议的,但他发的那个脚本用了一排按钮,我觉得不简洁,遇到很长的书名时可能有预料外的问题,所以想占用尽量小的点击区域

2.就是关于复制书籍元信息这个功能,也即General Information,pdg或uvz在电脑端多用老马大侠的软件进行阅读,据我所知,包括超星自身的书籍信息bookinfo.dat里面的格式是如下的形式,我一般都是直接在uv这个软件里直接添加到书里,或 示例:[General Information] 书名=编剧学刊 SS号=14750027

这个等号分割也不错,我是学习了详情页的格式,觉得【】比较醒目

还有就是现在复制出来书籍元信息排版上书名有些错位(见附图)

这个我再改改,之前测试是没问题的,估计是发布时弄错了正则匹配规则

3.其实很多时候会在书籍详情页面进行书籍信息的复制,现在这个页面还没有添加支持。
这个后面会支持

4.另外的一个,建议添加东莞图书馆文献搜索这个镜像支持,不用登陆。http://www.dglib.superlib.net/

谢谢推荐,这个排版跟读秀是一样的,好弄,下次更新我加上



没想到这么快就有回复,感谢回复。

我使用的是edge 104.0.1293.63 (正式版本) (64 位)和tampermonkey v4.16.1,我这icon确实没有大小区别,不过如果后期有合适的,两个一样大的肯定比一大一小美观。

刚想到,其实个人感觉最好的方式就是存在于已有的直觉的第一位置。基于现有的设计,感觉ss号的复制,其实就放到“ss号xxxxxxxx”这个位置,把“号”字替换为这个icon。
书籍元信息就放到书名前,这样,书名再长也不需要去书名后面进行寻找复制按钮。如此两个icon不用更换,都是复制所在位置信息的意思。

再就是,附上,我之前用的maer网友写的书籍详情页的js
// ==UserScript==
// @name 读秀Bookinfo整理
// @version 1.4.2
// @namespace duxiu.bookinfo
// @copyright maer
// @include *bookDetail.jsp?*
// @require https://cdn.bootcss.com/clipboard.js/2.0.0/clipboard.min.js
// @require https://cdn.bootcss.com/FileSaver.js/2014-11-29/FileSaver.js
// @grant none
// ==/UserScript==
//

var GlobalUrl = window.location.href;
var bookinfo="";
app = {
run: function () {

//整理按钮
var getBookInfoBtn = document.createElement("input");
getBookInfoBtn.id = "getBookInfo";
getBookInfoBtn.type = "button";
getBookInfoBtn.value = "获取BookInfo";


//下载按钮
var downloadBookinfo = document.createElement("input");
downloadBookinfo.id = "downBookinfo";
downloadBookinfo.type = "button";
downloadBookinfo.value = "下载bookinfo";

//复制按钮
var copyBookInfoBtn = document.createElement("input");
copyBookInfoBtn.type = "hidden";
copyBookInfoBtn.id = "copyBookInfoBtn";
copyBookInfoBtn.className = "btn";
copyBookInfoBtn.setAttribute("data-clipboard-action", "copy");
copyBookInfoBtn.setAttribute("data-clipboard-target", "#myBookInfo");


//状态显示div
var stateNodeDiv = document.createElement("span");
stateNodeDiv.style = "color:red;";

//读秀页面
if (GlobalUrl.indexOf("/views/specific/") == -1) {
var myParentNode = document.getElementsByClassName("card_text")[0];
getBookInfoBtn.onclick = GetDXBookInfo;
getBookInfoBtn.style = "width:110px;height: 25px;color:blue;";
downloadBookinfo.onclick = downloadTextFile;
downloadBookinfo.style = "width:110px;height: 25px;color:blue;margin-left:5px;";

//插入节点
myParentNode.insertBefore(stateNodeDiv, myParentNode.firstElementChild);
myParentNode.insertBefore(copyBookInfoBtn, myParentNode.firstElementChild);
myParentNode.insertBefore(downloadBookinfo, myParentNode.firstElementChild);
myParentNode.insertBefore(getBookInfoBtn, myParentNode.firstElementChild);
}

//文献港、图书咨询联盟页面
else {
var myParentNode = document.getElementsByClassName("tutilte")[0];
getBookInfoBtn.onclick = GetWxgBookInfo;
getBookInfoBtn.style = "width:110px;height: 25px;color:blue;margin-left:20px;";

downloadBookinfo.onclick = downloadTextFile;
downloadBookinfo.style = "width:110px;height: 25px;color:blue;margin-left:5px;";


//插入一个div和span防止三击
var selfdiv = document.createElement("div");
selfdiv.style = "float:left;";

var selfspan = document.createElement("span");
selfspan.id = "selfspan";
selfspan.style.position = "relative";
selfspan.style.left = "20px";

//插入节点
myParentNode.appendChild(selfdiv);
myParentNode.appendChild(selfspan);

selfspan.appendChild(getBookInfoBtn);
selfspan.appendChild(downloadBookinfo);
selfspan.appendChild(copyBookInfoBtn);
selfspan.appendChild(stateNodeDiv);
}

//剪贴板操作
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function (e) {
stateNodeDiv.innerHTML = " 复制成功!";
console.log(e);
});
clipboard.on('error', function (e) {
stateNodeDiv.innerHTML = "失败";
console.log(e);
});
}
};

try {
app.run();
} catch (e) {
//alert(e.message);
}

//下载文件
function downloadTextFile() {
if (GlobalUrl.indexOf("/views/specific/") == -1)
{
bookinfo = GetDXBookInfo();
}
else
{
bookinfo=GetWxgBookInfo();
}

console.log(bookinfo);
bookinfo =bookinfo.replace(/
/gm, "\r\n");
console.log(bookinfo);
if (bookinfo != "") {
var blob = new Blob([bookinfo], {type: "text/plain;charset=utf-8"});
saveAs(blob, "bookinfo.dat");
}
}

//获取读秀bookinfo
function GetDXBookInfo() {
try {
if (document.getElementById("myBookInfo") == null) {
var bookinfoDiv = document.createElement("div");
bookinfoDiv.className = "text_content";
var bookinfoHead = document.createElement("h2");
bookinfoHead.innerHTML = "BookInfo";

bookinfoDiv.appendChild(bookinfoHead);

var BookInfoNode = document.createElement("div");
BookInfoNode.id = "myBookInfo";
BookInfoNode.style = "word-wrap:break-word;padding:10px;";

var cartText = document.getElementsByTagName("dd");
var bookphoto=document.querySelector("#bookphoto");
var bkfm=bookphoto.querySelector("img").src;
var ssid =GetSSID(bkfm);

var dxid = document.querySelector("#dxid").getAttribute("value");
var title = document.querySelector("dt").innerText;
var url = UrlTrim(GlobalUrl);

bookinfo = "[General Information]
";
bookinfo += "书名=" + title + "
";
bookinfo += "SS号=" + ssid + "
";
bookinfo += "DX号=" + dxid + "
";
for (var i = 0; i < cartText.length; i++) {
var temp = cartText[i].textContent;
temp = temp.replace(/ /gm, "");
temp = temp.replace(/ /gm, "");
temp = temp.replace(/\t/gm, "");
temp = temp.replace(/\r/gm, "");
temp = temp.replace(/\n/gm, "");
temp = temp.replace(/:/gm, ":");
temp=temp.replace(new RegExp('>','g'),">");
myindex = temp.indexOf(":", 0);
if (myindex != -1) {
var s1 = temp.substring(0, myindex);
var s2 = temp.substring(myindex + 1);
if (s1 == "出版发行") {
temp = PubTrim(s2);
}
else {
temp = s1 + "=" + s2;
}
bookinfo += temp + "
";
}
}

bookinfo += "URL=" + url + "
";

BookInfoNode.innerHTML = bookinfo;

bookinfoDiv.appendChild(BookInfoNode);

var shhdbsDiv = document.getElementById("shhdbs");
shhdbsDiv.insertBefore(bookinfoDiv, shhdbsDiv.firstElementChild);
}
else
{
bookinfo=document.getElementById("myBookInfo").innerHTML;
}
var copyBookInfoBtn = document.getElementById("copyBookInfoBtn");
copyBookInfoBtn.click();
return bookinfo;
}
catch (e) {
console.log(e);
}
}

//出版信息处理
function PubTrim(s2) {
var cbs = "";
var cbrq = "";
var temp = "";
if (s2 == "") {
temp = "";
}
else {
s2 = s2.replace(",", ",");
var colonIndex = s2.indexOf(":");
var commaIndex = s2.indexOf(",");
//有冒号,没有逗号,这时只有出版社,没有出版日期
if (colonIndex != -1 && commaIndex == -1) {
cbs = s2;
temp = "出版社=" + cbs + "
";
temp += "出版日期=";
}
//有冒号,有逗号,这时有出版社,有出版日期
if (colonIndex != -1 && commaIndex != -1) {
cbs = s2.substring(0, commaIndex);
cbrq = s2.substring(commaIndex + 1);
temp = "出版社=" + cbs + "
";
temp += "出版日期=" + cbrq;
}
//没有冒号,没有逗号
if (colonIndex == -1 && commaIndex == -1) {
//如果包含点号,那么存在出版日期
if (s2.indexOf(".") != -1) {
temp = "出版社=" + "
";
temp += "出版日期=" + s2;
}
else {
temp = "出版社=" + "
";
temp += "出版日期=";
}
}
//没有冒号,有逗号,此时可能没有出版地,但是有出版社和出版日期
if (colonIndex == -1 && commaIndex != -1) {
cbs = s2.substring(0, commaIndex);
cbrq = s2.substring(commaIndex + 1);
temp = "出版社=" + cbs + "
";
temp += "出版日期=" + cbrq;
}
}
return temp;
}

//获取文献港bookinfo
function GetWxgBookInfo() {
if (document.getElementById("myBookInfo") == null) {
//创建bookinfo节点
var BookInfoNode = document.createElement("div");
BookInfoNode.id = "myBookInfo";
BookInfoNode.style = "word-wrap:break-word;display:block;border:1px solid #ebebeb;margin-top:40px;padding:10px;background-color:#f0f8fe;";
//内容部分
var tubox = document.getElementsByClassName("tubox")[0];
var dd = tubox.getElementsByTagName("dd");
var bookinfo = "";
var title = document.getElementsByName("title")[0].getAttribute("value");
var dxid = document.getElementsByName("dxid")[0].getAttribute("value");
var dvalue = document.getElementsByName("d")[0].getAttribute("value");
//获取ssid
var bodyhtml = document.body.innerHTML;
var ssidIndex1 = bodyhtml.indexOf("ssn=");
ssidIndex1 += 4;
var ssidIndex2 = bodyhtml.indexOf("&", ssidIndex1);
var ssid = bodyhtml.substring(ssidIndex1, ssidIndex2);

bookinfo = "[General Information]
";
bookinfo += "书名=" + title + "
";
bookinfo += "SS号=" + ssid + "
";
bookinfo += "DX号=" + dxid + "
";
for (var i = 0; i < dd.length; i++) {
var temp = dd[i].textContent;
temp = FieldTrim(temp);
myindex = temp.indexOf(":", 0);
var s1 = temp.substring(0, myindex);
var s2 = temp.substring(myindex + 1);
if (s1 == "出版发行") {
temp = PubTrim(s2);
}
else {
temp = s1 + "=" + s2;
}
bookinfo += temp + "
";
}
//提要部分
var tu_content = document.getElementsByClassName("tu_content")[0];
var nrty = FieldTrim(tu_content.textContent);
if (nrty != "") {
nrty = nrty.replace("内容提要:", "内容提要=");
bookinfo += nrty + "
";
}
var dxUrl = UrlTrim(GlobalUrl);
bookinfo += "URL=" + dxUrl + "
";
BookInfoNode.innerHTML = bookinfo;
tubox.parentNode.appendChild(BookInfoNode);
}
else
{
bookinfo=document.getElementById("myBookInfo").innerHTML;
}
var copyBookInfoBtn = document.getElementById("copyBookInfoBtn");
copyBookInfoBtn.click();
return bookinfo;
}

//字段处理
function FieldTrim(myField) {
var temp = myField.replace(/ /gm, "");
temp = temp.replace(/\t/gm, "");
temp = temp.replace(/\r/gm, "");
temp = temp.replace(/\n/gm, "");
temp = temp.replace(/ /gm, "");
//替换字段名,与读秀一致
temp = temp.replace("【形态项】", "【页数】");
temp = temp.replace("【出版项】", "【出版发行】");
temp = temp.replace(/【/gm, "");
temp = temp.replace(/】/gm, ":");
return temp;
}

//url处理
function UrlTrim(myurl) {
var baseUrl = "";
var dxNumber = "";
var d = "";

if (myurl.indexOf("duxiu.com") == -1 && myurl.indexOf("szdnet.org.cn") == -1 && myurl.indexOf("superlib.net") == -1 && myurl.indexOf("ccelib.com") == -1) {
baseUrl = "http://book.duxiu.com/bookDetail.jsp?";
}
else {
var myindex = myurl.indexOf("?");
baseUrl = myurl.substring(0, myindex + 1);
}

var dxIndex1 = myurl.indexOf("dxNumber=");
dxIndex1 += 9;
var dxIndex2 = myurl.indexOf("&", dxIndex1);
dxNumber = myurl.substring(dxIndex1, dxIndex2);

var dIndex1 = myurl.indexOf("d=");
dIndex1 += 2;
var dIndex2 = myurl.indexOf("&", dIndex1);
if (dIndex2 == -1) {
d = myurl.substring(dIndex1);
}
else {
d = myurl.substring(dIndex1, dIndex2);
}

var dxUrl = baseUrl + "dxNumber=" + dxNumber + "&d=" + d;
return dxUrl;
}
function GetSSID(strImgSrc) {
var ssid = "";
var iidStr=GetEncode(strImgSrc);
var ssidStr = DeCode(iidStr);
ssid = TrimString(ssidStr);
return ssid;
}
function GetEncode(strImgSrc) {
var reg = /iid\=\w+/;
var iidStr = strImgSrc.match(reg)[0];
iidStr = iidStr.replace("iid=", "");
return iidStr;
}
function TrimString(inputStr) {
var outPutStr = "";
inputStr = inputStr.replace(/\//g, "");
var reg = /\d{8,}/;
outPutStr = inputStr.match(reg);
outPutStr=outPutStr.toString();
return outPutStr;
}

function DeCode(EnCodeStr) {
var decodeStr = "";
var baseNumStr = EnCodeStr.substring(EnCodeStr.length - 2);
var baseNum = parseInt(baseNumStr, 16);
var myCodeStr = EnCodeStr.substring(0, EnCodeStr.length - 16);
for (var i = 0; i < myCodeStr.length; i = i + 2) {
decodeStr += GetSubString(myCodeStr, baseNum, i);
}
return decodeStr;
}
function GetSubString(EnCodeStr, BaseNum, startIndex) {
var s = "";
s = EnCodeStr.substring(startIndex, startIndex + 2);
//转换进制
var i = parseInt(s, 16) - BaseNum;
s = String.fromCharCode(i);
return s;
}

TheronАвтор
§
Опубліковано: 24.08.2022
Edited: 24.08.2022

我使用的是edge 104.0.1293.63 (正式版本) (64 位)和tampermonkey v4.16.1,我这icon确实没有大小区别,不过如果后期有合适的,两个一样大的肯定比一大一小美观。

谢谢反馈,我后面测试下兼容性,避免以后踩坑

刚想到,其实个人感觉最好的方式就是存在于已有的直觉的第一位置。基于现有的设计,感觉ss号的复制,其实就放到“ss号xxxxxxxx”这个位置,把“号”字替换为这个icon。 书籍元信息就放到书名前,这样,书名再长也不需要去书名后面进行寻找复制按钮。如此两个icon不用更换,都是复制所在位置信息的意思。

这个建议不错,下次更新用上

TheronАвтор
§
Опубліковано: 27.08.2022
Edited: 27.08.2022

趁着周末更新了,你可以看看效果,欢迎继续反馈。

我使用的是edge 104.0.1293.63 (正式版本) (64 位)和tampermonkey v4.16.1

我测试发现参考联盟的页面在edge下无法将字体设为100%或12px以下的大小,跟tampermonkey无关,不知它页面上什么代码导致的。现在将两个按钮放在两个地方,相对好看些了,感谢你的建议。

建议添加东莞图书馆文献搜索这个镜像支持,不用登陆。http://www.dglib.superlib.net/

已经添加支持

很多时候会在书籍详情页面进行书籍信息的复制,现在这个页面还没有添加支持。

已经支持,一并支持了豆瓣、CADAL、读秀等网站

现在复制出来书籍元信息排版上书名有些错位

已经修复,不过可能还有问题,支持的网站比较多,测试不是很充分。

现在还是保留了【】作为项目标识,因为我查了下=的用法比较专业,大部分用户应是比较陌生,【】的辨识度更高一些。另外元数据中加入了链接。

§
Опубліковано: 30.08.2022

趁着周末更新了,你可以看看效果,欢迎继续反馈。

我使用的是edge 104.0.1293.63 (正式版本) (64 位)和tampermonkey v4.16.1

我测试发现参考联盟的页面在edge下无法将字体设为100%或12px以下的大小,跟tampermonkey无关,不知它页面上什么代码导致的。现在将两个按钮放在两个地方,相对好看些了,感谢你的建议。

建议添加东莞图书馆文献搜索这个镜像支持,不用登陆。http://www.dglib.superlib.net/

已经添加支持

很多时候会在书籍详情页面进行书籍信息的复制,现在这个页面还没有添加支持。

已经支持,一并支持了豆瓣、CADAL、读秀等网站

现在复制出来书籍元信息排版上书名有些错位

已经修复,不过可能还有问题,支持的网站比较多,测试不是很充分。

现在还是保留了【】作为项目标识,因为我查了下=的用法比较专业,大部分用户应是比较陌生,【】的辨识度更高一些。另外元数据中加入了链接。

感谢更新,此次更新让脚本更加完美了,几近我心目中各种理想功能。

0.功能上来说
基本实现了该有的功能。
不过,基于Theron兄和我对于界面、排版等有一定的审美要求的前提,这里再说一下几个使用反馈。
对于复制icon的位置,我试着在各个界面自己修改对比一下。
从使用上来说,现在的icon在有用信息之后,位置上是使用更友好的,但是放眼整个页面,其实这两个icon是会破坏整个页面配色的,读秀和其各种镜像网站,字体要么蓝色要么黑色,整体网页设计也是简单的配色,现有icon的黄色由于不存在于已有网站配色,特别是检索页面会出现很多个icon,如此纵览页面的第一观感就是很多个小黄色icon抢占第一视线,不像是ss号和豆瓣搜索等是已有配合,就不会很突兀。(豆瓣除外,豆瓣读书的页面色调和这个emoji的色调是一致的)。
不改变icon的前提下,我尝试将书籍元数据的复制icon放到书名前,那么整体看起来就会和谐很多,ss号的复制放到前面相对来说也会好一点,但是不如书记员信息观感舒适,但总体上都是比放到后面好一点。
如果改变icon,我尝试不改变位置,把icon换成跟字体一直的颜色,也会显得不那么突兀,整体一个色系就好很多,包括我更换了偏白色,类网页底色,也会舒适,包括把icon放到豆瓣搜索的前面。
整体来说,不改变icon,把icon提前放到首位,整体就会比现在和谐一点。
当然,这都是些功能之外的建议,是闲暇之余可以完善的地方,是让脚本更完美的做法,现在已经很棒了。

还有2个小点,
1.ss名称的统一
ss号和ssid,比如参考联盟搜索结果页显示为ss号,书籍详情页就显示为ssid了,但其他就没有,统一一下即可。

2.元信息中id的位置
豆瓣的书籍元信息
豆瓣id的权重其实不高,豆瓣不再公开api后,都是私有api,不像ssid有库可以检索,豆瓣那里书名和isbn反而更重要,可以将【DBID】往后放,书名放到第一位。
读秀相关的元信息
ssid能用于检索,但是一般需要复制元信息的时候,一般都是完整的书籍信息,ss的权重就降低了,同时还有一键复制ss号,ss号在元信息的权重应该也往后放,书名也应该是第一位的。

时间有限,先写这些,都是些个人感受哈,再次感觉一直维护这个超棒的脚本!

TheronАвтор
§
Опубліковано: 30.08.2022
Edited: 30.08.2022

多谢反馈。

这两个icon是会破坏整个页面配色的

的确配色上没考虑太多,最开始是想着弄得醒目一些,后来没再考虑,就有点乱了。后面我统一一下,尽量让他们与网站原色调一致。

不改变icon的前提下,我尝试将书籍元数据的复制icon放到书名前,那么整体看起来就会和谐很多

复制元数据的icon我怕放到标题前面的话可能会误点到标题,间隔大的话会破坏网站原来的感觉,就默认放到后面了。

ss名称的统一

这个我也注意到了,我是比较愿意用SSID的,不过很多人习惯了SS号,所以就显示的地方用SS号,悬浮提示的地方用SSID。你说的不同页面不统一的地方是我疏忽了,后面统一下。

可以将【DBID】往后放,书名放到第一位。

这个有道理,后面更新时我调整下,可以直接去掉【DBID】行,有最后的链接就够了。

书名也应该是第一位的

有道理,后面一并调整吧,可以放到最后一行或者【链接】前面一行。

TheronАвтор
§
Опубліковано: 11.09.2022

你好,1.9.0的更新我把新加元素的配色与原站做了统一,因为还加了一些新功能,假期时间有限,细节优化方便可能改的不完善,如有建议欢迎回复反馈,谢谢你多次的改善意见。

Опублікувати відповідь

Sign in to post a reply.