UNPKG

2.82 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.serverRoot = void 0;
4const js_beautify_1 = require("js-beautify");
5const path = require("path");
6const UrlUtils_1 = require("r2-utils-js/dist/es7-es2016/src/_utils/http/UrlUtils");
7const request_ext_1 = require("./request-ext");
8const server_lcp_lsd_show_1 = require("./server-lcp-lsd-show");
9const server_opds_browse_v1_1 = require("./server-opds-browse-v1");
10const server_opds_browse_v2_1 = require("./server-opds-browse-v2");
11const server_opds_convert_v1_to_v2_1 = require("./server-opds-convert-v1-to-v2");
12const server_opds_local_feed_1 = require("./server-opds-local-feed");
13const server_pub_1 = require("./server-pub");
14const server_url_1 = require("./server-url");
15const server_version_1 = require("./server-version");
16function serverRoot(server, topRouter) {
17 topRouter.options("*", (_req, res) => {
18 server.setResponseCORS(res);
19 const serverData = server.serverInfo();
20 if (serverData && serverData.trustKey &&
21 serverData.trustCheck && serverData.trustCheckIV) {
22 res.setHeader("Access-Control-Allow-Headers", res.getHeader("Access-Control-Allow-Headers").toString() +
23 ", X-" + serverData.trustCheck);
24 }
25 res.status(200).end();
26 });
27 topRouter.get("/", (_req, res) => {
28 const html = `\
29<!DOCTYPE html>
30<html>
31<body>
32<h1>Local Publications</h1>
33${server.getPublications().map((pub) => {
34 const filePathBase64 = Buffer.from(pub).toString("base64");
35 return `\
36<h2><a href=".${server_pub_1.serverPub_PATH}/${UrlUtils_1.encodeURIComponent_RFC3986(filePathBase64)}">\
37${UrlUtils_1.isHTTP(pub) ? pub : path.basename(pub)}\
38</a></h2>
39`;
40 }).join("")}\
41${server.disableOPDS ? "" : `\
42<p>
43<a href='.${server_opds_local_feed_1.serverOPDS_local_feed_PATH}'>See OPDS2 Feed</a> (JSON)
44</p>
45`}\
46<h1>Additional Services</h1>
47
48<h2><a href='.${server_version_1.serverVersion_PATH}/${request_ext_1._show}'>Display Server Version</a></h2>
49
50${server.disableRemotePubUrl ? "" : `\
51<h2><a href='.${server_url_1.serverRemotePub_PATH}'>Load Remote Publication</a> (HTTP URL)</h2>
52<h2><a href='.${server_lcp_lsd_show_1.serverLCPLSD_show_PATH}'>Show LCP / LSD</a> (HTTP URL)</h2>
53`}\
54
55${server.disableOPDS ? "" : `\
56<h2><a href='.${server_opds_browse_v1_1.serverOPDS_browse_v1_PATH}'>Browse OPDS1 (XML/Atom) feed</a> (HTTP URL)</h2>
57<h2><a href='.${server_opds_browse_v2_1.serverOPDS_browse_v2_PATH}'>Browse OPDS2 (JSON) feed</a> (HTTP URL)</h2>
58<h2><a href='.${server_opds_convert_v1_to_v2_1.serverOPDS_convert_v1_to_v2_PATH}'>Convert OPDS v1 to v2</a> (HTTP URL)</h2>
59`}\
60
61</body>
62</html>
63`;
64 res.status(200).send(js_beautify_1.html(html));
65 });
66}
67exports.serverRoot = serverRoot;
68//# sourceMappingURL=server-root.js.map
\No newline at end of file