PublusPage

Use for generating normal page instance in Publus reader.

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

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