UNPKG

@internetarchive/dweb-archive-dist

Version:

Internet Archive offline UI distribution for use by dweb-mirror

137 lines (128 loc) 9.07 kB
<!DOCTYPE html> <!--suppress HtmlUnknownAnchorTarget --> <html> <head> <meta charset="UTF-8"> <title>Internet Archive</title> <!--TODO links should refer to content addressable files--> <script src="./includes/jquery-1.10.2.min.js" type="text/javascript"></script> <link href="./includes/archive.min.css" rel="stylesheet" type="text/css"> <script>var archive_setup=[]</script> <!-- JW now replaced by RenderMedia (part of WebTorrent) stuffing a Video tag --> <script src="./includes/build/js/play8.min.js" type="text/javascript"></script> <script src="./includes/build/js/playset.min.js" type="text/javascript"></script> <link rel='stylesheet' href='dweb-archive-styles.css'> <!--This group Copied from archive.html for a texts obj, removed version locking, and made relative paths--> <script src="./includes/bootstrap.min.js" type="text/javascript"></script> <!-- Dont have react/umd on flight, switched with react, its needed even though in JS as refered to in archive.min.js" --> <script src="./includes/node_modules/react/dist/react.js" type="text/javascript"></script> <!-- <script src="//archive.org/includes/node_modules/react/umd/react.production.min.js" type="text/javascript"></script> <script src="//archive.org/includes/node_modules/react-dom/umd/react-dom.production.min.js" type="text/javascript"></script> --> <!-- TODO Re webpack when online, then make this /includes <script src="//archive.org/includes/build/js/polyfill.min.js" type="text/javascript"></script> --> <!-- Dont have build, but have own copy of archive.min --> <script src="./includes/archive.min.js" type="text/javascript"></script> <link href="./bookreader/BookReader/mmenu/dist/css/jquery.mmenu.css" rel="stylesheet" type="text/css"/> <link href="./bookreader/BookReader/mmenu/dist/addons/navbars/jquery.mmenu.navbars.css" rel="stylesheet" type="text/css"/> <link href="./bookreader/BookReader/BookReader.css" rel="stylesheet" type="text/css"/> <!-- not part of repo - for flight copied into this location --> <!--Commented out because it has "important" styles that really dont want in non-bookreader esp padding-top --> <!--<link href="./bookreader/BookReader-ia.css" rel="stylesheet" type="text/css"/>--> <!-- come from @internetarchive/bookreader/BookReader repo --> <script src="./bookreader/BookReader/jquery-ui-1.12.0.min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/jquery.ui.touch-punch.min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/jquery.browser.min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/dragscrollable-br.js" type="text/javascript"></script> <script src="./bookreader/BookReader/jquery.colorbox-min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/jquery.bt.min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/soundmanager/script/soundmanager2-jsmin.js" type="text/javascript"></script> <script src="./bookreader/BookReader/mmenu/dist/js/jquery.mmenu.min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/mmenu/dist/addons/navbars/jquery.mmenu.navbars.min.js" type="text/javascript"></script> <script src="./bookreader/BookReader/BookReader.js" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.mobile_nav.js" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.search.js" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.chapters.js" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.tts.js" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.url.js?v=891b5f7" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.resume.js?v=891b5f7" type="text/javascript"></script> <script src="./bookreader/BookReader/plugins/plugin.archive_analytics.js" type="text/javascript"></script> <!-- not part. of repo - for flight copied into this location --> <script src="./bookreader/BookReaderHelpers.js" type="text/javascript"></script> <!-- not part of repo - for flight copied into this location --> <script src="./bookreader/LendingFlow.js" type="text/javascript"></script> <!-- not part of repo - for flight copied into this location --> <script src="./bookreader/BookReaderJSIA.js" type="text/javascript"></script> <!-- TODO-SPLIT Just experimental as part of dweb-transports#split, should normally be commented out also moved to dweb-mirror --> <script type="text/javascript"> // SEE-OTHER-ADDTRANSPORT in dweb-transports dweb-archive dweb-mirror // TODO-SPLIT these will need to move into local server or may be excluded by cross-origin low-bandwidth rule in chrome // TODO-SPLIT move this function into Transports.js /** * Process searchparams to something appropriate to pass to dweb-transports, allowing for defaults and mistakes etc. * * @param searchparams mirror=HOST:PORT&transport=XXXX&transport=YYYY * @returns {{statuselement: *, transports: *, paused: *, mirror: *, defaulttransports: ([string]|[string, string, string]), http: {urlbase: *}}} * @private */ function _transportsOptions(searchparams) { // Allows abbreviation like mirror=localhost:4244, also allows mirror to specify https://xyz.org let mirror = searchparams.get("mirror"); if (mirror && !(mirror === null) && !mirror.startsWith('http')) { mirror = location.protocol + '//' + mirror; } const transports = searchparams.getAll("transport"); DwebArchive.mirror = mirror || null; // So DwebArchive can check it locally (null check turns "" into null) return { statuselement: document.getElementById("dweb-status"), http: {urlbase: (mirror && !(mirror === null)) ? mirror : "https://dweb.archive.org"}, transports, defaulttransports: (mirror && !(mirror === null)) ? ["HTTP"] : ["HTTP", "WEBTORRENT", "IPFS", "GUN"], paused: searchparams.getAll("paused"), mirror: mirror, } } function _opts(searchparams, transportsOptions) { // Now setup opts, which has to happen after transportsOptions // Save the persistent (cross-window) state (transport & mirror & paused), and returns any other searchparams not saved const opts = Nav.setState(searchparams, {transport: DwebTransports._tabbrevs(transportsOptions), mirror: transportsOptions.mirror}); const pathParts = window.location.pathname.split('/'); const k = ['details', 'download'].find(kPossible => pathParts.includes(kPossible)); opts.identifier = k ? pathParts[pathParts.length - 1] // identifier must be last part of URL for this to work : opts.identifier || opts.item; opts.download = pathParts.includes('download') || opts.download || false; return opts; } </script> <style> #jw6, #jw6__list { background-color:black; } </style> <script type="text/javascript">localStorage.debug = "dweb-archive dweb-archive:* dweb-archivecontroller:* dweb-transports dweb-transports:* ia-components:*";</script> <!-- <script type="text/javascript" src="dweb-serviceworker-proxy-bundle.js"></script> <!-- Transport via Proxy --> <script type="text/javascript" src="dweb-archive-bundle.js"></script> <script type="text/javascript"> // This block has to run before and probably in separate <script> so that the document.write's happen before p_connect is called. const searchparams = new URL(window.location.href).searchParams const transportsOptions = _transportsOptions(searchparams); const opts = _opts(searchparams, transportsOptions); // Side effect of saving persistent state we want to hold across history etc DwebTransports.loadIntoHtmlPage(transportsOptions); // Writes script tags to document to dynamically load any transports specified that require it (generates warnings in log) </script> </head> <!-- TODO-DETAILS missing scripts, properties and links that appear before body tag on archive/details/commute etc --> <body class="navia ia-module navbar-no-margin-bottom tiles responsive"> <!--suppress HtmlUnknownAnchorTarget --> <a href="#maincontent" class="hidden-for-screen-readers">Skip to main content</a> <div id="main"></div><!-- destination for part accumulated by ArchiveBase as html--> <script> $(function(){ $('.navbar [data-toggle="tooltip"]').tooltip({}); }); DwebTransports.p_connect(transportsOptions) .then(unusedRes => Nav.metaFactory(opts)) .catch(err => console.log("ERROR in archive.html call to p_connect failed to even run ")); </script> </body> </html>