Greasy Fork

Greasy Fork is available in English.

超星ss.chaoxing.com 及各地图书馆包库 的在线书一键获取目录 直接用于PDF目录编辑

可以通过点击右侧的按钮直接复制出 超星ss.chaoxing.com 及各地图书馆包库的在线书获取目录哦,直接用于FreePic2Pdf的目录编辑FreePic2Pdf_bkmk.txt,省时省力。

当前为 2018-03-14 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         超星ss.chaoxing.com 及各地图书馆包库 的在线书一键获取目录 直接用于PDF目录编辑
// @namespace    http://tampermonkey.net/
// @version      0.4
//@icon          data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJLgAAh5UAAITXAACA+QAAfPkAAHjZAABzlwECbzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQIAACUlQAAk/0AAJT/AACU/wAAkv8AAI//AACJ/wAAgf8AAHf9AQFwmQkLbgoAAAAAAAAAAAAAAAAAAJsIAACbvQAAnf8AAJ//AACg/wAAoP8AAJ7/AACb/wAAl/8AAJH/AACI/wAAfP8BAXLBCg1wCgAAAAAAAAAAAAChkzM0tv9FRr//Dg2v/0ZGwv8uLrr/ICC0/0VGvv8nKLD/Hh+o/0RFsv8wMaL/AAB+/wECc5kAAAAAAACmKgEAqf2lp+f/7PD8/0VDy//z9/7/YmHT/8bJ8P/S1fT/XF3L/93i9f9nasj/Bgaa/wAAi/8AAHz9AQJ0LgIArI8EALL/dHPd//H2/v9TT9f/9fn+/05K1f/3+v7/aGfX/+fq+v8/PsT/AACn/wAAnv8AAJX/AACH/wAAepUEALPRBgC6/yUdzf/v8/7/am7h//b4/v9mbN//+vz+/3h24f+pqen/BQC3/wMArv8AAKX/AACb/wAAkP8AAIDVBgC58QkAwf8REMj/naXu/8LI8v/DyfX/lJ7p/+zu/P+Pl+n/kY/l/wcAvv8FALX/AQCr/wAAof8AAJb/AACH9QgAvvEOCcf/IjDO/0VV2P/j4/r/trrw/+nq+v+ssu//pKzu/87P9f8OBcT/BgC6/wMAsP8AAKX/AACa/wAAjfUJAMLRFx3L/zFD0/9OXtv/g4nm/+7t+//T0vb/1Nb2/8PG9P+Zo+3/g4Hj/wcAvf8EALP/AACo/wAAnP8AAJHVCwHFjx0ozf86TNX/XWre/4OH5/+uqfD/4+H6/9/e+P/GyPT/rbXx/+3w/f+VlOT/fX/a/wEAqf8AAJ7/AACUlQ0FxyodKc39OkzV/11q3v+Dh+f/pJ7u/5mW7P+Ul+r/q6/v/+bp/P/3+f7/8/f+/yUjv/8BAKn/AACe/QAAli4AAAAAHSjMkzJD0/9OXtv/a3Xi/32D5v94f+X/YGzf/0JT1/8uPtT/6u/9/6Sk7v94edj/AQCo/wAAn5cAAAAAAAAAABwnzAgmNs+9OUrV/0xc2v9XZd3/VGLc/0VV2P8wQdL/GiLN/15c2v8GALr/BwOz/wAApr8AAKAIAAAAAAAAAAAAAAAAIS/OCCc30JUvP9L9NUbU/zNF0/8qOtD/GyTM/wwFxv8IAL7/BQC1/QIArZkAAKcIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHyzNLh4qzZUZIcvXERDI+QsCxPkIAL/ZBgC5lwQAszAAAAAAAAAAAAAAAAAAAAAA+B8AAOAHAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAgAEAAMADAADgBwAA+B8AAA==
// @description  可以通过点击右侧的按钮直接复制出 超星ss.chaoxing.com 及各地图书馆包库的在线书获取目录哦,直接用于FreePic2Pdf的目录编辑FreePic2Pdf_bkmk.txt,省时省力。
// @author       [email protected]
// @include      *ss.chaoxing.com/ebook/list?dxid=*
// @include      */n/slib/book/slib/*
// @grant        GM_xmlhttpRequest
// @grant        GM_setClipboard
// ==/UserScript==

(function() {
	'use strict';
	//处于 ss.chaoxing.com/ebook/list?dxid= 网站时
	if(location.href.match(/ss\.chaoxing\.com\/ebook\/list\?dxid=/)){
		var jsonUrl = location.href.replace('list?','searchlistbyjson?');
		var jsonMenuContent = '';
		GM_xmlhttpRequest({
			method: 'GET',
			url:  jsonUrl,
			headers: {
				'User-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',
				'Accept': 'application/json',
			},
			onload: function(responseDetails) {
				var jsonData = eval('(' + responseDetails.responseText + ')');
				for(var i = 0; i < jsonData.length; i++){
					var currEntry = jsonData[i];
					var jsonTitle = currEntry.content;
					var jsonPageNumber = currEntry.page.split('-')[0];
					console.log(jsonTitle + '\t' + jsonPageNumber);
					jsonMenuContent += jsonTitle + '\t' + jsonPageNumber + '\n';
				}
				unsafeWindow.copyJsonMenu = function() {
					GM_setClipboard(jsonMenuContent);
				};
				document.body.innerHTML += '<div style="margin:0px auto; width:30px;line-height:18px; position: fixed !important; right: 5px; top: 250px;  z-index: 100;"><button style="padding:5px; background: rgba(23,160,94,0.8);" onclick="copyJsonMenu();this.style.background=\'rgba(247,206,37,0.8)\';">复制目录</button></div>';
			}
		});
	}
	//
	if(location.href.match(/\/n\/slib\/book\/slib\//)){
		//计算总页数
		var pageNumsList = eval(document.body.innerHTML.match(/var\spages\s=\s(.+);/)[1]);
		//不用 eval 高手提供的代替方法:
		//new Function("return" + "[[1, 0], [1, 1], [1, 1], [1, 2], [1, 1], [1, 119], [1, 0], [2, 2]]")();
		//直接滚动到出错的位置
		var baseNum = 0,
			beforeZWenNum= 0;
		var maxArr = pageNumsList.map(function(item){
			return Math.max.apply(null,item);
		});
		var zwNum = Math.max.apply(null,maxArr);
		var zwPos = maxArr.indexOf(zwNum);
		for (var j = 0; j < pageNumsList.length; j++) {
			//累加算出此书的总页数
			baseNum += pageNumsList[j][1];
		}
		for (var n = 0; n < zwPos; n++) {
			if(pageNumsList[n][1] < zwNum){
				beforeZWenNum += pageNumsList[n][1];
			}
			else if(pageNumsList[n][1] > zwNum){
				break;
			}
		}
		var afterZWenNum = baseNum - zwNum - beforeZWenNum;
		console.log('此书的总页数:' + baseNum);
		console.log('正文之前页数:' + beforeZWenNum);
		console.log('正文页数:' + zwNum);
		console.log('正文之后页数:' + afterZWenNum);
		var structure = '此书的总页数:' + baseNum + '\n' + '正文之前页数:' + beforeZWenNum + '\n' + '正文页数:' + zwNum + '\n' + '正文之后页数:' + afterZWenNum + '\n';
		//获取目录的在线XML Url
		var menuUrl = document.body.querySelector('param[value^="/tree.swf?kid"]').value.replace('/tree.swf?','http://path.sslibrary.com/cat/cat2xml.dll?');
		//添加按钮 复制目录
		console.log(menuUrl);
		var menuContent = '';
		GM_xmlhttpRequest({
			method: 'GET',
			url:  menuUrl,
			headers: {
				'User-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',
				'Accept': 'text/html,application/xhtml+xml,application/xml,text/xml',
			},
			onload: function(responseDetails) {
				var parser = new DOMParser();
				var dom = parser.parseFromString(responseDetails.responseText,
												 "application/xml");
				var entries = dom.getElementsByTagName('tree');
				for (var i = 0; i < entries.length; i++) {
					var title = entries[i].getAttribute('Caption');
					var pageNumber = entries[i].getAttribute('PageNumber');
					console.log(title + '\t' + pageNumber);
					menuContent += title + '\t' + pageNumber + '\n';
					if (entries[i].getElementsByTagName('tree')){
						var subTree = entries[i].getElementsByTagName('tree');
						for (var k = 0; k < subTree.length; k++){
							var subTreeTitle = subTree[k].getAttribute('Caption');
							var subTreePageNumber = subTree[k].getAttribute('PageNumber');
							console.log('\t' + subTreeTitle + '\t' + subTreePageNumber);
							menuContent += '\t' + subTreeTitle + '\t' + subTreePageNumber + '\n';
							if (subTree[k].getElementsByTagName('node')){
								var subTreeEntries = subTree[k].getElementsByTagName('node');
								for (var j = 0; j < subTreeEntries.length; j++){
									var subNodeTitle = subTreeEntries[j].getAttribute('Caption');
									var subNodePageNumber = subTreeEntries[j].getAttribute('PageNumber');
									console.log('\t\t' + subNodeTitle + '\t' + subNodePageNumber);
									menuContent += '\t\t' + subNodeTitle + '\t' + subNodePageNumber + '\n';
								}
							}
						}
					}
					else if (entries[i].getElementsByTagName('node')){
						var subEntries = entries[i].getElementsByTagName('node');
						for (var j = 0; j < subEntries.length; j++){
							var subTitle = subEntries[j].getAttribute('Caption');
							var subPageNumber = subEntries[j].getAttribute('PageNumber');
							console.log('\t' + subTitle + '\t' + subPageNumber);
							menuContent += '\t' + subTitle + '\t' + subPageNumber + '\n';
						}
					}
				}
				unsafeWindow.copyMenu = function() {
					GM_setClipboard(structure + menuContent);
				};
				document.body.innerHTML += '<div style="margin:0px auto; width:30px;line-height:18px; position: fixed !important; right: 16px; top: 282px;  z-index: 100;"><button style="padding:5px; background: rgba(23,160,94,0.8);" onclick="copyMenu();this.style.background=\'rgba(247,206,37,0.8)\';">复制目录</button></div>';
			}
		});
	}
	// Your code here...
})();