wacz loading: support wacz 1.0.0! -- update to wabac.js 2.3.0

local file loading: support purge cache + reload for local files when filehandles are used (chrome)
update CHANGES.md
bump to 1.3.1
This commit is contained in:
Ilya Kreymer
2020-11-20 15:38:12 -08:00
parent 1bb14b1299
commit 4155b9af33
9 changed files with 69 additions and 63 deletions
+4
View File
@@ -1,5 +1,9 @@
## CHANGES
v1.3.1
- Loading: Support updated WACZ Format (1.0.0) with latest wabac.js update
- Loading: Archives loaded with via native file system can be reloaded after purge cache (chrome only)
v1.3.0
- UI: Condense navbar and location bar: add logo to location bar, condense button spacing, add about link to context menu
- UI: Add collection info dropdown to be a separate tab instead
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "replaywebpage",
"productName": "ReplayWeb.page",
"version": "1.3.0",
"version": "1.3.1",
"description": "Serverless Web Archive Replay",
"repository": "https://github.com/webrecorder/replayweb.page",
"homepage": "https://replayweb.page/",
@@ -9,7 +9,7 @@
"license": "AGPL-3.0-or-later",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
"@webrecorder/wabac": "^2.2.2",
"@webrecorder/wabac": "^2.3.0",
"bulma": "^0.9.0",
"fetch-ndjson": "^1.1.0",
"flexsearch": "^0.6.32",
+7 -3
View File
@@ -73,6 +73,7 @@ class Coll extends LitElement
this.appName = "ReplayWeb.page";
this.appLogo = rwpLogo;
this.appHomeUrl = "/";
}
static get properties() {
@@ -107,6 +108,7 @@ class Coll extends LitElement
appName: { type: String },
appLogo: { type: String },
appHomeUrl: { type: String }
}
}
@@ -703,7 +705,7 @@ class Coll extends LitElement
<div class="field has-addons">
${!this.embed ? html`
<a href="/" role="button" class="button is-borderless is-hidden-touch" aria-labelledby="home" @keyup="${clickOnSpacebarPress}">
<a href="${this.appHomeUrl}" role="button" class="button is-borderless is-hidden-touch" aria-labelledby="home" @keyup="${clickOnSpacebarPress}">
<span class="icon is-small">
<fa-icon size="1.0em" .svg="${fasHome}" aria-hidden="true"></fa-icon>
<span class="is-sr-only">Home</span>
@@ -765,7 +767,7 @@ class Coll extends LitElement
<div class="dropdown-menu" id="menu-dropdown">
<div class="dropdown-content">
${!this.embed ? html`
<a href="/" role="button" class="dropdown-item is-hidden-desktop" @keyup="${clickOnSpacebarPress}">
<a href="${this.appHomeUrl}" role="button" class="dropdown-item is-hidden-desktop" @keyup="${clickOnSpacebarPress}">
<span class="icon is-small">
<fa-icon size="1.0em" class="has-text-grey" aria-hidden="true" .svg="${fasHome}"></fa-icon>
</span>
@@ -999,7 +1001,9 @@ class Coll extends LitElement
}
async deleteFully(reload = false) {
const resp = await fetch(`${this.collInfo.apiPrefix}`, {
const deleteURL = this.collInfo.apiPrefix + (reload ? "?reload=1" : "");
const resp = await fetch(deleteURL, {
method: 'DELETE',
});
+9 -3
View File
@@ -20,6 +20,8 @@ class Loader extends LitElement
this.currentSize = 0;
this.totalSize = 0;
this.tryFileHandle = !!window.showOpenFilePicker;
}
static get properties() {
@@ -35,7 +37,8 @@ class Loader extends LitElement
total: { type: Number },
status: { type: String },
coll: { type: String },
embed: { type: String }
embed: { type: String },
tryFileHandle: { type: Boolean }
}
}
@@ -57,6 +60,9 @@ class Loader extends LitElement
if (event.data.error) {
this.error = event.data.error;
this.state = "errored";
if (this.error === "missing_local_file") {
this.tryFileHandle = false;
}
}
if (event.data.currentSize && event.data.totalSize) {
this.currentSize = event.data.currentSize;
@@ -114,7 +120,7 @@ Please try loading this page from an HTTPS URL`;
break;
case "file":
if (!this.loadInfo) {
if (!this.loadInfo && !this.tryFileHandle) {
this.state = "errored";
this.error = `\
File URLs can not be entered directly or shared.
@@ -179,7 +185,7 @@ You can select a file to upload from the main page by clicking the \'Choose File
}
updated(changedProperties) {
if (this.sourceUrl && changedProperties.has("sourceUrl")) {
if (this.sourceUrl && changedProperties.has("sourceUrl") || changedProperties.has("tryFileHandle")) {
this.doLoad();
}
}
+1 -13
View File
@@ -191,19 +191,7 @@ class Pages extends LitElement
const resp = await fetch(`${this.collInfo.apiPrefix}/curated/${this.currList}`);
const json = await resp.json();
const curated = [];
for (const c of json.curated) {
for (const p of this.filteredPages) {
if (p.id === c.page) {
if (p.ts) {
p.date = new Date(p.ts).toISOString();
}
curated.push(p);
break;
}
}
}
const curated = json.curated;
this.filteredPages = curated;
}
+9 -5
View File
@@ -117,11 +117,15 @@ class Story extends LitElement
if (!this.curatedPageMap[curated.list]) {
this.curatedPageMap[curated.list] = [];
}
const page = pageMap[curated.page];
if (!page) {
console.log("No Page with id: " + page);
continue;
}
const page = curated;
// if (curated.page) {
// page = pageMap[curated.page];
// if (!page) {
// console.log("No Page with id: " + page);
// continue;
// }
// }
const url = page.url;
const ts = page.ts;
+6 -6
View File
File diff suppressed because one or more lines are too long
+22 -22
View File
File diff suppressed because one or more lines are too long
+9 -9
View File
@@ -709,10 +709,10 @@
"@webassemblyjs/wast-parser" "1.9.0"
"@xtuc/long" "4.2.2"
"@webrecorder/wabac@^2.2.2":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.2.2.tgz#9c2335b4656cb3deea2f6c94e2218553fa8d8262"
integrity sha512-IFUHYdZ9syoAoItjqa0dI3Vz8IsNU4NdA0VNmq3WF6GxuZzru1HQLUQ/0CXWrub4kFu1xUFPVS16u1asKjuRoQ==
"@webrecorder/wabac@^2.3.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.3.0.tgz#e57e46acd7c58afe3bfb42ce54e2cb3bdd1fcd81"
integrity sha512-8FefSdft62fgafgXMGRTvhXzcjTCHFMO0+6lcUGPoE28WhYCLgxWA250xxhQlPjoov+YjxffnQGYD+DJmTqWqQ==
dependencies:
"@webrecorder/wombat" "^3.0.1"
brotli "github:foliojs/brotli.js"
@@ -722,7 +722,7 @@
js-levenshtein "^1.1.6"
js-yaml "^3.13.1"
json-2-csv "^3.7.1"
jszip "^3.4.0"
jszip "^3.5.0"
pako "^1.0.10"
parse5-html-rewriting-stream "^6.0.0"
parse5-sax-parser "^6.0.0"
@@ -5233,10 +5233,10 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
jszip@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.4.0.tgz#1a69421fa5f0bb9bc222a46bca88182fba075350"
integrity sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==
jszip@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6"
integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==
dependencies:
lie "~3.3.0"
pako "~1.0.2"