Greasy Fork is available in English.

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

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

2018/03/14時点のページです。最新版はこちら。

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==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       405647825@qq.com
// @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...
})();