1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.serverRoot = void 0;
|
4 | const js_beautify_1 = require("js-beautify");
|
5 | const path = require("path");
|
6 | const UrlUtils_1 = require("r2-utils-js/dist/es7-es2016/src/_utils/http/UrlUtils");
|
7 | const request_ext_1 = require("./request-ext");
|
8 | const server_lcp_lsd_show_1 = require("./server-lcp-lsd-show");
|
9 | const server_opds_browse_v1_1 = require("./server-opds-browse-v1");
|
10 | const server_opds_browse_v2_1 = require("./server-opds-browse-v2");
|
11 | const server_opds_convert_v1_to_v2_1 = require("./server-opds-convert-v1-to-v2");
|
12 | const server_opds_local_feed_1 = require("./server-opds-local-feed");
|
13 | const server_pub_1 = require("./server-pub");
|
14 | const server_url_1 = require("./server-url");
|
15 | const server_version_1 = require("./server-version");
|
16 | function 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 | }
|
67 | exports.serverRoot = serverRoot;
|
68 |
|
\ | No newline at end of file |