Page.Prod

Page Class libary use for the spider on Bookwalker.jp

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/431368/975233/PageProd.js

  1. var Page = function (t) {
  2. var e = {};
  3.  
  4. function r(n) {
  5. if (e[n]) return e[n].exports;
  6. var i = e[n] = {
  7. i: n,
  8. l: !1,
  9. exports: {}
  10. };
  11. return t[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports
  12. }
  13. return r.m = t, r.c = e, r.d = function (t, e, n) {
  14. r.o(t, e) || Object.defineProperty(t, e, {
  15. configurable: !1,
  16. enumerable: !0,
  17. get: n
  18. })
  19. }, r.r = function (t) {
  20. Object.defineProperty(t, "__esModule", {
  21. value: !0
  22. })
  23. }, r.n = function (t) {
  24. var e = t && t.__esModule ? function () {
  25. return t.default
  26. } : function () {
  27. return t
  28. };
  29. return r.d(e, "a", e), e
  30. }, r.o = function (t, e) {
  31. return Object.prototype.hasOwnProperty.call(t, e)
  32. }, r.p = "", r(r.s = 6)
  33. }([function (t, e, r) {
  34. "use strict";
  35. e.__esModule = !0;
  36. var n = JSON.parse("[[1,3,10],[1,5,16],[1,5,19],[1,9,29],[1,11,6],[1,11,16],[1,19,3],[1,21,20],[1,27,27],[2,5,15],[2,5,21],[2,7,7],[2,7,9],[2,7,25],[2,9,15],[2,15,17],[2,15,25],[2,21,9],[3,1,14],[3,3,26],[3,3,28],[3,3,29],[3,5,20],[3,5,22],[3,5,25],[3,7,29],[3,13,7],[3,23,25],[3,25,24],[3,27,11],[4,3,17],[4,3,27],[4,5,15],[5,3,21],[5,7,22],[5,9,7],[5,9,28],[5,9,31],[5,13,6],[5,15,17],[5,17,13],[5,21,12],[5,27,8],[5,27,21],[5,27,25],[5,27,28],[6,1,11],[6,3,17],[6,17,9],[6,21,7],[6,21,13],[7,1,9],[7,1,18],[7,1,25],[7,13,25],[7,17,21],[7,25,12],[7,25,20],[8,7,23],[8,9,23],[9,5,14],[9,5,25],[9,11,19],[9,21,16],[10,9,21],[10,9,25],[11,7,12],[11,7,16],[11,17,13],[11,21,13],[12,9,23],[13,3,17],[13,3,27],[13,5,19],[13,17,15],[14,1,15],[14,13,15],[15,1,29],[17,15,20],[17,15,23],[17,15,26]]"),
  37. i = [function (t, e, r, n) {
  38. return t ^= t << e, t ^= t >>> r, t ^= t << n
  39. }, function (t, e, r, n) {
  40. return t ^= t << n, t ^= t >>> r, t ^= t << e
  41. }, function (t, e, r, n) {
  42. return t ^= t >>> e, t ^= t << r, t ^= t >>> n
  43. }, function (t, e, r, n) {
  44. return t ^= t >>> n, t ^= t << r, t ^= t >>> e
  45. }, function (t, e, r, n) {
  46. return t ^= t << e, t ^= t << n, t ^= t >>> r
  47. }, function (t, e, r, n) {
  48. return t ^= t >>> e, t ^= t >>> n, t ^= t << r
  49. }],
  50. o = 2463534242,
  51. a = function () {
  52. function t() {
  53. this.v_kgh = 0, this.v_jgh = o, this.v_lgh = n[74][this.v_kgh++], this.v_mgh = n[74][this.v_kgh++], this.v_ngh = n[74][this.v_kgh++], this.v_ogh = i[0]
  54. }
  55. return t.prototype.b9es = function (t, e) {
  56. this.v_jgh = o;
  57. var r = n[t],
  58. a = 0;
  59. this.v_lgh = r[a++], this.v_mgh = r[a++], this.v_ngh = r[a], this.v_ogh = i[e]
  60. }, t.prototype.B0o = function (t) {
  61. var e = t >>> 0;
  62. this.v_jgh = e || o
  63. }, t.prototype.b4K = function (t) {
  64. if (t <= 1) return 0;
  65. var e, r, n = 4294967295 - t,
  66. i = this.v_jgh;
  67. do {
  68. e = (r = (i = this.v_ogh(i, this.v_lgh, this.v_mgh, this.v_ngh) >>> 0) - 1) % t
  69. } while (n < r - e);
  70. return this.v_jgh = i, e
  71. }, t.b6o = n.length, t.b6b = i.length, t.b4v = n.length * i.length, t
  72. }();
  73. e.default = a
  74. }, function (t, e, r) {
  75. "use strict";
  76. var n = r(0);
  77.  
  78. function i(t, e) {
  79. for (var r = [], n = 0; n < e; n++) {
  80. var i = t(n + 1);
  81. r[n] = r[i], r[i] = n
  82. }
  83. return r
  84. }
  85.  
  86. function o(t, e) {
  87. return e < 4 ? t(e + 1) : t(e - 1) + 1
  88. }
  89.  
  90. function a(t, e, r) {
  91. if (r <= 0) return 0;
  92. var n = t(r);
  93. return n < e ? n : n + 1
  94. }
  95.  
  96. function h(t, e, r, n, i, o, a) {
  97. for (var h = void 0, u = void 0, s = void 0, f = o, c = a, g = n, l = i, d = 0, v = 0; f + c > 0;) {
  98. if ((h = t(f + c)) < f) {
  99. if (h < g) {
  100. for (u = v; u > 0 && !(d >= e[u + -1]); u--);
  101. for (s = v + c; s < a && !(d >= e[s]); s++);
  102. r[d] = t(s - u) + u, d++, g--
  103. } else {
  104. for (u = v; u > 0 && !(d + f <= e[u + -1]); u--);
  105. for (s = v + c; s < a && !(d + f <= e[s]); s++);
  106. r[d + f + -1] = t(s - u) + u
  107. }
  108. f--
  109. } else {
  110. if (h - f < l) {
  111. for (u = d; u > 0 && !(v >= r[u + -1]); u--);
  112. for (s = d + f; s < o && !(v >= r[s]); s++);
  113. e[v] = t(s - u) + u, v++, l--
  114. } else {
  115. for (u = d; u > 0 && !(v + c <= r[u + -1]); u--);
  116. for (s = d + f; s < o && !(v + c <= r[s]); s++);
  117. e[v + c + -1] = t(s - u) + u
  118. }
  119. c--
  120. }
  121. }
  122. }
  123. e.__esModule = !0, e.default = function (t, e, r, u) {
  124. var s = new n.default,
  125. f = e ^ r ^ u,
  126. c = Math.floor(t / 65536),
  127. g = Math.floor(e / 65536),
  128. l = Math.floor(r / 65536),
  129. d = Math.floor(u / 65536),
  130. v = n.default.b6o,
  131. p = n.default.b6b,
  132. b = g ^ l ^ d,
  133. _ = c ^ d,
  134. y = t ^ e,
  135. m = t ^ r,
  136. w = t ^ u,
  137. k = (b >>>= 16) % p,
  138. B = (b - k) / p % v,
  139. M = s.b4K.bind(s);
  140. s.b9es(B, k), s.B0o(f);
  141. var S = s.b4K(65536) | s.b4K(65536) << 16,
  142. C = s.b4K(512),
  143. W = g >>> 16,
  144. I = l >>> 16;
  145. y = (y ^ S) >>> 0, m = (m ^ S) >>> 0, w = (w ^ S) >>> 0;
  146. var x = (_ = _ >>> 16 ^ C) % p,
  147. j = (_ - x) / p % v;
  148. s.b9es(j, x), s.B0o(y);
  149. var K = i(M, W * I);
  150. s.B0o(m);
  151. var P = o(M, W),
  152. z = o(M, I),
  153. A = a(M, P, W),
  154. N = a(M, z, I);
  155. s.B0o(w);
  156. var $ = [],
  157. H = [];
  158. h(M, $, H, P, z, W, I);
  159. var L = i(M, W),
  160. O = i(M, I),
  161. U = [],
  162. X = [];
  163. return h(M, X, U, A, N, W, I),
  164. function (t, e, r, n, i, o, a, h, u, s, f, c, g) {
  165. for (var l = [], d = t + 1, v = e + 1, p = d << 1, b = v << 1, _ = 0; _ < t; _++)
  166. for (var y = 0; y < e; y++) {
  167. var m = r[_ + y * t],
  168. w = m % t,
  169. k = (m - w) / t,
  170. B = _ < f[y] ? _ : _ + d,
  171. M = y < s[_] ? y : y + v,
  172. S = w < a[k] ? w : w + d,
  173. C = k < o[w] ? k : k + v;
  174. l.push(C * p + B), l.push(S * b + M)
  175. }
  176. l.push(u * p + c), l.push(h * b + g);
  177. for (var _ = 0; _ < t; _++) {
  178. var w = n[_],
  179. B = _ < c ? _ : _ + d,
  180. S = w < h ? w : w + d;
  181. l.push(o[w] * p + B), l.push(S * b + s[_])
  182. }
  183. for (var y = 0; y < e; y++) {
  184. var k = i[y],
  185. M = y < g ? y : y + v,
  186. C = k < u ? k : k + v;
  187. l.push(C * p + f[y]), l.push(a[k] * b + M)
  188. }
  189. return l
  190. }(W, I, K, L, O, U, X, A, N, H, $, P, z)
  191. }
  192. }, function (t, e, r) {
  193. "use strict";
  194. var n = r(1),
  195. i = r(0);
  196. e.__esModule = !0, e.default = function (t, e, r) {
  197. var o = t.b8A,
  198. a = t.b6V,
  199. h = t.B0J,
  200. u = t.B0K,
  201. s = t.B0n,
  202. f = t.B0A,
  203. c = i.default.b6o,
  204. g = i.default.b6b,
  205. l = Math.floor(e / o),
  206. d = Math.floor(r / a),
  207. v = e % o,
  208. p = r % a,
  209. b = l + 1 << 1,
  210. _ = d + 1 << 1,
  211. y = (l + 1) * o - v,
  212. m = (d + 1) * a - p,
  213. w = new i.default,
  214. k = f ^ l ^ d,
  215. B = k % g,
  216. M = (k - B) / g % c,
  217. S = [];
  218. w.b9es(M, B), w.B0o(h ^ u ^ s);
  219. var C = w.b4K(65536) + 65536 * w.b4K(65536) + 4294967296 * w.b4K(512),
  220. W = 4294967296 * l + h,
  221. I = 4294967296 * d + u,
  222. x = 4294967296 * f + s,
  223. j = n.default(C, W, I, x),
  224. K = function (t, e, r, n) {
  225. if (0 !== r && 0 !== n)
  226. for (; t < e;) {
  227. var i = j[t++],
  228. h = j[t++],
  229. u = i % b,
  230. s = h % _,
  231. f = (h - s) / _,
  232. c = (i - u) / b;
  233. S.push({
  234. srcX: u * o - (u > l ? y : 0),
  235. srcY: s * a - (s > d ? m : 0),
  236. destX: f * o - (f > l ? y : 0),
  237. destY: c * a - (c > d ? m : 0),
  238. width: r,
  239. height: n
  240. })
  241. }
  242. },
  243. P = 0,
  244. z = l * d * 2;
  245. return K(P, z, o, a), K(P = z, z += 2, v, p), K(P = z, z += 2 * l, o, p), K(P = z, z += 2 * d, v, a), S
  246. }
  247. }, function (t, e, r) {
  248. "use strict";
  249. var n = r(2),
  250. i = function () {
  251. function t(t, e, r) {
  252. this.sourceImage = t, this.page = e, this.size = r
  253. }
  254. return t.prototype.decode = function () {
  255. const t = this;
  256. return new Promise(e => {
  257. const r = new Image;
  258. r.onload = function () {
  259. const n = t.createScript(t.page, r.width, r.height);
  260. let i = document.createElement("canvas");
  261. i.width = r.width, i.height = r.height;
  262. let o = i.getContext("2d");
  263. if (t.executeDecodeByScript(r, n, o), t.size && (r.width !== t.size.Width || r.height !== t.size.Height)) {
  264. const e = i;
  265. (i = document.createElement("canvas")).width = t.size.Width, i.height = t.size.Height, (o = i.getContext("2d")).drawImage(e, 0, 0, t.size.Width, t.size.Height, 0, 0, t.size.Width, t.size.Height)
  266. }
  267. e(i.toDataURL("image/jpeg", 1))
  268. }, r.src = t.sourceImage
  269. })
  270. }, t.prototype.createScript = function (t, e, r) {
  271. return n.default(t, e, r)
  272. }, t.prototype.executeDecodeByScript = function (t, e, r) {
  273. e.forEach(function (e) {
  274. r.drawImage(t, e.destX, e.destY, e.width, e.height, e.srcX, e.srcY, e.width, e.height)
  275. })
  276. }, t
  277. }();
  278. e.__esModule = !0, e.default = i
  279. }, function (t, e, r) {
  280. "use strict";
  281. e.__esModule = !0, e.default = function (t, e, r, n) {
  282. var a = {
  283. B0G: t,
  284. url: t + "/0.jpeg",
  285. B0H: ".jpeg",
  286. fileName: "0"
  287. },
  288. h = {
  289. b9W: function (t, e, r) {
  290. var n = [];
  291. return o(n, t), o(n, e), o(n, r), n
  292. }(e, r, n),
  293. configuration: {
  294. "file-name-version": "1.0"
  295. }
  296. };
  297. return "string" == typeof h.configuration["file-name-version"] ? a.B0G + "/" + function (t) {
  298. var e = parseInt(t, 10);
  299. if (!isNaN(e) && e >= 0 && e <= 0x1000000000000000) {
  300. var r = e.toString(16);
  301. return r.length.toString(16) + r
  302. }
  303. return "0" + t
  304. }(a.fileName) + function (t, e) {
  305. var r = e.B0G + "/",
  306. n = r.length + e.fileName.length,
  307. o = 1 + n << 1,
  308. a = new Array(o),
  309. h = String.prototype.charCodeAt.bind(r + e.fileName);
  310. a[0] = 0, a[1] = 59;
  311. for (var u = 2, s = 0; s < n; s++) {
  312. var f = h(s);
  313. a[u++] = f >>> 8, a[u++] = f % 256
  314. }
  315. for (var c = 3, g = (e.fileName.length << 1) + o + o; g < 256; c++) g += o;
  316. for (var l = 1670739, d = 1282576, v = 2237221, p = 1 + r.length << 1, b = 0, _ = 0; _ < c; _++, p = 0)
  317. for (; p < o;) {
  318. var y = 435 * (v ^= a[p++] ^ t.b9W[b++]),
  319. m = 435 * d + ((7 & v) << 18) + (y >>> 22),
  320. w = 435 * l + ((3 & d) << 19) + ((4194296 & v) >>> 3) + (m >>> 21);
  321. v = 4194303 & y, d = 2097151 & m, l = 2097151 & w, b >= t.b9W.length && (b = 0)
  322. }
  323. for (var k = new Array(16), p = 0; p < k.length; p += 2) switch (p) {
  324. case 0:
  325. i(k, p, l >>> 13 ^ t.b9W[Math.floor(p / 2)]);
  326. break;
  327. case 2:
  328. i(k, p, l >>> 5 & 255 ^ t.b9W[Math.floor(p / 2)]);
  329. break;
  330. case 4:
  331. i(k, p, ((31 & l) << 3 | d >>> 18) ^ t.b9W[Math.floor(p / 2)]);
  332. break;
  333. case 6:
  334. i(k, p, d >>> 10 & 255 ^ t.b9W[Math.floor(p / 2)]);
  335. break;
  336. case 8:
  337. i(k, p, d >>> 2 & 255 ^ t.b9W[Math.floor(p / 2)]);
  338. break;
  339. case 10:
  340. i(k, p, ((3 & d) << 6 | v >>> 16) ^ t.b9W[Math.floor(p / 2)]);
  341. break;
  342. case 12:
  343. i(k, p, v >>> 8 & 255 ^ t.b9W[Math.floor(p / 2)]);
  344. break;
  345. case 14:
  346. i(k, p, 255 & v ^ t.b9W[Math.floor(p / 2)])
  347. }
  348. return String.fromCharCode.apply(String, k)
  349. }(h, a) + a.B0H : a.url
  350. };
  351. var n = function (t) {
  352. return (t < 10 ? 48 : 87) + t
  353. },
  354. i = function (t, e, r) {
  355. t[e] = n(r >>> 4), t[e + 1] = n(15 & r)
  356. };
  357.  
  358. function o(t, e) {
  359. for (var r = 0; r < e.length; r++) t[r] ^= e[r]
  360. }
  361. }, function (t, e, r) {
  362. "use strict";
  363. var n = r(0),
  364. i = r(4),
  365. o = r(3),
  366. a = function () {
  367. function t(t, e, r, i, o, a, s, f) {
  368. this.index = t, this.pageId = e, this.config = r, this.axios = i, this.key1 = o, this.key2 = a, this.key3 = s, this.baseUrl = f, this.pageConfig = this.config.FileLinkInfo.PageLinkInfoList[0].Page;
  369. for (var c = this.pageConfig.NS, g = this.pageConfig.PS, l = this.pageConfig.RS, d = 47, v = 0; v < this.pageId.length; v++) d += this.pageId.charCodeAt(v);
  370. var p = this.pageConfig.No.toString(10);
  371. for (v = 0; v < p.length; v++) d += p.charCodeAt(v);
  372. var b = 255 & (d += function (t, e, r) {
  373. return h(t) + h(e) + h(r)
  374. }(this.key1, this.key2, this.key3));
  375. b |= b << 8, b |= b << 16, this.B0A = d % n.default.b4v, this.B0J = (b ^ u(o) ^ c) >>> 0, this.B0K = (b ^ u(a) ^ g) >>> 0, this.B0n = (b ^ u(s) ^ l) >>> 0, this.b8A = this.pageConfig.BlockWidth, this.b6V = this.pageConfig.BlockHeight
  376. }
  377. return t.prototype.getImage = async function (t) {
  378. const e = i.default(this.pageId, this.key1, this.key2, this.key3),
  379. r = `${this.baseUrl}${e}` + (t ? `?hti=${t.hti}&cfg=1&bid=${t.bid}&uuid=${t.uuid}&Policy=${t.Policy}&Signature=${t.Signature}&Key-Pair-Id=${t["Key-Pair-Id"]}` : ""),
  380. n = "data:image/jpeg;base64," + function (t) {
  381. for (var e = "", r = new Uint8Array(t), n = r.byteLength, i = 0; i < n; i++) e += String.fromCharCode(r[i]);
  382. return window.btoa(e)
  383. }(await axios.get(r, {
  384. responseType: "arraybuffer"
  385. }).then(t => t.data));
  386. return new o.default(n, this, this.pageConfig.Size).decode()
  387. }, t
  388. }();
  389.  
  390. function h(t, e) {
  391. return void 0 === e && (e = 0), t.reduce(function (t, e) {
  392. return t + e
  393. }, e)
  394. }
  395.  
  396. function u(t) {
  397. var e = 0,
  398. r = -4 & t.length;
  399. r > 32 && (r = 32);
  400. for (var n = 0; n < r;) e ^= t[n++] << 24, e ^= t[n++] << 16, e ^= t[n++] << 8, e ^= t[n++] << 0;
  401. return e >>> 0
  402. }
  403. e.__esModule = !0, e.default = a
  404. }, function (t, e, r) {
  405. const n = r(5);
  406. e.__esModule = !0, t.exports = {
  407. init: function (t, e, r, i, o, a, h, u) {
  408. return new n.default(t, e, r, i, o, a, h, u)
  409. }
  410. }
  411. }]);