├── .babelrc ├── .eslintignore ├── .eslintrc.json ├── .github └── workflows │ └── node.js.yml ├── .gitignore ├── Account.jsx ├── ArchiveBase.js ├── CHANGELOG.md ├── LICENSE ├── Nav.js ├── README.md ├── ReactSupport.js ├── Util.js ├── archive.html ├── archive.js ├── archive_files.txt ├── archivelogowhiteonblack.png ├── archivesw.html ├── components ├── AlbumTheatre.jsx ├── AudioVideo.jsx ├── BookReaderWrapper.jsx ├── CherModal.jsx ├── DetailsPage.jsx ├── Home.jsx ├── Page.jsx ├── RadioPlayerController.js ├── RelatedItemsWrapper.jsx ├── SaveModal.jsx ├── SearchPage.jsx ├── SettingsComponent.jsx ├── TheatreControls.jsx ├── Theatres.jsx └── optionSelect │ ├── optionSelect.js │ └── optionSelect.less ├── contributors.txt ├── dist ├── archive.html ├── archivesw.html ├── bookreader │ ├── BookReader │ ├── BookReader-ia.css │ ├── BookReaderHelpers.js │ ├── BookReaderJSIA.js │ ├── LendingFlow.js │ └── static │ │ ├── pd-daisy.svg │ │ └── preview-800x1200.png ├── bootloader.html ├── components │ └── manage │ │ ├── ManageItems.js │ │ ├── manage.css │ │ └── manage.js ├── dweb-archive-bundle.js ├── dweb-archive-bundle.js.map ├── dweb-archive-styles.css ├── epubreader ├── favicon.ico ├── images │ ├── 911-close-window-icon-off.png │ ├── 911-close-window-icon-on.png │ ├── Broken_document.png │ ├── WaybackLogoSmall.png │ ├── archivelogo207x207notext.jpg │ ├── archivelogo246x246.jpg │ ├── baseline-fast_rewind-24px.svg │ ├── baseline-home-24px.svg │ ├── baseline-pause-24px.svg │ ├── baseline-play_arrow-24px.svg │ ├── baseline-update-24px.svg │ ├── black.png │ ├── cc │ │ ├── by.png │ │ ├── cc.png │ │ ├── nc.png │ │ ├── nd.png │ │ ├── publicdomain.png │ │ ├── sa.png │ │ └── zero.png │ ├── feedback.svg │ ├── footer.png │ ├── gift.png │ ├── go-button-gateway.gif │ ├── llama-icon.png │ ├── loading.gif │ ├── notfound.png │ ├── noun_Ladybug_1869205.svg │ ├── noun_Ladybug_1869205_red.svg │ ├── palm-leaf-wiki-logo.png │ ├── search-saved.png │ ├── settings.svg │ └── tv2op70.png ├── includes │ ├── archive.css │ ├── archive.js │ ├── archive.js.map │ ├── archive.min.css │ ├── archive.min.js │ ├── archive.min.js.map │ ├── asc.gif │ ├── bg.gif │ ├── bootstrap.min.js │ ├── build │ │ ├── js │ │ │ ├── play8.min.js │ │ │ ├── play8.min.js.map │ │ │ ├── playset.min.js │ │ │ ├── playset.min.js.map │ │ │ ├── polyfill.min.js │ │ │ └── polyfill.min.js.map │ │ └── npm │ │ │ └── bootstrap │ │ │ └── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ ├── desc.gif │ ├── fonts │ │ ├── Iconochive-Regular.eot │ │ ├── Iconochive-Regular.svg │ │ ├── Iconochive-Regular.ttf │ │ ├── Iconochive-Regular.woff │ │ ├── steppum fo rotsap flipped.otf │ │ └── steppum fo rotsap.otf │ ├── jquery-1.10.2.min.js │ ├── jquery-1.10.2.min.map │ ├── jquery-ui │ │ └── images │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ └── ui-bg_highlight-soft_75_cccccc_1x100.png │ └── node_modules │ │ └── react │ │ └── dist │ │ └── react.js ├── jw │ └── 8 │ │ └── jwplayer.core.controls.html5.js ├── languages │ ├── english.json │ ├── french.json │ ├── german.json │ ├── hindi.json │ ├── indonesian.json │ ├── italian.json │ ├── japanese.json │ ├── marathi.json │ ├── myanmar.json │ ├── portugese.json │ └── spanish.json ├── package.json └── upload │ └── images │ └── tree │ └── loading.gif ├── docs ├── archive_architecture.md └── archive_architecture_ipfs.md ├── dweb-archive-styles.css ├── ia-components ├── README.md ├── dweb-index.js ├── sandbox │ ├── AnchorDetails.jsx │ ├── bookreader-component │ │ └── bookreader-wrapper-main.jsx │ ├── details │ │ ├── AnchorDownload.jsx │ │ ├── AnchorSearch.jsx │ │ ├── Carousel.jsx │ │ ├── CrawlConfig.js │ │ ├── DetailsActionButtons.jsx │ │ ├── DetailsCollectionList.jsx │ │ ├── DetailsDownloadOptions.jsx │ │ ├── DetailsMetadata.jsx │ │ ├── DetailsReviews.jsx │ │ ├── Download.jsx │ │ ├── Image.jsx │ │ ├── ModalGo.jsx │ │ ├── NavWrap.jsx │ │ ├── Search.jsx │ │ └── Tabby.jsx │ ├── languages │ │ ├── Languages.jsx │ │ ├── google │ │ │ ├── _.txt │ │ │ ├── _metadata.txt │ │ │ ├── english.txt │ │ │ ├── english_metadata.txt │ │ │ ├── french.txt │ │ │ ├── french_metadata.txt │ │ │ ├── german.txt │ │ │ ├── german_metadata.txt │ │ │ ├── hindi.txt │ │ │ ├── hindi_metadata.txt │ │ │ ├── indonesian.txt │ │ │ ├── indonesian_metadata.txt │ │ │ ├── italian.txt │ │ │ ├── italian_metadata.txt │ │ │ ├── japanese.txt │ │ │ ├── japanese_metadata.txt │ │ │ ├── marathi.txt │ │ │ ├── marathi_metadata.txt │ │ │ ├── myanmar.txt │ │ │ ├── myanmar_metadata.txt │ │ │ ├── portugese.txt │ │ │ ├── portugese_metadata.txt │ │ │ ├── spanish.txt │ │ │ └── spanish_metadata.txt │ │ ├── json │ │ │ ├── english.json │ │ │ ├── french.json │ │ │ ├── german.json │ │ │ ├── hindi.json │ │ │ ├── indonesian.json │ │ │ ├── italian.json │ │ │ ├── japanese.json │ │ │ ├── marathi.json │ │ │ ├── myanmar.json │ │ │ ├── portugese.json │ │ │ └── spanish.json │ │ ├── languagebuild.js │ │ └── manual │ │ │ ├── english.json │ │ │ ├── french.json │ │ │ ├── german.json │ │ │ ├── hindi.json │ │ │ ├── indonesian.json │ │ │ ├── italian.json │ │ │ ├── japanese.json │ │ │ ├── marathi.json │ │ │ ├── myanmar.json │ │ │ ├── portugese.json │ │ │ └── spanish.json │ └── tiles │ │ ├── RelatedItems.jsx │ │ ├── TileComponent.jsx │ │ └── TileGrid.jsx └── util.js ├── images ├── Broken_document.png ├── archivelogo207x207notext.jpg ├── archivelogo246x246.jpg ├── baseline-fast_rewind-24px.svg ├── baseline-home-24px.svg ├── baseline-pause-24px.svg ├── baseline-play_arrow-24px.svg ├── baseline-update-24px.svg ├── feedback.svg └── palm-leaf-wiki-logo.png ├── includes ├── archive.css ├── archive.js ├── archive.js.map ├── archive.min.css ├── archive.min.js ├── archive.min.js.map ├── package.json ├── src │ ├── fonts │ │ └── Iconochive.less │ ├── js │ │ ├── archive.js │ │ └── setUpCopyableTexts.js │ └── less │ │ ├── archive.less │ │ ├── bootstrap │ │ ├── bootstrap.less │ │ └── variables.less │ │ ├── jquery-ui │ │ ├── README.md │ │ ├── jquery-ui.less │ │ ├── jquery-ui.min.css │ │ └── theme.css │ │ ├── partials │ │ ├── accordion.less │ │ ├── banners.less │ │ ├── base.less │ │ ├── choice-fieldset.less │ │ ├── colors.less │ │ ├── copyable-text.less │ │ ├── cryptocurrency-logo.less │ │ ├── cryptocurrency-options.less │ │ ├── dark.less │ │ ├── dev_tray.less │ │ ├── directory-listing-table.less │ │ ├── disability-eligibility.less │ │ ├── donate-cryptocurrency.less │ │ ├── donate.less │ │ ├── donate │ │ │ └── modals.less │ │ ├── download-directory-listing.less │ │ ├── elements.less │ │ ├── facets.less │ │ ├── fts-message.less │ │ ├── grid-tiles.less │ │ ├── hero.less │ │ ├── icons.less │ │ ├── item-create.less │ │ ├── item-details-about.less │ │ ├── item-details-archive-info.less │ │ ├── item-details-metadata.less │ │ ├── item-download-options.less │ │ ├── item-edit-status.less │ │ ├── item-stats-summary.less │ │ ├── item-upload-info.less │ │ ├── layouts.less │ │ ├── loading-message.less │ │ ├── login-signup.less │ │ ├── news-stories.less │ │ ├── qr-code.less │ │ ├── related-items.less │ │ ├── related-music.less │ │ ├── rotato.less │ │ ├── search-autocomplete.less │ │ ├── search-options.less │ │ ├── search-results-page.less │ │ ├── shapes.less │ │ ├── signup-form.less │ │ ├── simple-filter-form.less │ │ ├── simple-lists-admin.less │ │ ├── simple-page-navigation-controls.less │ │ ├── simple-text-form.less │ │ ├── social-sharing-links.less │ │ ├── sponsorship.less │ │ ├── stats-graph.less │ │ ├── stats-table.less │ │ ├── table-with-actions.less │ │ ├── transitions.less │ │ ├── typography.less │ │ ├── universal-access.less │ │ ├── whole-earth-web-archive.less │ │ └── wikipedia-summary.less │ │ └── tv.less ├── webpack.common.js ├── webpack.dev.js ├── webpack.prod.js └── yarn.lock ├── package.json ├── util └── throttler.js ├── webpack.config.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/env", { 5 | "targets": { 6 | "node": "current" 7 | } 8 | } 9 | ], 10 | "@babel/preset-react" 11 | ], 12 | "plugins": [ 13 | "@babel/plugin-proposal-class-properties", 14 | "@babel/plugin-proposal-object-rest-spread", 15 | [ 16 | "@babel/plugin-transform-runtime", 17 | { 18 | "regenerator": true 19 | } 20 | ] 21 | ] 22 | } -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | package.json 2 | lerna.json 3 | /.git 4 | packages/*/node_modules 5 | packages/*/lib 6 | packages/*/dist 7 | packages/*/build 8 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "jest/globals": true 5 | }, 6 | "extends": "airbnb", 7 | "plugins": [ 8 | "babel", 9 | "eslint-plugin-import", 10 | "eslint-plugin-react", 11 | "jest", 12 | "jsx-a11y" 13 | ], 14 | "rules": { 15 | "arrow-parens": 0, 16 | "babel/semi": 2, 17 | "camelcase": 1, 18 | "class-methods-use-this": 1, 19 | "comma-dangle": 0, 20 | "implicit-arrow-linebreak": 1, 21 | "import/no-extraneous-dependencies": [ 22 | "error", { 23 | "devDependencies": ["**/*.test.js", "**/*.stories.js"], 24 | "optionalDependencies": false, 25 | "peerDependencies": false 26 | } 27 | ], 28 | "import/prefer-default-export": 0, 29 | "indent": 1, 30 | "jsx-a11y/label-has-associated-control": 2, 31 | "jsx-a11y/label-has-for": 0, 32 | "max-len": 0, 33 | "no-else-return": 0, 34 | "no-multi-assign": 0, 35 | "no-param-reassign": 1, 36 | "no-plusplus": 0, 37 | "no-return-assign": 1, 38 | "no-underscore-dangle": 0, 39 | "no-nested-ternary": 0, 40 | "no-unused-vars": 1, 41 | "object-curly-newline": 0, 42 | "operator-linebreak": 1, 43 | "prefer-destructuring": 0, 44 | "prefer-object-spread": 0, 45 | "prefer-template": 0, 46 | "quote-props": 1, 47 | "react/destructuring-assignment": 0, 48 | "react/jsx-closing-bracket-location": 1, 49 | "react/jsx-filename-extension": [ 50 | 1, { 51 | "extensions": [".js", ".jsx"] 52 | } 53 | ], 54 | "react/jsx-first-prop-new-line": 0, 55 | "react/jsx-indent": 1, 56 | "react/jsx-indent-props": 1, 57 | "react/jsx-max-props-per-line": 0, 58 | "react/jsx-one-expression-per-line": 1, 59 | "react/jsx-wrap-multilines": 1, 60 | "react/no-multi-comp": 0, 61 | "react/no-unused-state": 1, 62 | "react/prefer-stateless-function": 1, 63 | "react/prop-types": 0, 64 | "semi": 2 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | # xloem modified this workflow to change npm to yarn, and reduce tests performed 5 | 6 | name: Node.js CI 7 | 8 | on: 9 | push: 10 | branches: [ master ] 11 | pull_request: 12 | branches: [ master ] 13 | 14 | jobs: 15 | build: 16 | 17 | runs-on: ubuntu-latest 18 | 19 | strategy: 20 | matrix: 21 | node-version: [10.x, 12.x, 14.x, 15.x] 22 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 23 | 24 | steps: 25 | - uses: actions/checkout@v2 26 | - name: Use Node.js ${{ matrix.node-version }} 27 | uses: actions/setup-node@v1 28 | with: 29 | node-version: ${{ matrix.node-version }} 30 | - run: yarn install 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /includes/node_modules 3 | dist/bookreader/BookReader 4 | dist/epubreader 5 | dist/dweb-transports-bundle.js 6 | dist/dweb-objects-bundle.js 7 | *.swp 8 | /includes/package-lock.json 9 | yarn-error.log 10 | .idea 11 | web_modules 12 | dist/node_modules 13 | yarn.lock 14 | -------------------------------------------------------------------------------- /ArchiveBase.js: -------------------------------------------------------------------------------- 1 | import { stringify } from '@stratumn/canonicaljson'; 2 | // Other Archive Repos 3 | import { ArchiveItem } from '@internetarchive/dweb-archivecontroller'; 4 | // This repo 5 | import React from 'react'; 6 | import ReactDOM from 'react-dom'; 7 | import {AJS_on_dom_loaded} from './Util'; 8 | import {Page} from "./components/Page"; 9 | 10 | 11 | 12 | // See other almost DUPLICATEDCODE#003 (iaux and dweb-archive) 13 | function _onefield(key, value) { 14 | return Array.isArray(value) 15 | ? value.map(v => _onefield(key, v)).join(' OR ') 16 | // This next line uses stringify instead of toString() because we want '"abc"' and '1' i.e. quotes if its a string 17 | : (`${key}:${stringify(value)}`); 18 | } 19 | 20 | function queryFrom(query) { 21 | // Turn query as object into a viable query string for a Url (but not yet urlencoded) 22 | return Object.entries(query).map(kv => _onefield(kv[0], kv[1])).join(' AND '); // k1:v1 AND k2:v2 23 | } 24 | // End of DUPLICATEDCODE#0003 25 | const searchConfig = { 26 | rows: 30, // How many to retrieve per page, smaller numbers load quicker, but then scroll down will have to get next page 27 | }; 28 | 29 | export default class ArchiveBase extends ArchiveItem { 30 | /** 31 | * Subclass of ArchiveItem that can also handle a search and other parameterisation of display 32 | * Fields: 33 | * 34 | */ 35 | constructor({ and='', download=false, identifier = undefined, message=undefined, metaapi = undefined, noCache=false, page=1, 36 | query=undefined, rows=searchConfig.rows, sort=[]}={}) { 37 | super({identifier, metaapi, sort}); 38 | this.and = and; 39 | this.download = download; // True if want download directory 40 | this.noCache= noCache; 41 | this.page = page; 42 | this.query = (typeof(query) === "object") 43 | ? queryFrom(query) // form { creator: "Foo bar" ... } 44 | : query ; // Note this should be an UNUUENCODED query or an object 45 | this.rows= rows; 46 | this.state = {}; // This will be automatic when moves to React 47 | this.message = message; 48 | } 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dweb-archive 2 | User Interface to access the archive from the browser. 3 | Builds on dweb-transports and typically (currently) loaded from dweb-transport 4 | 5 | ## Background 6 | This library is part of a general project at the Internet Archive (archive.org) 7 | to support the decentralized web. 8 | 9 | ## Goals 10 | * to allow unmodified browsers to access the Internet Archive's millions of items 11 | * to support as many of the IA's features as possible, adding them iteratively 12 | * to use decentralized platforms for as many features as possible, without sacrificing functionality 13 | * to avoid single points of failure where possible 14 | 15 | ## Installation 16 | 17 | Please see the installation instructions in the 18 | [dweb-mirror repo](https://github.com/internetarchive/dweb-mirror) 19 | They are much more recent than the ones below. 20 | 21 | ### All cases 22 | ``` 23 | git clone https://git@github.com/internetarchive/dweb-archive.git 24 | cd dweb-archive 25 | 26 | # install the dependencies including IPFS & WebTorrent and dweb-transports 27 | npm install 28 | ``` 29 | ### Installation for testing in a browser 30 | 31 | Do the "All Case install above" 32 | 33 | Install a simple http-server, this may require sudo depending on permissions 34 | ``` 35 | npm run setuphttp 36 | npm install -g http-server` 37 | cd dist 38 | http-server 39 | ``` 40 | Now open a browser page. 41 | 42 | Note: Firefox works better than Chrome for local usage as Chrome limits cross-origin 43 | http to 6 streams and we need to implement a limited http pool to fix this. 44 | 45 | `open "http://localhost:8080/archive.html"` 46 | 47 | To test with limited transports, for example HTTP only, add the transport parameter. 48 | 49 | `open "http://localhost:8080/archive.html?transport=HTTP"` 50 | 51 | To test against dweb-mirror you can pass a parameter e.g. 52 | 53 | `open "http://localhost:8080/archive.html?mirror=localhost:4244&transport=HTTP"` 54 | 55 | 56 | ### Node Installation to work on this repo 57 | Note that the only reason to do this would be to work on the code, 58 | 59 | Do the "All Case install above" 60 | 61 | Build (webpack) the bundles and copy needed files to dist/ 62 | `webpack --mode development` 63 | 64 | ## See related: 65 | 66 | * [Archive.org](https://dweb.archive.org) bootstrap into the Archive's page 67 | 68 | ### Repos: 69 | * *dweb-transports:* Common API to underlying transports (http, webtorrent, ipfs, yjs) 70 | * *dweb-archive:* Decentralized Archive webpage and bootstrapping 71 | * *dweb-transport:* Original Repo, still has some half-complete projects 72 | * *dweb-archivecontroller:* Object model for archive, includes routing table 73 | 74 | ## Directory structure here 75 | ##### Directories 76 | * components - React components used by the UI (see also ia-components) 77 | * dist - all that is needed to run the UI - this is also in its own npm package. 78 | * docs - should be some documentation, but its a bit out of date 79 | * ia-components - More React components, these are dual purpose, they don't depend on Dweb 80 | * images - extra images used (there are also ones in dist/images copied from archive.org) 81 | * includes - files copied over from internet archive, where we build the CSS and JS 82 | * node_modules - installed from the dependencies in package.json by `yarn install` 83 | * util - just has throttler.js and to be honest I can't remember why its off on its own 84 | * web_modules - compiled by pix for web components (radio-player is the only one, but that has dependencies) 85 | ##### Files 86 | * archive.html - main file for displaying archive (detail or search) pages 87 | * archive.js - top level for creating archive-bundle.js 88 | * dweb-archive-styles.css - CSS styles for dweb, note that it uses standard archive styles in includes/archive.css for most 89 | * LICENSE - standard GNU Affero licence 90 | * webpack.config.js - defines bundling, and in particular which files are needed for the distribution 91 | * ... some more TODO documentation 92 | 93 | ## Class hierarchy 94 | * ArchiveFile - represents a single file 95 | * ArchiveItem - represents data structures for an item (a directory of files) 96 | * ArchiveBase - Subclass ArchiveItem to add functionality specific to this UI 97 | * ArchiveMember - represents a listing for an item (e.g. in a search) 98 | * React.Component - Standard React class used for building components 99 | * Lots of stand-alone components 100 | * AVDWeb - Adds functionality common to adding content to media tags 101 | * AudioDweb, VideoDweb 102 | * Nav - common class for navigation structures (mostly at the top of the page) also maps item types to classes 103 | -------------------------------------------------------------------------------- /archive.js: -------------------------------------------------------------------------------- 1 | var Nav = require('./Nav').default; 2 | const { getImageURI } = require('./ReactSupport') 3 | var DwebTransports = require('@internetarchive/dweb-transports'); //Also sets window.DwebTransports 4 | window.DwebArchive = { Nav, getImageURI }; 5 | window.Nav = Nav; // So HTML can find it 6 | -------------------------------------------------------------------------------- /archive_files.txt: -------------------------------------------------------------------------------- 1 | /bookreader/BookReader-ia.css 2 | /bookreader/BookReaderHelpers.js 3 | /bookreader/BookReaderJSIA.js 4 | /bookreader/LendingFlow.js 5 | /bookreader/static/pd-daisy.svg 6 | /bookreader/static/preview-800x1200.png 7 | /components/manage/ManageItems.js 8 | /components/manage/manage.css 9 | /components/manage/manage.js 10 | /favicon.ico 11 | /images/911-close-window-icon-off.png 12 | /images/911-close-window-icon-on.png 13 | /images/WaybackLogoSmall.png 14 | /images/black.png 15 | /images/cc/by.png 16 | /images/cc/cc.png 17 | /images/cc/nc.png 18 | /images/cc/nd.png 19 | /images/cc/publicdomain.png 20 | /images/cc/sa.png 21 | /images/cc/zero.png 22 | /images/footer.png 23 | /images/gift.png 24 | /images/go-button-gateway.gif 25 | /images/llama-icon.png 26 | /images/loading.gif 27 | /images/notfound.png 28 | /images/search-saved.png 29 | /images/settings.svg 30 | /images/tv2op70.png 31 | /includes/asc.gif 32 | /includes/bg.gif 33 | /includes/bootstrap.min.js 34 | /includes/build/js/play8.min.js 35 | /includes/build/js/play8.min.js.map 36 | /includes/build/js/playset.min.js 37 | /includes/build/js/playset.min.js.map 38 | /includes/build/js/polyfill.min.js 39 | /includes/build/js/polyfill.min.js.map 40 | /includes/desc.gif 41 | /includes/fonts/Iconochive-Regular.eot 42 | /includes/fonts/Iconochive-Regular.svg 43 | /includes/fonts/Iconochive-Regular.ttf 44 | /includes/fonts/Iconochive-Regular.woff 45 | /includes/fonts/steppum fo rotsap flipped.otf 46 | /includes/fonts/steppum fo rotsap.otf 47 | /includes/jquery-1.10.2.min.js 48 | /includes/jquery-1.10.2.min.map 49 | /includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.eot 50 | /includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.woff 51 | /includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.ttf 52 | /includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.svg 53 | /includes/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png 54 | /includes/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png 55 | /jw/8/jwplayer.core.controls.html5.js 56 | /upload/images/tree/loading.gif 57 | -------------------------------------------------------------------------------- /archivelogowhiteonblack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/archivelogowhiteonblack.png -------------------------------------------------------------------------------- /archivesw.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Internet Archive - in the browser 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | Skip to main content 33 | 47 |
48 |
49 | 50 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | Skip to main content 33 | 47 |
48 |
49 | 50 |
4 | icon/pd-daisy 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /dist/bookreader/static/preview-800x1200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/bookreader/static/preview-800x1200.png -------------------------------------------------------------------------------- /dist/components/manage/ManageItems.js: -------------------------------------------------------------------------------- 1 | 2 | /* eslint-disable semi */ 3 | import { LitElement, html, css } from '../web_modules/lit-element.js' 4 | 5 | // eslint-disable-next-line import/prefer-default-export 6 | export class ManageItems extends LitElement { 7 | static get properties() { 8 | return {} 9 | } 10 | 11 | static get styles() { 12 | return css`` 13 | } 14 | 15 | render() { 16 | return html`` 17 | } 18 | } 19 | 20 | customElements.define('manage-items', ManageItems) 21 | -------------------------------------------------------------------------------- /dist/components/manage/manage.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | #manage-ids { 4 | visibility: hidden; 5 | position: absolute; 6 | top: 0; 7 | left: 0; 8 | width: 1px; 9 | height: 1px; 10 | } 11 | 12 | #manage-help > div { 13 | display: inline-block; 14 | font-weight: bold; 15 | font-size: 125%; 16 | padding-right: 10px; 17 | } 18 | 19 | #manage-help .btn-info { 20 | background-color: #777; 21 | border-color: #666; 22 | } 23 | 24 | 25 | #manage-help > p { 26 | text-align: center; 27 | } 28 | 29 | .item-ia.manage-item .item-img { 30 | opacity: .8; 31 | } 32 | 33 | .item-ia.manage-item .item-img:hover { 34 | opacity: .9; 35 | } 36 | 37 | .manage-check { 38 | position: absolute; 39 | right: 0; 40 | top: 0; 41 | border-style: solid; 42 | border-color: black; 43 | border-width: 2px 4px; 44 | background-color: black; 45 | border-radius: 3px; 46 | } 47 | 48 | #confirm-remove-items .btn { 49 | display: block; 50 | margin: 0 auto 10px; 51 | } 52 | 53 | .task-pending { 54 | opacity: .20; 55 | } 56 | 57 | /* Bulk remove items modal */ 58 | #confirm-remove-items .modal-content { 59 | padding: 1rem; 60 | } 61 | 62 | #confirm-remove-items h2 { 63 | font-size: 2.4rem; 64 | } 65 | -------------------------------------------------------------------------------- /dist/epubreader: -------------------------------------------------------------------------------- 1 | ../../epubjs-reader/reader -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/favicon.ico -------------------------------------------------------------------------------- /dist/images/911-close-window-icon-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/911-close-window-icon-off.png -------------------------------------------------------------------------------- /dist/images/911-close-window-icon-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/911-close-window-icon-on.png -------------------------------------------------------------------------------- /dist/images/Broken_document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/Broken_document.png -------------------------------------------------------------------------------- /dist/images/WaybackLogoSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/WaybackLogoSmall.png -------------------------------------------------------------------------------- /dist/images/archivelogo207x207notext.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/archivelogo207x207notext.jpg -------------------------------------------------------------------------------- /dist/images/archivelogo246x246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/archivelogo246x246.jpg -------------------------------------------------------------------------------- /dist/images/baseline-fast_rewind-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/images/baseline-home-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/images/baseline-pause-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/images/baseline-play_arrow-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/images/baseline-update-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/images/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/black.png -------------------------------------------------------------------------------- /dist/images/cc/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/by.png -------------------------------------------------------------------------------- /dist/images/cc/cc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/cc.png -------------------------------------------------------------------------------- /dist/images/cc/nc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/nc.png -------------------------------------------------------------------------------- /dist/images/cc/nd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/nd.png -------------------------------------------------------------------------------- /dist/images/cc/publicdomain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/publicdomain.png -------------------------------------------------------------------------------- /dist/images/cc/sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/sa.png -------------------------------------------------------------------------------- /dist/images/cc/zero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/cc/zero.png -------------------------------------------------------------------------------- /dist/images/feedback.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | 10 | 14 | 18 | 22 | 26 | 31 | 34 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /dist/images/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/footer.png -------------------------------------------------------------------------------- /dist/images/gift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/gift.png -------------------------------------------------------------------------------- /dist/images/go-button-gateway.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/go-button-gateway.gif -------------------------------------------------------------------------------- /dist/images/llama-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/llama-icon.png -------------------------------------------------------------------------------- /dist/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/loading.gif -------------------------------------------------------------------------------- /dist/images/notfound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/notfound.png -------------------------------------------------------------------------------- /dist/images/palm-leaf-wiki-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/palm-leaf-wiki-logo.png -------------------------------------------------------------------------------- /dist/images/search-saved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/search-saved.png -------------------------------------------------------------------------------- /dist/images/settings.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/settings.svg -------------------------------------------------------------------------------- /dist/images/tv2op70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/images/tv2op70.png -------------------------------------------------------------------------------- /dist/includes/asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/asc.gif -------------------------------------------------------------------------------- /dist/includes/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/bg.gif -------------------------------------------------------------------------------- /dist/includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /dist/includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /dist/includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/build/npm/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /dist/includes/desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/desc.gif -------------------------------------------------------------------------------- /dist/includes/fonts/Iconochive-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/fonts/Iconochive-Regular.eot -------------------------------------------------------------------------------- /dist/includes/fonts/Iconochive-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/fonts/Iconochive-Regular.ttf -------------------------------------------------------------------------------- /dist/includes/fonts/Iconochive-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/fonts/Iconochive-Regular.woff -------------------------------------------------------------------------------- /dist/includes/fonts/steppum fo rotsap flipped.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/fonts/steppum fo rotsap flipped.otf -------------------------------------------------------------------------------- /dist/includes/fonts/steppum fo rotsap.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/fonts/steppum fo rotsap.otf -------------------------------------------------------------------------------- /dist/includes/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /dist/includes/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/includes/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /dist/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "Mitra Ardron", 4 | "email": "mitra@mitra.biz", 5 | "url": "http://www.mitra.biz" 6 | }, 7 | "browserslist": "> 20%, not dead", 8 | "bugs": { 9 | "url": "https://github.com/internetarchive/dweb-archive/issues" 10 | }, 11 | "description": "Internet Archive offline UI distribution for use by dweb-mirror", 12 | "dependencies": { 13 | "bootstrap-3-typeahead": "4.0.2", 14 | "react": "^15.2.0", 15 | "react-dom": "15.2.0" 16 | }, 17 | "devDependencies": {}, 18 | "homepage": "https://github.com/internetarchive/dweb-archive#readme", 19 | "keywords": [ 20 | "dweb", 21 | "archive" 22 | ], 23 | "license": "AGPL-3.0", 24 | "name": "@internetarchive/dweb-archive-dist", 25 | "publishConfig": { 26 | "access": "public" 27 | }, 28 | "repository": { 29 | "type": "git", 30 | "url": "git://github.com/internetarchive/dweb-archive.git" 31 | }, 32 | "scripts": { 33 | "server": "http-server" 34 | }, 35 | "version": "0.2.29" 36 | } 37 | -------------------------------------------------------------------------------- /dist/upload/images/tree/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/dist/upload/images/tree/loading.gif -------------------------------------------------------------------------------- /ia-components/README.md: -------------------------------------------------------------------------------- 1 | Everything in ia-components was extracted from the iaux/ia-components repo. 2 | 3 | Currently it has the same directory structure here. 4 | 5 | The components should work in both dweb and non-dweb scenarios. 6 | 7 | It was extracted from because the merge process in iaux takes too long to be viable 8 | - I gave up after a merge took 28 days, with turnaround in comments being 5-21 days! 9 | 10 | All import and export is via the dweb-index.js to facilitate these being moved into 11 | some collaborative development area if that happens in the future. 12 | -------------------------------------------------------------------------------- /ia-components/dweb-index.js: -------------------------------------------------------------------------------- 1 | export { default as AnchorDetails } from './sandbox/AnchorDetails'; 2 | // sandbox bookreader 3 | export { default as BookReaderWrapper } from './sandbox/bookreader-component/bookreader-wrapper-main'; 4 | // sandbox tiles 5 | export { default as RelatedItems } from './sandbox/tiles/RelatedItems'; 6 | export { default as TileComponent } from './sandbox/tiles/TileComponent'; 7 | export { TileGrid, ScrollableTileGrid } from './sandbox/tiles/TileGrid'; 8 | // details page 9 | export { AnchorDownload, reachable } from './sandbox/details/AnchorDownload'; 10 | export { AnchorSearch } from './sandbox/details/AnchorSearch'; 11 | export { Carousel } from './sandbox/details/Carousel'; 12 | export { default as DetailsCollectionList } from './sandbox/details/DetailsCollectionList'; 13 | export { DetailsFlagLI, DetailsFlags, DetailsActionButtons } from './sandbox/details/DetailsActionButtons'; 14 | export { default as DetailsDownloadOptions } from './sandbox/details/DetailsDownloadOptions'; 15 | export { DetailsMetadata, DetailsAbout } from './sandbox/details/DetailsMetadata'; 16 | export { ImageDweb } from './sandbox/details/Image'; 17 | export { AnchorModalGo, ButtonModalGo } from './sandbox/details/ModalGo'; 18 | export { NavWrap } from './sandbox/details/NavWrap'; 19 | export { DetailsReviews } from './sandbox/details/DetailsReviews'; 20 | export { SearchSwitcher } from './sandbox/details/Search'; 21 | export { default as Tabby } from './sandbox/details/Tabby'; 22 | export { DownloadDirectoryDiv } from './sandbox/details/Download'; 23 | export { languages, languageConfig, currentISO, getLanguage, I18nSpan, setLanguage, I18n, I18nStr, I18nIcon } from './sandbox/languages/Languages'; 24 | -------------------------------------------------------------------------------- /ia-components/sandbox/AnchorDetails.jsx: -------------------------------------------------------------------------------- 1 | /* global DwebArchive */ 2 | import React from 'react'; 3 | import { ObjectFilter } from '../util'; 4 | 5 | const debug = require('debug')('ia-components:AnchorDetails'); 6 | 7 | /** 8 | * Component used as an anchor to a Details page 9 | * Encapsulates differences between options Dweb||IAUX 10 | * 11 | * Behavior: 12 | * On render we split props between the Anchor and the URL and build the URL. 13 | * 14 | * On click - behavior varies between Dweb and IAUX 15 | * Dweb: Navigate via the Nav.nav_details function 16 | * !Dweb: normal Anchor behavior to go to the href 17 | * 18 | * Technical: 19 | * AnchorDetails, AnchorSearch and to a lesser extend AnchorDownload are almost the same, changes on one probably need to be propogated to the others 20 | * 21 | * AnchorDetails.urlparms.includes(k)), 46 | anchorProps: ObjectFilter(props, (k, v) => (!AnchorDetails.urlparms.includes(k) && !['children'].includes(k))) 47 | }; 48 | } 49 | 50 | onClick(ev) { 51 | // Note this is only called in dweb; !Dweb has a director href 52 | debug('Clicking on link to details: %s', this.props.identifier); 53 | DwebArchive.Nav.factory(this.props.identifier, { noCache: this.props.reload, wanthistory: !this.props.reload }); // Ignore promise returned 54 | ev.preventDefault(); // Dont propogate event 55 | } 56 | 57 | render() { 58 | // this.props passes identifier which is required for Dweb, but typically also passes tabIndex, class, title 59 | const url = new URL((this.props.identifier === 'home' && (typeof DwebArchive === 'undefined')) 60 | ? 'https://archive.org' 61 | : `https://archive.org/details/${this.props.identifier}`); 62 | const usp = new URLSearchParams(); 63 | Object.entries(this.state.urlProps).forEach(kv => usp.append(kv[0], kv[1])); 64 | url.search = usp; // Note this copies, not updatable 65 | return ( // Note there is intentionally no spacing in case JSX adds a unwanted line break 66 | (typeof DwebArchive === 'undefined') 67 | ? {this.props.children} 68 | : 69 | // This is the Dweb version for React|!React 70 | {this.props.children} 71 | ); 72 | } 73 | } 74 | AnchorDetails.urlparms = ['sort', 'reload']; // Properties that go in the URL to details 75 | // Note other propTypes are passed to underlying Anchor - ones known in use are: tabIndex, id, className, data-event-click-tracking, title 76 | -------------------------------------------------------------------------------- /ia-components/sandbox/bookreader-component/bookreader-wrapper-main.jsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | /** 5 | * BookReaderWrapper wraps globally accessible BookReader to create an instance 6 | * 7 | * This component is client-side only. 8 | * This component expects all necessary scripts for BookReader to be pre-loaded onto the page before use. 9 | * Please see https://github.com/internetarchive/bookreader for more instructions & examples. 10 | * 11 | * If jsia is specified then it adds Internet Archive specific stuff via the BookreaderJSIA function 12 | * the script BookreaderJSIA should previously have been loaded. 13 | * 14 | * The BookreaderJSIA code cant go in here, because it is InternetArchive specific, 15 | * future development could be a wrapper, for this, that includes BookreaderJSIA 16 | * 17 | * Note this component is used by dweb-archive for offline and dweb versions. 18 | * 19 | * global: BookReader 20 | * Creates a global: window.br (which Search will need) 21 | * 22 | * 26 | * 27 | * Note will almost certainly need a AJS.theatresize() in caller after this. 28 | */ 29 | export default class BookReaderWrapper extends Component { 30 | constructor(props) { 31 | super(props); 32 | this.BookReaderRef = React.createRef(); 33 | } 34 | 35 | componentDidMount() { 36 | const { options } = this.props; 37 | 38 | const originalGetPageURI = BookReader.prototype.getPageURI; 39 | const defaultOptions = { 40 | el: `#${this.BookReaderRef.current.id}`, 41 | mobileNavFullscreenOnly: true, 42 | onePage: { autofit: 'height' }, // options: auto, width, height 43 | ui: 'full', 44 | enablePageResume: false, 45 | enableTtsPlugin: false, 46 | enableUrlPlugin: false, 47 | defaults: 'mode/1up', 48 | enableSearch: true, 49 | searchInsideUrl: '/fulltext/inside.php', 50 | initialSearchTerm: null, 51 | imagesBaseURL: '/bookreader/BookReader/images/', 52 | // TODO-ISA what is going on here, a comment would be useful ? (same on bookreader-wrapper-main and bookreader-wrapper-jsia) 53 | getPageURI: (index, reduce = 1, rotate = 0) => { 54 | let uri = originalGetPageURI.call(br, index, reduce, rotate); 55 | uri += (uri.indexOf('?') > -1 ? '&' : '?'); 56 | uri = `${uri}scale=${reduce}&rotate=${rotate}`; 57 | return uri; 58 | }, 59 | }; 60 | const fullOptions = { 61 | ...defaultOptions, 62 | ...options, 63 | }; 64 | // There are two ways to initialize BookReader, eithr through JSIA which includes IA specific lending info 65 | // or the simpler initialization without IA. 66 | if (this.props.jsia) { 67 | BookReaderJSIAinit(this.props.jsia, fullOptions); // Creates window.br 68 | } else { 69 | const br = new BookReader(fullOptions); 70 | window.br = br; 71 | br.init(); 72 | } 73 | } 74 | 75 | render() { 76 | return ( 77 |
78 | {!this.props.jsia ? null 79 | :
80 | } 81 |
82 |
83 | ); 84 | } 85 | } 86 | 87 | BookReaderWrapper.displayName = 'BookReaderWrapper'; 88 | 89 | BookReaderWrapper.defaultProps = { 90 | options: {}, 91 | }; 92 | 93 | BookReaderWrapper.propTypes = { 94 | options: PropTypes.object, 95 | }; 96 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/Carousel.jsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable react/prop-types, react/no-array-index-key */ 2 | import React from 'react'; 3 | import { AnchorDownload } from './AnchorDownload'; 4 | import { ImageDweb } from './Image'; 5 | import { I18nStr } from '../languages/Languages'; 6 | 7 | /** Carousel 8 | * 9 | * " slightly above the image. 20 | */ 21 | 22 | class Carousel extends React.Component { 23 | constructor(props) { 24 | // TODO-STATE this might have the issue of constructor not being re-run and needing componentDidMount catch 25 | super(props); // identifier, slides: [ {filename, source: ArchiveFile} ] // The source is optional, make it more efficient on Dweb 26 | this.state = { startAt: 0 }; 27 | } 28 | 29 | render() { 30 | return ( 31 |
32 | 82 |
83 | ); 84 | } 85 | } 86 | export { Carousel }; 87 | /* Code review Mitra 2020-feb-17 */ 88 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/DetailsCollectionList.jsx: -------------------------------------------------------------------------------- 1 | /* global DwebArchiveController */ 2 | /* eslint-disable prefer-template, max-len, react/prop-types, react/destructuring-assignment */ 3 | import React from 'react'; 4 | import AnchorDetails from '../AnchorDetails'; 5 | import { I18nSpan } from '../languages/Languages'; 6 | 7 | /** 8 | * List of collections on details page 9 | * 10 | * Renders as a list of collections, with images for each. 11 | * 12 | * Behavior none for the component itself, but each collection (text and image) is an anchor to navigate to the collection 13 | * 14 | * Technical Notes: 15 | * The collectionTitles should be supplied, there is a wrapper in dweb-archive to do this, as there was a preference (Isa) not to 16 | * include that functionality here. 17 | * 18 | * 22 | * 23 | * Typically the caller will expand collections list asynchronously and set collectionTitles - see dweb-archive/components/DetailsCollectionListWrapper 24 | */ 25 | 26 | 27 | export default class DetailsCollectionList extends React.Component { 28 | render() { 29 | return ( 30 |
31 |
32 |
33 | {this.props.collections.map((collection) => { 34 | const backgroundImageBaseUrl = 'https://archive.org/services/img/' + collection; 35 | const backgroundImage = DwebArchiveController 36 | ? DwebArchiveController.routed(backgroundImageBaseUrl, { wantOneHttp: true }) 37 | : backgroundImageBaseUrl; 38 | return ( 39 |
40 | 44 | {this.props.collectionTitles[collection] || collection} 45 | 46 |
47 |
54 |
55 | ); 56 | })} 57 |
58 |
59 | ); 60 | } 61 | } 62 | /* Code review Mitra 2019-12-08 exc HTML compare */ 63 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/DetailsReviews.jsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable react/prefer-stateless-function, react/prop-types, react/no-array-index-key */ 2 | import React from 'react'; 3 | import AnchorDetails from '../AnchorDetails'; 4 | import { I18nSpan, I18nIcon, I18nStr } from '../languages/Languages'; 5 | 6 | /** 7 | * List of reviews on details page 8 | * 9 | * Renders as a nested Div 10 | * 11 | * Behavior none for the component itself, but link from author 12 | * 13 | * Technical Notes: 14 | * The reviews should be supplied, there needs to be a wrapper in dweb-archive to do this - currently its in Details.js, 15 | * as there was a preference (Isa) not to include that functionality here. 16 | * 17 | * 21 | * 22 | * Typically the caller will fetch reviews independently and setState if not fetched during fetch_metadata 23 | */ 24 | 25 | 26 | class DetailsReviews extends React.Component { 27 | // Checked against archive.org output 2019-09-04 28 | render() { 29 | const reviews = this.props.reviews; 30 | const writeReviewsURL = this.props.writeReviewsURL; 31 | return ( 32 |
33 |

38 | { this.props.disconnected ? null 39 | : ( 40 | <> 41 |
42 | 43 | 44 | 45 | 46 |
47 |
48 |
49 | 50 | ) 51 | } 52 | Reviews 53 |

54 | {reviews && reviews.length ? reviews.map(review => ( 55 |
56 | 57 | 58 | : 59 | 60 | {' '} 61 | 65 | {review.reviewer} 66 | 67 | - 68 | 69 | {['*', '*', '*', '*', '*'].slice(0, review.stars).map((x, i) => )} 70 | 71 | - 72 | {' '} 73 | {review.reviewdate} 74 | {/* TODO reviewdate needs pretty printing */} 75 |
76 | 77 | 78 | : 79 | 80 | {' '} 81 | {review.reviewtitle} 82 |
{review.reviewbody}
83 |
84 | )) : ( 85 |
86 | 87 | {this.props.disconnected ? null 88 | : ( 89 | <> 90 | 91 | {' '} 92 | 93 | . 94 | 95 | ) 96 | } 97 |
98 | )} 99 |
100 | ); 101 | } 102 | } 103 | export { DetailsReviews }; 104 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/Download.jsx: -------------------------------------------------------------------------------- 1 | // const debug = require('debug')('dweb-archive:Download'); 2 | /* eslint-disable react/prefer-stateless-function, react/prop-types */ 3 | import React from 'react'; 4 | import AnchorDetails from '../AnchorDetails'; 5 | import { AnchorDownload, reachable } from './AnchorDownload'; 6 | import { I18nSpan, I18nStr } from '../languages/Languages'; 7 | 8 | class DownloadDirectoryDiv extends React.Component { 9 | /** 10 | * 15 | * 16 | * Renders a directory with name and pretty size 17 | * if downloaded=false then only displays files in list 18 | * TODO needs date in form probably like new Date().toLocaleDateString('en-GB',{day:'numeric', month:'short', year:'numeric',hour:'2-digit',minute:'2-digit'}) 19 | * See https://github.com/internetarchive/dweb-archive/issues/10 for discussion - this is NOT complete yet, but works enough to use. 20 | * https://github.com/internetarchive/dweb-archivecontroller/issues/8 for better algorithm for reachable, and probably apply at ArchiveItem level when getting list 21 | */ 22 | 23 | render() { 24 | return ( 25 |
26 |
27 |

28 | 29 | {' '} 30 | {this.props.identifier} 31 |

32 |
33 |
34 |             
35 |               
36 |                 
37 |                   
38 |                   {/* ----*/}
39 |                   
40 |                 
41 |               
42 |               
43 |                 
44 |                   
55 |                   
58 |                 {this.props.files
59 |                   .filter(f => reachable({ disconnected: this.props.disconnected, source: f }))
60 |                   .map(f => (
61 |                     
62 |                       
75 |                       {/* --TODO-DIR handle directory here as foo/ --*/}
76 |                       {/* ----*/}
77 |                       
81 |                     
82 |                   ))}
83 |               
84 |             
Last modifiedSize
45 | 46 | 54 | 56 | 57 |
63 | 68 | 72 | {f.name} 73 | 74 | 00-Apr-0000 00:00{--TODO-DIR handle date from mtime 78 | {f.size} 79 | {/* --TODO-DIR should be "-" for directory--*/} 80 |
85 |
86 |
87 |
88 | ); 89 | } 90 | } 91 | export { DownloadDirectoryDiv }; 92 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/Image.jsx: -------------------------------------------------------------------------------- 1 | /* global DwebArchive, AJS */ 2 | import React from 'react'; 3 | import { ObjectFilter } from '../../util'; 4 | // const debug = require('debug')('Image Components'); 5 | 6 | /** 7 | * Image display components/** 8 | * 9 | * Render an image with a caption and an anchor to download it 10 | */ 11 | 12 | /** 13 | * 18 | * url (optional) if provided will be used immediately and then overridden when src|source have been fetched 19 | * alt String as in (not translated because in many cases comes from content) 20 | * imgname optional name used for alt tag and mime type when rendering via blob 21 | * ... other props passed to 22 | * /> 23 | */ 24 | 25 | class ImageDweb extends React.Component { 26 | // Image that can, but doesnt have to be loaded via Dweb 27 | 28 | constructor(props) { 29 | super(props); 30 | this.state = { 31 | src: (!DwebArchive && this.props.src) || this.props.url, // If not Dweb then can load from src like 32 | }; 33 | } 34 | 35 | componentDidMount() { 36 | // DwebArchive.page = this; 37 | if (DwebArchive) { 38 | this.setSrcFromProps(); 39 | } 40 | this.tilingAndSizing(); 41 | } 42 | 43 | componentDidUpdate(prevProps, unusedPrevState, unusedSnapshot) { 44 | if ((prevProps.source !== this.props.source) || (prevProps.src !== this.props.src)) { 45 | this.setSrcFromProps(); 46 | } 47 | this.tilingAndSizing(); 48 | } 49 | 50 | setSrcFromProps() { 51 | // Should be called at initialization or if props.source, or .src changes 52 | const urls = this.props.source || this.props.src; // ArchiveFile or Url or string should be fine 53 | if (urls) { // Sometimes ImageDweb called with no image, or filled in later. 54 | // TODO imgname might be obsolete and unused (check dweb-archive and iaux) 55 | const name = this.props.imgname || (typeof this.props.source === 'string' && this.props.source) || (this.props.source && this.props.source.metadata && this.props.source.metadata.name) || 'unknown.png'; 56 | DwebArchive.getImageURI(name, urls, (err, url) => { 57 | if (!err) this.setState({ src: url }); // TODO its possible there is a race if this happens before mounting 58 | }); 59 | } 60 | } 61 | 62 | tilingAndSizing() { 63 | if (this.state.src) { 64 | AJS.tiler(); 65 | } 66 | // Need to do this here since there is a bug in Firefox causing its test of img.complete to return true prematurely. 67 | if (this.state.src && this.props.className && this.props.className.includes('carousel-image')) { 68 | AJS.theatresize(); 69 | AJS.carouselsize('#ia-carousel', true); 70 | } 71 | } 72 | 73 | render() { 74 | // const notImgProps = ObjectFilter(this.props, (k, unusedV) => ImageDweb.specificParms.includes(k)); 75 | const imgProps = ObjectFilter(this.props, (k, unusedV) => (!ImageDweb.specificParms.includes(k) && !['children'].includes(k))); 76 | // noinspection HtmlRequiredAltAttribute 77 | return ( 78 | 79 | ); 80 | } 81 | } 82 | // Parameters not to pass down to img tag automatically 83 | ImageDweb.specificParms = ['src', 'source']; // Known in use includes: className, id, alt 84 | 85 | export { ImageDweb }; 86 | // Code Review - Mitra - 2019-10-09 87 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/ModalGo.jsx: -------------------------------------------------------------------------------- 1 | // const debug = require('debug')('dweb-archive:ModalGo'); 2 | import React from 'react'; 3 | import { ObjectFilter } from '../../util'; 4 | import { I18nStr } from '../languages/Languages'; 5 | /* global AJS */ 6 | /** 7 | * AnchorModalGo and ButtonModalGo wrap the AJS.modal_go call in archive.js to allow it to work with react. 8 | */ 9 | 10 | class _ModalGo extends React.Component { 11 | constructor(props) { 12 | // TODO-STATE this might have the issue of constructor not being re-run and needing componentDidMount catch 13 | super(props); // opts, remaining props go to anchor, in particular href 14 | this.state = { linkProps: ObjectFilter(this.props, (k, unused_v) => !['opts', 'children', 'en'].includes(k)) }; // pass on any other props 15 | this.onClick = this.onClick.bind(this); 16 | } 17 | 18 | onClick(ev) { 19 | // ev.currentTarget is the HTML Element on which the onClick sits 20 | // noinspection JSUnresolvedFunction 21 | AJS.modal_go(ev.currentTarget, this.props.opts); // Unclear if return from this is what we want (false to run ev.preventDefault) 22 | ev.preventDefault(); // Dont propogate event 23 | } 24 | } 25 | 26 | /** 27 | * ..... 32 | * 33 | * Behavior: Render an Anchor that when clicked opens a modal dialog via the archive.js code. 34 | */ 35 | class AnchorModalGo extends _ModalGo { 36 | render() { 37 | return ( 38 | /* disabling es-lint because this is copied straight from archive.org where it should be fixed first */ 39 | /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ 40 | {this.props.children} 41 | ); 42 | } 43 | } 44 | 45 | /** 46 | * ..... 51 | * 52 | * Behavior: Render a Button that when clicked opens a modal dialog via the archive.js code. 53 | */ 54 | class ButtonModalGo extends _ModalGo { 55 | render() { 56 | return ( 57 | /* disabling es-lint because this is copied straight from archive.org where it should be fixed first */ 58 | /* eslint-disable react/button-has-type */ 59 | 60 | ); 61 | } 62 | } 63 | export { AnchorModalGo, ButtonModalGo }; 64 | // Code Review 2019-Oct-16 Mitra 65 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/Search.jsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len, import/prefer-default-export */ 2 | /* eslint-disable react/jsx-one-expression-per-line, react/destructuring-assignment, react/prefer-stateless-function, react/prop-types */ 3 | // const debug = require('debug')('dweb-archive:SearchSwitcher'); 4 | 5 | import React from 'react'; 6 | import { AnchorSearch } from './AnchorSearch'; 7 | import { I18nSpan } from '../languages/Languages'; 8 | 9 | class SearchSwitcher extends React.Component { 10 | /** 11 | * 15 | * 16 | * Renders a div with a set of AnchorSearch to switch to different sorts 17 | */ 18 | 19 | render() { 20 | return ( 21 |
22 |
23 |
24 | 25 |
26 | {/* --TODO-DETAILS this dropdown doesnt reorder, test other UI elements in vicinity as well see https://github.com/internetarchive/dweb-archive/issues/15--*/} 27 | {/* TODO-ISSUE dweb-archive#57 remove relevance on Collections */} 28 | { this.props.identifier ? null // Dont show on collections 29 | : 30 | } 31 | { this.props.identifier ? null // Dont show on collections 32 | :
33 | } 34 | VIEWS 35 |
36 | TITLE 37 |
38 | DATE ARCHIVED 39 |
40 | DATE PUBLISHED 41 |
42 | DATE REVIEWED 43 |
44 | CREATOR 45 | 46 |
47 |
48 | ); 49 | } 50 | } 51 | export { SearchSwitcher }; 52 | /* Code review Mitra 2019-12-11 excluding HTML comparison */ 53 | -------------------------------------------------------------------------------- /ia-components/sandbox/details/Tabby.jsx: -------------------------------------------------------------------------------- 1 | /* global AJS */ 2 | /* eslint-disable max-len, no-restricted-globals, prefer-template, react/destructuring-assignment, react/prop-types */ 3 | import React from 'react'; 4 | import { I18nSpan } from '../languages/Languages'; 5 | 6 | /** 7 | * This is for a single "tabby", usually there will be a set of them in a Tabbys 8 | * 9 | * Behavior: 10 | * On render its just a button that gives impression its a tab with content under it. 11 | * 12 | * On click 13 | * Note that it uses the tabby function in archive.js, a good TODO might be to refactor that code into this component. 14 | 15 | * Technical: 16 | * 17 | * 57 | 75 |
76 | ); 77 | } 78 | } 79 | // Code inspection by Mitra 2019-12-29 exc html compare 80 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/google/_.txt: -------------------------------------------------------------------------------- 1 | ABOUT 2 | account 3 | ACTIVITY 4 | activity 5 | Add Review 6 | Advanced embedding details, examples, and help 7 | Attribution-NonCommercial-NoDerivs 8 | Audio 9 | audio 10 | Be the first one to 11 | BLOG 12 | Broken or Empty Data 13 | by 14 | cannot be found or does not have metadata 15 | Changing language from 16 | Changing language to 17 | Click to have player try flash first, then HTML5 second 18 | COLLECTION 19 | Collection 20 | collection 21 | COLLECTIONS 22 | Collections 23 | comment 24 | comments 25 | Completed 26 | Concerts 27 | Connecting 28 | CONTACT 29 | Contributors 30 | crawled by 31 | Crawling all 32 | Crawling details 33 | Crawling metadata 34 | Crawling tile 35 | Crawls 36 | CREATOR 37 | Creator 38 | creator 39 | Credits 40 | Date 41 | DATE ARCHIVED 42 | Date Archived 43 | DATE PUBLISHED 44 | Date Published 45 | DATE REVIEWED 46 | Date Reviewed 47 | Decentralized Internet Archive 48 | DESCRIPTION 49 | description 50 | DETAILS 51 | directories 52 | DONATE 53 | down 54 | download 55 | DOWNLOAD OPTIONS 56 | Download speed 57 | Downloaded 58 | edit 59 | EMBED 60 | EMBED (for wordpress.com hosted blogs and archive.org item tags) 61 | English 62 | enter URL or keywords 63 | Errors 64 | etree 65 | eye 66 | Favorite 67 | favorite 68 | Favorite this item 69 | Fetching language file for 70 | Fetching more results 71 | Files 72 | files 73 | Files for 74 | flag 75 | Flag this item 76 | Flag this item for 77 | FORUM 78 | Forum 79 | Forum not yet supported on DWeb - heading to the legacy web 80 | fullscreen view 81 | GATEWAY 82 | GO 83 | go 84 | Go to image 85 | Go to item page 86 | Graphic Sexual Content 87 | Graphic Violence 88 | HELP 89 | image 90 | in 91 | IN COLLECTIONS 92 | Information 93 | Internet Archive 94 | is a non-profit library of millions of free books, movies, software, music, websites, and more. 95 | Item 96 | item 97 | item image 98 | Item image slideshow 99 | ITEMS 100 | items 101 | JOBS 102 | Languages 103 | last updated 104 | Loading 105 | loading 106 | Loading Book metadata for 107 | Loading related items 108 | Loading search 109 | LOADING STARTING 110 | LOADS 111 | Local 112 | logo 113 | MORE RESULTS 114 | movies 115 | Name 116 | Next 117 | Not Downloaded 118 | OCR 119 | of 120 | Offline 121 | on 122 | on the Internet. 123 | Open full sized image 124 | Options 125 | Original 126 | out of 5 stars 127 | Parent Directory 128 | Peers 129 | PEOPLE 130 | Play All 131 | Please download files in this item to interact with them on your computer 132 | plus-circle 133 | Poster 134 | POSTS 135 | PPI 136 | preview 137 | Previous 138 | Progress 139 | PROJECTS 140 | Publication date 141 | Publishers 142 | Queue 143 | Related Items 144 | RELEVANCE 145 | Reload 146 | remove-circle 147 | Replies 148 | Resources 149 | Reviewer 150 | REVIEWS 151 | RIGHTS 152 | rows at 153 | Run time 154 | Running 155 | Save 156 | Save this 157 | Save this item 158 | Save to 159 | Search 160 | search 161 | Search archived web sites 162 | Search full text of books 163 | search inside 164 | Search metadata 165 | Search Options 166 | Search the Archive 167 | Search the Archive. Filters and Advanced Search available below. 168 | Search the history of over 338 billion 169 | Search the Wayback Machine 170 | Search TV captions 171 | Searching 172 | Seed 173 | Settings 174 | Share 175 | share 176 | Share or Embed This 177 | Share this item 178 | SHOW 179 | show 180 | SHOW ALL 181 | Show all files 182 | Show as list 183 | Show thumbnails 184 | SIMILAR ITEMS (based on metadata) 185 | Software 186 | software 187 | SORT BY 188 | sound is off. click for sound. 189 | sound is on. click to mute sound. 190 | Spam, Scam or Fraud 191 | Sponsor 192 | Still being implemented 193 | Subject 194 | Terms of Service 195 | Texts 196 | texts 197 | There are no reviews yet. 198 | This item does not appear to have any files that can be experienced on Archive.org 199 | tile 200 | time 201 | TITLE 202 | Top Collections at the Archive 203 | Topics 204 | Try a more general search 205 | Try different keywords 206 | TV 207 | tv 208 | Universal Library 209 | Unsupported mediatype 210 | up 211 | Upload 212 | upload 213 | Upload speed 214 | UPLOADS 215 | Usage 216 | Video 217 | VIEWS 218 | views 219 | VOLUNTEER 220 | Waiting 221 | Want more? 222 | WEB 223 | Web 224 | web 225 | WEB ARCHIVES 226 | web pages 227 | Working on 228 | write a review 229 | Your search did not match any items in the Archive. Suggestions 230 | Public Domain 231 | Attribution 232 | Share Alike 233 | Non Commercial 234 | No Derivatives 235 | Offline Internet Archive 236 | Read online 237 | HTTP 238 | IPFS 239 | GUN 240 | WEBTORRENT 241 | Seeds 242 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/google/english.txt: -------------------------------------------------------------------------------- 1 | ABOUT 2 | account 3 | ACTIVITY 4 | activity 5 | Add Review 6 | Advanced embedding details, examples, and help 7 | Attribution-NonCommercial-NoDerivs 8 | Audio 9 | audio 10 | Be the first one to 11 | BLOG 12 | Broken or Empty Data 13 | by 14 | cannot be found or does not have metadata 15 | Changing language from 16 | Changing language to 17 | Click to have player try flash first, then HTML5 second 18 | COLLECTION 19 | Collection 20 | collection 21 | COLLECTIONS 22 | Collections 23 | comment 24 | comments 25 | Completed 26 | Concerts 27 | Connecting 28 | CONTACT 29 | Contributors 30 | crawled by 31 | Crawling all 32 | Crawling details 33 | Crawling metadata 34 | Crawling tile 35 | Crawls 36 | CREATOR 37 | Creator 38 | creator 39 | Credits 40 | Date 41 | DATE ARCHIVED 42 | Date Archived 43 | DATE PUBLISHED 44 | Date Published 45 | DATE REVIEWED 46 | Date Reviewed 47 | Decentralized Internet Archive 48 | DESCRIPTION 49 | description 50 | DETAILS 51 | directories 52 | DONATE 53 | down 54 | download 55 | DOWNLOAD OPTIONS 56 | Download speed 57 | Downloaded 58 | edit 59 | EMBED 60 | EMBED (for wordpress.com hosted blogs and archive.org item tags) 61 | English 62 | enter URL or keywords 63 | Errors 64 | etree 65 | eye 66 | Favorite 67 | favorite 68 | Favorite this item 69 | Fetching language file for 70 | Fetching more results 71 | Files 72 | files 73 | Files for 74 | flag 75 | Flag this item 76 | Flag this item for 77 | FORUM 78 | Forum 79 | Forum not yet supported on DWeb - heading to the legacy web 80 | fullscreen view 81 | GATEWAY 82 | GO 83 | go 84 | Go to image 85 | Go to item page 86 | Graphic Sexual Content 87 | Graphic Violence 88 | HELP 89 | image 90 | in 91 | IN COLLECTIONS 92 | Information 93 | Internet Archive 94 | is a non-profit library of millions of free books, movies, software, music, websites, and more. 95 | Item 96 | item 97 | item image 98 | Item image slideshow 99 | ITEMS 100 | items 101 | JOBS 102 | Languages 103 | last updated 104 | Loading 105 | loading 106 | Loading Book metadata for 107 | Loading related items 108 | Loading search 109 | LOADING STARTING 110 | LOADS 111 | Local 112 | logo 113 | MORE RESULTS 114 | movies 115 | Name 116 | Next 117 | Not Downloaded 118 | OCR 119 | of 120 | Offline 121 | on 122 | on the Internet. 123 | Open full sized image 124 | Options 125 | Original 126 | out of 5 stars 127 | Parent Directory 128 | Peers 129 | PEOPLE 130 | Play All 131 | Please download files in this item to interact with them on your computer 132 | plus-circle 133 | Poster 134 | POSTS 135 | PPI 136 | preview 137 | Previous 138 | Progress 139 | PROJECTS 140 | Publication date 141 | Publishers 142 | Queue 143 | Related Items 144 | RELEVANCE 145 | Reload 146 | remove-circle 147 | Replies 148 | Resources 149 | Reviewer 150 | REVIEWS 151 | RIGHTS 152 | rows at 153 | Run time 154 | Running 155 | Save 156 | Save this 157 | Save this item 158 | Save to 159 | Search 160 | search 161 | Search archived web sites 162 | Search full text of books 163 | search inside 164 | Search metadata 165 | Search Options 166 | Search the Archive 167 | Search the Archive. Filters and Advanced Search available below. 168 | Search the history of over 338 billion 169 | Search the Wayback Machine 170 | Search TV captions 171 | Searching 172 | Seed 173 | Settings 174 | Share 175 | share 176 | Share or Embed This 177 | Share this item 178 | SHOW 179 | show 180 | SHOW ALL 181 | Show all files 182 | Show as list 183 | Show thumbnails 184 | SIMILAR ITEMS (based on metadata) 185 | Software 186 | software 187 | SORT BY 188 | sound is off. click for sound. 189 | sound is on. click to mute sound. 190 | Spam, Scam or Fraud 191 | Sponsor 192 | Still being implemented 193 | Subject 194 | Terms of Service 195 | Texts 196 | texts 197 | There are no reviews yet. 198 | This item does not appear to have any files that can be experienced on Archive.org 199 | tile 200 | time 201 | TITLE 202 | Top Collections at the Archive 203 | Topics 204 | Try a more general search 205 | Try different keywords 206 | TV 207 | tv 208 | Universal Library 209 | Unsupported mediatype 210 | up 211 | Upload 212 | upload 213 | Upload speed 214 | UPLOADS 215 | Usage 216 | Video 217 | VIEWS 218 | views 219 | VOLUNTEER 220 | Waiting 221 | Want more? 222 | WEB 223 | Web 224 | web 225 | WEB ARCHIVES 226 | web pages 227 | Working on 228 | write a review 229 | Your search did not match any items in the Archive. Suggestions 230 | Public Domain 231 | Attribution 232 | Share Alike 233 | Non Commercial 234 | No Derivatives 235 | Offline Internet Archive 236 | Read online 237 | HTTP 238 | IPFS 239 | GUN 240 | WEBTORRENT 241 | Seeds 242 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/google/hindi.txt: -------------------------------------------------------------------------------- 1 | के बारे में 2 | लेखा 3 | गतिविधि 4 | गतिविधि 5 | समीक्षा जोड़ें 6 | उन्नत एम्बेडिंग विवरण, उदाहरण और मदद 7 | रोपण Noncommercial-NoDerivs 8 | ऑडियो 9 | ऑडियो 10 | पहले वाले बनो 11 | ब्लॉग 12 | टूटा हुआ या खाली डाटा 13 | द्वारा 14 | नहीं मिल सकता है या मेटाडेटा नहीं है 15 | से बदलती भाषा 16 | भाषा को बदलना 17 | प्लेयर ट्राय फ़्लैश पहले क्लिक करें, फिर HTML5 सेकंड 18 | संग्रह 19 | संग्रह 20 | संग्रह 21 | संग्रह 22 | संग्रह 23 | टिप्पणी 24 | टिप्पणियाँ 25 | पूरा कर लिया है 26 | संगीत कार्यक्रम 27 | कनेक्ट 28 | संपर्क करें 29 | योगदानकर्ता 30 | द्वारा क्रॉल किया गया 31 | सब रेंगते हुए 32 | रेंगने का विवरण 33 | कटा हुआ मेटाडेटा 34 | रेंगती हुई टाइल 35 | क्रॉल 36 | रचनाकार 37 | रचनाकार 38 | रचनाकार 39 | क्रेडिट 40 | दिनांक 41 | दिनांकित 42 | दिनांक संग्रहीत 43 | दिनांकित 44 | प्रकाशित तिथि 45 | दिनांकित 46 | तिथि की समीक्षा की गई 47 | विकेंद्रीकृत इंटरनेट आर्काइव 48 | विवरण 49 | विवरण 50 | विवरण 51 | निर्देशिका 52 | दान करना 53 | नीचे 54 | डाउनलोड 55 | डाउनलोड विकल्प 56 | डाउनलोड की गति 57 | डाउनलोड की गई 58 | संपादित करें 59 | ट्वीट 60 | EMBED (wordpress.com के लिए होस्ट ब्लॉग और आर्काइव.ऑर्ग मद <विवरण> टैग) 61 | अंग्रेज़ी 62 | URL या कीवर्ड दर्ज करें 63 | त्रुटियाँ 64 | etree 65 | आंख 66 | पसंदीदा 67 | पसंदीदा 68 | इस आइटम को पसंदीदा 69 | के लिए भाषा फ़ाइल ला रहा है 70 | अधिक परिणाम प्राप्त करना 71 | फ़ाइलें 72 | फ़ाइलें 73 | के लिए फाइलें 74 | झंडा 75 | इस आइटम को चिह्नित करें 76 | के लिए इस आइटम को चिह्नित करें 77 | मंच 78 | मंच 79 | फोरम अभी तक DWeb पर समर्थित नहीं है - विरासत वेब पर जा रहा है 80 | फुलस्क्रीन दृश्य 81 | GATEWAY 82 | जाओ 83 | जाओ 84 | छवि पर जाएं 85 | आइटम पृष्ठ पर जाएं 86 | ग्राफिक यौन सामग्री 87 | ग्राफिक हिंसा 88 | मदद 89 | छवि 90 | में 91 | संकलन में 92 | जानकारी 93 | इंटरनेट आर्काइव 94 | लाखों मुक्त पुस्तकों, फिल्मों, सॉफ्टवेयर, संगीत, वेबसाइटों और अन्य की एक गैर-लाभकारी लाइब्रेरी है। 95 | मद 96 | मद 97 | आइटम छवि 98 | आइटम छवि स्लाइड शो 99 | वस्तुओं 100 | आइटम 101 | नौकरियां 102 | बोली 103 | आखरी अपडेट 104 | लोड हो रहा है 105 | लोड हो रहा है 106 | पुस्तक मेटाडेटा लोड हो रहा है 107 | संबंधित आइटम लोड हो रहे हैं 108 | खोज लोड हो रही है 109 | लोड हो रहा है 110 | भार 111 | स्थानीय 112 | प्रतीक चिन्ह 113 | और नतीजे 114 | चलचित्र 115 | नाम 116 | आगे 117 | डाउनलोड नहीं हुआ 118 | ओसीआर 119 | का 120 | ऑफलाइन 121 | पर 122 | इंटरनेट पर। 123 | पूर्ण आकार की छवि खोलें 124 | विकल्प 125 | मूल 126 | 5 सितारों में से 127 | मूल निर्देशिका 128 | साथियों 129 | लोग 130 | सभी को बजाएं 131 | कृपया अपने कंप्यूटर पर उनसे बातचीत करने के लिए इस आइटम में फ़ाइलें डाउनलोड करें 132 | प्लस-चक्र 133 | पोस्टर 134 | पोस्ट 135 | पीपीआई 136 | पूर्वावलोकन 137 | पिछला 138 | प्रगति 139 | परियोजनाओं 140 | प्रकाशन तिथि 141 | प्रकाशक 142 | पंक्ति 143 | संबंधित चीजें 144 | प्रासंगिकता 145 | पुनः लोड करें 146 | हटाने सर्कल 147 | जवाब 148 | साधन 149 | आलोचक 150 | समीक्षाएं 151 | अधिकार 152 | पंक्तियों पर 153 | भागो समय 154 | चल रहा है 155 | सहेजें 156 | इसे बचाएं 157 | इस आइटम को सहेजें 158 | को बचाए 159 | खोज 160 | खोज 161 | संग्रहीत वेब साइटों को खोजें 162 | पुस्तकों का पूरा पाठ खोजें 163 | अंदर खोजें 164 | मेटाडेटा खोजें 165 | खोज विकल्प 166 | पुरालेख खोजें 167 | पुरालेख खोजें। फ़िल्टर और उन्नत खोज नीचे उपलब्ध है। 168 | 338 बिलियन से अधिक का इतिहास खोजें 169 | Wayback मशीन खोजें 170 | टीवी कैप्शन खोजें 171 | खोज कर 172 | बीज 173 | समायोजन 174 | शेयर 175 | शेयर 176 | इसे साझा या एम्बेड करें 177 | यह आइटम साझा करें 178 | प्रदर्शन 179 | प्रदर्शन 180 | सब दिखाओ 181 | सभी फाइलें दिखाएं 182 | सूची के रूप में दिखाएं 183 | थंबनेल दिखाओ 184 | SIMILAR आइटम (मेटाडेटा पर आधारित) 185 | सॉफ्टवेयर 186 | सॉफ्टवेयर 187 | इसके अनुसार क्रमबद्ध करें 188 | ध्वनि बंद है। ध्वनि के लिए क्लिक करें 189 | ध्वनि जारी है ध्वनि को म्यूट करने के लिए क्लिक करें। 190 | स्पैम, घोटाला या धोखाधड़ी 191 | प्रायोजक 192 | अभी भी लागू किया जा रहा है 193 | विषय 194 | सेवा की शर्तें 195 | ग्रंथों 196 | ग्रंथों 197 | अभी तक कोई समीक्षा नहीं। 198 | इस आइटम के पास ऐसी कोई भी फाइल नहीं है जिसे आर्काइव.ऑर्ग पर अनुभव किया जा सके 199 | टाइल 200 | समय 201 | शीर्षक 202 | संग्रह में शीर्ष संग्रह 203 | विषय 204 | एक अधिक सामान्य खोज का प्रयास करें 205 | अलग-अलग कीवर्ड आज़माएं 206 | टीवी 207 | टीवी 208 | यूनिवर्सल लाइब्रेरी 209 | असमर्थित मध्ययुगीनता 210 | यूपी 211 | डालना 212 | डालना 213 | अपलोड गति 214 | अपलोड 215 | प्रयोग 216 | वीडियो 217 | दृश्य 218 | विचारों 219 | स्वयंसेवक 220 | इंतज़ार कर रही 221 | और चाहिए? 222 | वेब 223 | वेब 224 | वेब 225 | वेब ARCHIVES 226 | वेब पृष्ठ 227 | काम पर 228 | एक समीक्षा लिखे 229 | आपकी खोज पुरालेख में किसी भी आइटम से मेल नहीं खाती। सुझाव -------------------------------------------------------------------------------- /ia-components/sandbox/languages/google/indonesian.txt: -------------------------------------------------------------------------------- 1 | TENTANG 2 | Akun 3 | AKTIVITAS 4 | aktivitas 5 | Tambahkan Ulasan 6 | Detail, contoh, dan bantuan penyematan lanjutan 7 | Attribution-NonCommercial-NoDerivs 8 | Audio 9 | audio 10 | Jadilah yang pertama 11 | BLOG 12 | Data Rusak atau Kosong 13 | oleh 14 | tidak dapat ditemukan atau tidak memiliki metadata 15 | Mengubah bahasa dari 16 | Mengubah bahasa menjadi 17 | Klik untuk meminta pemain mencoba flash terlebih dahulu, lalu HTML5 detik 18 | KOLEKSI 19 | Koleksi 20 | koleksi 21 | KOLEKSI 22 | Koleksi 23 | komentar 24 | komentar 25 | Lengkap 26 | Konser 27 | Menghubungkan 28 | KONTAK 29 | Kontributor 30 | dijelajahi oleh 31 | Merangkak semua 32 | Detail perayapan 33 | Metadata perayapan 34 | Ubin merangkak 35 | Merangkak 36 | PENCIPTA 37 | Pencipta 38 | pencipta 39 | Kredit 40 | Tanggal 41 | TANGGAL DITEMUKAN 42 | Tanggal Diarsipkan 43 | TANGGAL DITERBITKAN 44 | Tanggal Diterbitkan 45 | TANGGAL DITINJAU 46 | Tanggal Ditinjau 47 | Arsip Internet Terdesentralisasi 48 | DESKRIPSI 49 | deskripsi 50 | RINCIAN 51 | direktori 52 | MENYUMBANGKAN 53 | turun 54 | unduh 55 | OPSI UNDUH 56 | Kecepatan unduh 57 | Diunduh 58 | sunting 59 | MENANAMKAN 60 | EMBED (untuk tag yang di-host pada blog wordpress.com dan item ) 61 | Inggris 62 | masukkan URL atau kata kunci 63 | Kesalahan 64 | etree 65 | mata 66 | Favorit 67 | favorit 68 | Favorit item ini 69 | Mengambil file bahasa untuk 70 | Mengambil lebih banyak hasil 71 | File 72 | file 73 | File untuk 74 | bendera 75 | Tandai item ini 76 | Tandai item ini untuk 77 | FORUM 78 | Forum 79 | Forum belum didukung di DWeb - menuju ke web lawas 80 | tampilan layar penuh 81 | PINTU GERBANG 82 | PERGI 83 | pergi 84 | Pergi ke gambar 85 | Pergi ke halaman item 86 | Konten Seksual Grafis 87 | Kekerasan Grafis 88 | TOLONG 89 | gambar 90 | di 91 | DALAM KOLEKSI 92 | Informasi 93 | Arsip Internet 94 | adalah perpustakaan nirlaba dari jutaan buku gratis, film, perangkat lunak, musik, situs web, dan banyak lagi. 95 | Barang 96 | barang 97 | gambar barang 98 | Tampilan slide gambar item 99 | ITEM 100 | barang 101 | PEKERJAAN 102 | Bahasa 103 | terakhir dimutakhirkan 104 | Memuat 105 | Memuat 106 | Memuat metadata Buku untuk 107 | Memuat item terkait 108 | Memuat pencarian 109 | MULAI MULAI 110 | BEBAN 111 | Lokal 112 | logo 113 | HASIL LEBIH 114 | film 115 | Nama 116 | Lanjut 117 | Tidak terunduh 118 | OCR 119 | dari 120 | Offline 121 | di 122 | di internet. 123 | Buka gambar berukuran penuh 124 | Pilihan 125 | Asli 126 | dari 5 bintang 127 | Direktori Induk 128 | Teman sebaya 129 | ORANG-ORANG 130 | Mainkan Semua 131 | Silakan unduh file dalam item ini untuk berinteraksi dengannya di komputer Anda 132 | plus-lingkaran 133 | Poster 134 | POS 135 | PPI 136 | pratinjau 137 | Sebelumnya 138 | Kemajuan 139 | PROYEK 140 | Tanggal penerbitan 141 | Penerbit 142 | Antre 143 | Item terkait 144 | RELEVANSI 145 | Muat ulang 146 | hapus-lingkaran 147 | Balasan 148 | Sumber daya 149 | Peninjau 150 | ULASAN 151 | HAK 152 | baris pada 153 | Jalankan waktu 154 | Lari 155 | Menyimpan 156 | Simpan ini 157 | Simpan item ini 158 | Menyimpan ke 159 | Cari 160 | Cari 161 | Cari situs web yang diarsipkan 162 | Cari teks buku lengkap 163 | cari di dalam 164 | Cari metadata 165 | Pilihan pencarian 166 | Cari Arsipnya 167 | Cari Arsipnya. Filter dan Pencarian Lanjutan tersedia di bawah. 168 | Cari sejarah lebih dari 338 miliar 169 | Cari Mesin Wayback 170 | Cari keterangan TV 171 | Mencari 172 | Benih 173 | Pengaturan 174 | Bagikan 175 | Bagikan 176 | Bagikan atau Sematkan Ini 177 | Bagikan barang ini 178 | MENUNJUKKAN 179 | menunjukkan 180 | TUNJUKKAN SEMUA 181 | Tampilkan semua file 182 | Tampilkan sebagai daftar 183 | Tampilkan thumbnail 184 | ITEM SIMILAR (berdasarkan metadata) 185 | Perangkat lunak 186 | perangkat lunak 187 | SORTIR DENGAN 188 | suara mati. klik untuk suara. 189 | suara menyala. klik untuk membisukan suara. 190 | Spam, Penipuan, atau Penipuan 191 | Sponsor 192 | Masih diimplementasikan 193 | Subyek 194 | Ketentuan Layanan 195 | Teks 196 | teks 197 | Belum ada ulasan 198 | Item ini tampaknya tidak memiliki file apa pun yang dapat dialami di Archive.org 199 | ubin 200 | waktu 201 | JUDUL 202 | Koleksi Teratas di Arsip 203 | Topik 204 | Coba pencarian yang lebih umum 205 | Coba kata kunci yang berbeda 206 | televisi 207 | televisi 208 | Perpustakaan Universal 209 | Mediatype yang tidak didukung 210 | naik 211 | Unggah 212 | unggah 213 | Kecepatan mengunggah 214 | UPLOADS 215 | Pemakaian 216 | Video 217 | LIHAT 218 | dilihat 219 | SUKARELAWAN 220 | Menunggu 221 | Ingin lebih? 222 | WEB 223 | Web 224 | web 225 | ARSIP WEB 226 | Halaman web 227 | Bekerja pada 228 | menulis review 229 | Pencarian Anda tidak cocok dengan item mana pun di Arsip. Saran 230 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/google/japanese.txt: -------------------------------------------------------------------------------- 1 | 約 2 | アカウント 3 | アクティビティ 4 | アクティビティ 5 | レビューを追加 6 | 高度な埋め込みの詳細、例、およびヘルプ 7 | Attribution-NonCommercial-NoDerivs 8 | オーディオ 9 | オーディオ 10 | 最初の人になる 11 | ブログ 12 | 破損または空のデータ 13 | 沿って 14 | 見つからないか、メタデータがありません 15 | 言語を変更する 16 | 言語を変更する 17 | クリックして、プレーヤーに最初にフラッシュを試行させ、次にHTML5を試行させます 18 | コレクション 19 | コレクション 20 | コレクション 21 | コレクション 22 | コレクション 23 | コメント 24 | コメント 25 | 完了しました 26 | コンサート 27 | 接続中 28 | 接触 29 | 寄稿者 30 | クロールされた 31 | すべてをクロールする 32 | クロールの詳細 33 | クロールメタデータ 34 | クロールタイル 35 | クロール 36 | クリエーター 37 | 作成者 38 | 作成者 39 | クレジット 40 | 日付 41 | アーカイブされた日付 42 | アーカイブ日 43 | 発行日 44 | 公開日 45 | 審査日 46 | レビュー日 47 | 分散型インターネットアーカイブ 48 | 説明 49 | 説明 50 | 詳細 51 | ディレクトリ 52 | 寄付する 53 | ダウン 54 | ダウンロード 55 | ダウンロードオプション 56 | ダウンロード速度 57 | ダウンロード済み 58 | 編集する 59 | 埋め込み 60 | EMBED(wordpress.comがホストするブログおよびarchive.orgアイテムのタグ用) 61 | 英語 62 | URLまたはキーワードを入力してください 63 | エラー 64 | etree 65 | 眼 66 | お気に入り 67 | お気に入り 68 | このアイテムをお気に入り 69 | の言語ファイルを取得しています 70 | より多くの結果を取得する 71 | ファイル 72 | ファイル 73 | のファイル 74 | 国旗 75 | このアイテムにフラグを付ける 76 | このアイテムにフラグを立てる 77 | フォーラム 78 | フォーラム 79 | DWebでまだサポートされていないフォーラム-レガシーWebへ 80 | 全画面表示 81 | ゲートウェイ 82 | 行く 83 | 行く 84 | 画像に移動 85 | アイテムページに移動 86 | グラフィックの性的コンテンツ 87 | グラフィック暴力 88 | 助けて 89 | 画像 90 | に 91 | コレクションで 92 | 情報 93 | インターネットアーカイブ 94 | 何百万もの無料の本、映画、ソフトウェア、音楽、ウェブサイトなどの非営利ライブラリです。 95 | 項目 96 | 項目 97 | アイテム画像 98 | アイテム画像スライドショー 99 | アイテム 100 | アイテム 101 | 仕事 102 | 言語 103 | 最終更新 104 | 読み込み中 105 | 積み込み 106 | ブックのメタデータを読み込んでいます 107 | 関連アイテムの読み込み 108 | 検索を読み込んでいます 109 | ローディング開始 110 | 負荷 111 | 地元 112 | ロゴ 113 | より多くの結果 114 | 映画 115 | 名前 116 | 次 117 | ダウンロードしていない 118 | OCR 119 | の 120 | オフライン 121 | オン 122 | インターネット上で。 123 | フルサイズの画像を開く 124 | オプション 125 | 元の 126 | 5つ星のうち 127 | 親ディレクトリ 128 | 仲間 129 | 人 130 | 全部やる 131 | このアイテムのファイルをダウンロードして、コンピューターで操作してください 132 | プラスサークル 133 | ポスター 134 | 投稿 135 | PPI 136 | プレビュー 137 | 前 138 | 進捗 139 | プロジェクト 140 | 発行日 141 | 出版社 142 | キュー 143 | 関連商品 144 | 関連性 145 | リロード 146 | 削除サークル 147 | 返信 148 | 資源 149 | レビュアー 150 | レビュー 151 | 権利 152 | 行 153 | 実行時間 154 | ランニング 155 | セーブ 156 | これを保存 157 | このアイテムを保存 158 | に保存 159 | 調べる 160 | 調べる 161 | アーカイブされたWebサイトを検索する 162 | 書籍の全文を検索 163 | 内部を検索 164 | 検索メタデータ 165 | 検索オプション 166 | アーカイブを検索する 167 | アーカイブを検索します。以下で利用可能なフィルターと高度な検索。 168 | 3,380億以上の歴史を検索 169 | ウェイバックマシンを検索する 170 | テレビの字幕を検索 171 | 検索中 172 | シード 173 | 設定 174 | シェア 175 | シェア 176 | これを共有または埋め込む 177 | このアイテムを共有します 178 | 公演 179 | 公演 180 | すべて表示する 181 | すべてのファイルを表示 182 | リストとして表示 183 | サムネイルを表示 184 | 類似アイテム(メタデータに基づく) 185 | ソフトウェア 186 | ソフトウェア 187 | 並び替え 188 | 音はオフです。音をクリックします。 189 | 音はオンです。クリックして音をミュートします。 190 | スパム、詐欺、詐欺 191 | スポンサー 192 | まだ実装中 193 | 件名 194 | 利用規約 195 | テキスト 196 | テキスト 197 | レビューはまだありません。 198 | このアイテムには、Archive.orgで経験できるファイルはないようです。 199 | タイル 200 | 時間 201 | タイトル 202 | アーカイブのトップコレクション 203 | トピック 204 | より一般的な検索を試してください 205 | 別のキーワードを試す 206 | テレビ 207 | テレビ 208 | ユニバーサルライブラリー 209 | サポートされていないメディアタイプ 210 | アップ 211 | アップロードする 212 | アップロードする 213 | アップロードの速さ 214 | アップロード 215 | 使用法 216 | ビデオ 217 | ビュー 218 | 景色 219 | ボランティア 220 | 待ってる 221 | もっと欲しい? 222 | ウェブ 223 | ウェブ 224 | ウェブ 225 | ウェブアーカイブ 226 | ウェブページ 227 | 取りかかっている 228 | レビューを書く 229 | 検索はアーカイブ内のどのアイテムとも一致しませんでした。提案 230 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/google/marathi.txt: -------------------------------------------------------------------------------- 1 | बद्दल 2 | खाते 3 | क्रियाकलाप 4 | क्रियाकलाप 5 | पुनरावलोकन जोडा 6 | प्रगत एम्बेडिंग तपशील, उदाहरणे आणि मदत 7 | विशेषता-अव्यावसायिक-NoDerivs 8 | ऑडिओ 9 | ऑडिओ 10 | प्रथम व्हा 11 | ब्लॉग 12 | तुटलेली किंवा रिक्त डेटा 13 | द्वारा 14 | आढळू शकत नाही किंवा मेटाडेटा नाही 15 | वरून भाषा बदलत आहे 16 | भाषा बदलत आहे 17 | प्रथम प्लेअर प्रयत्न करण्यासाठी प्लेयर क्लिक करा, नंतर HTML5 सेकंद 18 | संग्रह 19 | संग्रह 20 | संग्रह 21 | संग्रह 22 | संग्रह 23 | टिप्पणी 24 | टिप्पण्या 25 | पूर्ण 26 | मैफिली 27 | कनेक्ट करीत आहे 28 | संपर्क 29 | हातभार लावणारा 30 | क्रॉल करून 31 | सर्वांना रेंगाळत 32 | क्रॉलिंग तपशील 33 | क्रॉलिंग मेटाडेटा 34 | रेंगाळणारी टाइल 35 | क्रॉल 36 | तयार करणारा 37 | निर्माणकर्ता 38 | निर्माता 39 | जमा 40 | तारीख 41 | तारीख संग्रहित 42 | संग्रहित तारीख 43 | तारीख प्रकाशित 44 | तारीख प्रकाशित 45 | तारीख पुनरावलोकन 46 | तारीख पुनरावलोकन 47 | विकेंद्रित इंटरनेट संग्रहण 48 | वर्णन 49 | वर्णन 50 | तपशील 51 | निर्देशिका 52 | दान करा 53 | खाली 54 | डाउनलोड 55 | डाऊनलोड पर्याय 56 | डाउनलोड गती 57 | डाउनलोड केले 58 | सुधारणे 59 | एम्बेड 60 | एम्बेड (वर्डप्रेस डॉट कॉम होस्ट केलेले ब्लॉग्ज आणि आर्काइव्ह.ऑर्ग आयटम <डिस्क्रिप्शन> टॅगसाठी) 61 | इंग्रजी 62 | URL किंवा कीवर्ड प्रविष्ट करा 63 | चुका 64 | इट्री 65 | डोळा 66 | आवडते 67 | आवडते 68 | हा आयटम आवडता करा 69 | यासाठी भाषा फाईल आणत आहे 70 | अधिक निकाल आणत आहे 71 | फायली 72 | फायली 73 | साठी फायली 74 | झेंडा 75 | हा आयटम ध्वजांकित करा 76 | यासाठी हा आयटम ध्वजांकित करा 77 | फोरम 78 | मंच 79 | लीगेसी वेबवर जाणे - डीव्हीबवर अद्याप फोरम समर्थित नाही 80 | पूर्णस्क्रीन दृश्य 81 | गेटवे 82 | जा 83 | जा 84 | प्रतिमेवर जा 85 | आयटम पृष्ठावर जा 86 | ग्राफिक लैंगिक सामग्री 87 | ग्राफिक हिंसा 88 | मदत 89 | प्रतिमा 90 | मध्ये 91 | संग्रहात 92 | माहिती 93 | इंटरनेट संग्रहण 94 | लाखो विनामूल्य पुस्तके, चित्रपट, सॉफ्टवेअर, संगीत, वेबसाइट्स आणि बरेच काहीची एक नानफा लायब्ररी आहे. 95 | आयटम 96 | आयटम 97 | आयटम प्रतिमा 98 | आयटम प्रतिमा स्लाइडशो 99 | आयटीएमएस 100 | आयटम 101 | नोकरी 102 | भाषा 103 | शेवटचे अद्यावत 104 | लोड करीत आहे 105 | लोड करीत आहे 106 | यासाठी बुक मेटाडेटा लोड करीत आहे 107 | संबंधित आयटम लोड करीत आहे 108 | शोध लोड करीत आहे 109 | लोड करीत आहे 110 | लोड 111 | स्थानिक 112 | लोगो 113 | अधिक परिणाम 114 | चित्रपट 115 | नाव 116 | पुढे 117 | डाउनलोड केलेले नाही 118 | ओसीआर 119 | च्या 120 | ऑफलाइन 121 | चालू 122 | इंटरनेट वर. 123 | पूर्ण आकाराची प्रतिमा उघडा 124 | पर्याय 125 | मूळ 126 | 5 तार्‍यांपैकी 127 | मूळ निर्देशिका 128 | तोलामोलाचा 129 | लोक 130 | सगळे खेळा 131 | कृपया आपल्या संगणकावर संवाद साधण्यासाठी या आयटममधील फायली डाउनलोड करा 132 | अधिक-मंडळ 133 | पोस्टर 134 | पोस्ट 135 | पीपीआय 136 | पूर्वावलोकन 137 | मागील 138 | प्रगती 139 | प्रकल्प 140 | प्रकाशनाची तारीख 141 | प्रकाशक 142 | रांग 143 | संबंधित वस्तू 144 | सुसंगतता 145 | रीलोड करा 146 | काढा-मंडळ 147 | प्रत्युत्तरे 148 | संसाधने 149 | पुनरावलोकनकर्ता 150 | पुनरावलोकने 151 | अधिकार 152 | वर पंक्ती 153 | धावण्याची वेळ 154 | चालू आहे 155 | जतन करा 156 | हे सेव्ह करा 157 | हा आयटम जतन करा 158 | मध्ये जतन करा 159 | शोधा 160 | शोध 161 | संग्रहित वेबसाइट्स शोधा 162 | पुस्तकांचा संपूर्ण मजकूर शोधा 163 | आत शोधा 164 | मेटाडेटा शोधा 165 | शोध पर्याय 166 | संग्रह शोधा 167 | संग्रह शोधा. खाली फिल्टर आणि प्रगत शोध उपलब्ध. 168 | 338 अब्जहून अधिकचा इतिहास शोधा 169 | वेबॅक मशीन शोधा 170 | टीव्ही मथळे शोधा 171 | शोधत आहे 172 | बियाणे 173 | सेटिंग्ज 174 | सामायिक करा 175 | सामायिक करा 176 | हे सामायिक करा किंवा एम्बेड करा 177 | हा आयटम सामायिक करा 178 | दाखवा 179 | दाखवा 180 | सगळं दाखवा 181 | सर्व फायली दर्शवा 182 | यादी म्हणून दर्शवा 183 | लघुप्रतिमा दर्शवा 184 | सिमलार आयटम (मेटाडेटावर आधारित) 185 | सॉफ्टवेअर 186 | सॉफ्टवेअर 187 | द्वारे क्रमवारी लावा 188 | आवाज बंद आहे ध्वनी क्लिक करा. 189 | आवाज चालू आहे आवाज नि: शब्द करण्यासाठी क्लिक करा. 190 | स्पॅम, घोटाळा किंवा फसवणूक 191 | प्रायोजक 192 | अद्याप अंमलात आणले जात आहे 193 | विषय 194 | सेवा अटी 195 | मजकूर 196 | ग्रंथ 197 | अद्याप कोणतीही पुनरावलोकने नाहीत. 198 | या आयटममध्ये आर्काइव.ऑर्ग. वर अनुभवल्या जाणार्‍या कोणत्याही फाईल्स असल्यासारखे दिसत नाही 199 | टाइल 200 | वेळ 201 | शीर्षक 202 | संग्रहणातील शीर्ष संग्रह 203 | विषय 204 | अधिक सामान्य शोध करून पहा 205 | भिन्न कीवर्ड वापरुन पहा 206 | टीव्ही 207 | टीव्ही 208 | युनिव्हर्सल लायब्ररी 209 | असमर्थित मेडियटाइप 210 | वर 211 | अपलोड करा 212 | अपलोड करा 213 | अपलोड गती 214 | अपलोड 215 | वापर 216 | व्हिडिओ 217 | दृश्ये 218 | दृश्ये 219 | व्हॉलंटियर 220 | वाट पहात आहे 221 | अधिक पाहिजे? 222 | वेब 223 | वेब 224 | वेब 225 | वेब संग्रह 226 | वेब पृष्ठे 227 | काम करत आहे 228 | एक पुनरावलोकन लिहा 229 | आपला शोध संग्रहातील कोणत्याही आयटमशी जुळला नाही. सूचना 230 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/english.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/french.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/german.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/hindi.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/indonesian.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/italian.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/japanese.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/marathi.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/myanmar.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/portugese.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/languages/manual/spanish.json: -------------------------------------------------------------------------------- 1 | { } 2 | -------------------------------------------------------------------------------- /ia-components/sandbox/tiles/RelatedItems.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import TileComponent from './TileComponent'; 3 | import { I18nStr, I18nSpan } from '../languages/Languages'; 4 | 5 | // Unused: const debug = require('debug')('dweb-archive:RelatedItems'); 6 | 7 | /** 8 | * 9 | * 16 | * RelatedItems is a component intended for the bottom of details page to display related items. 17 | * It should be called either with members=[member*] in which case it will render them immediately 18 | * dweb-archive uses RelatedItemsWrapper that has the functionality of loading the related item from an "item" or "identifier" 19 | * 20 | * It should be easy to build a wrapper to hook this into IAUX's (underdeveloped) related items service if anyone wants to use that. 21 | * 22 | * Members are, or should look like, ArchiveMember as defined in the dweb-archivecontroller repo. or as returned by Gio's related API 23 | * 24 | * Its currently used in dweb-archive/Details.js via RelatedItemsWrapper which finds the Members 25 | * For use without dweb-archivecontroller it will need to call the Related Items API and pass the results here. 26 | */ 27 | 28 | 29 | export default class RelatedItems extends React.Component { 30 | render() { 31 | return ((!this.props.identifier) ? null 32 | // Static or asynchronously loaded members handled here 33 | : ( 34 |
39 | { (!this.props.members && !this.props.loading) 40 | ? null 41 | : this.props.loading 42 | ? ... 43 | : ( 44 |
45 |
46 |
47 | 48 | {/* 49 | * 50 |
*/} 51 |
52 |
53 |
54 | { // Note this is odd - results normally encloses all the tasks, but AJS.tiler doesnt seem to work without this 55 | this.props.members.map(member => ( 56 |
57 | 58 |
59 | )) } 60 |
61 |
62 |
63 |
64 | ) 65 | } 66 |
67 | ) 68 | // No related items on home page, searches, maybe other places 69 | ); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /images/Broken_document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/images/Broken_document.png -------------------------------------------------------------------------------- /images/archivelogo207x207notext.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/images/archivelogo207x207notext.jpg -------------------------------------------------------------------------------- /images/archivelogo246x246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/images/archivelogo246x246.jpg -------------------------------------------------------------------------------- /images/baseline-fast_rewind-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/baseline-home-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/baseline-pause-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/baseline-play_arrow-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/baseline-update-24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/feedback.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | 10 | 14 | 18 | 22 | 26 | 31 | 34 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /images/palm-leaf-wiki-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/internetarchive/dweb-archive/af48eefbdfd5ecb509bd5cb715b8e9bfa1d90808/images/palm-leaf-wiki-logo.png -------------------------------------------------------------------------------- /includes/src/js/setUpCopyableTexts.js: -------------------------------------------------------------------------------- 1 | import ClipboardJS from 'clipboard' 2 | 3 | /** 4 | * Shows a message indicating the status of the copy operation 5 | * 6 | * Sets proper ARIA properties to ensure the status is read out by 7 | * accessible technologies 8 | * 9 | * @param {HTMLElement} copyableText 10 | * @param {String} message 11 | */ 12 | function showStatusMessage(copyableText, message) { 13 | let output = copyableText.querySelector('output') 14 | 15 | if (!output) { 16 | output = document.createElement('output') 17 | output.setAttribute('role', 'alert') 18 | copyableText.appendChild(output) 19 | } 20 | 21 | // Empty it first to trigger accessibility technologies to read out the 22 | // value even if it's the same as before 23 | output.textContent = '' 24 | output.textContent = message 25 | } 26 | 27 | /** 28 | * Creates a copy button with an event listener that triggers the 29 | * copy operation 30 | * 31 | * @param {HTMLElement} copyableText 32 | */ 33 | function createButton(copyableText) { 34 | const button = document.createElement('button') 35 | button.type = 'button' 36 | button.textContent = 'Copy' 37 | button.title = 'Copy to clipboard' 38 | button.setAttribute('data-clipboard-target', `#${copyableText.querySelector('input').id}`) 39 | 40 | return button 41 | } 42 | 43 | /** 44 | * Sets up a specific copyable text component 45 | * 46 | * @param {HTMLElement} copyableText 47 | */ 48 | function setUpCopyableText(copyableText) { 49 | // No to copy, abort 50 | if (!copyableText.querySelector('input')) return 51 | 52 | copyableText.appendChild(createButton(copyableText)) 53 | 54 | // Mark it as "ready" so we can avoid double-initializing 55 | copyableText.setAttribute('data-copyable-text-ready', '') 56 | } 57 | 58 | /** 59 | * Initialize ClipboardJS behavior for all buttons and attach event listeners to show statuses 60 | */ 61 | function setUpClipboardJS() { 62 | const clipboard = new ClipboardJS('[data-copyable-text] [data-clipboard-target]') 63 | 64 | clipboard.on('success', (event) => { 65 | const copyableText = event.trigger.parentElement 66 | 67 | const message = ( 68 | copyableText.getAttribute('data-copyable-text-success-message') || 69 | 'Text copied to clipboard.' 70 | ) 71 | 72 | showStatusMessage(copyableText, message) 73 | }) 74 | 75 | clipboard.on('error', (event) => { 76 | const copyableText = event.trigger.parentElement 77 | 78 | const message = ( 79 | copyableText.getAttribute('data-copyable-text-error-message') || 80 | 'Something went wrong.' 81 | ) 82 | 83 | showStatusMessage(copyableText, message) 84 | }) 85 | } 86 | 87 | /** 88 | * Read-only text input component with a button to copy the text to the 89 | * user's clipboard 90 | * 91 | * Progressively enhances the input by generating the button and status 92 | * message entirely in the JavaScript. 93 | * 94 | * Currently only supports s but it can be easily modified to support 95 | *