kopia lustrzana https://github.com/harvard-lil/archive.social
Post-migration edits
rodzic
39e704b557
commit
aaeb7f523d
|
@ -6,7 +6,7 @@ jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
# don't run on pushes to forks
|
# don't run on pushes to forks
|
||||||
if: github.repository == 'harvard-lil/archive.social'
|
if: github.repository == 'harvard-lil/thread-keeper'
|
||||||
steps:
|
steps:
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||||
|
|
|
@ -64,11 +64,11 @@ checkPdfDialog.querySelector("button").addEventListener("click", async(e) => {
|
||||||
|
|
||||||
switch (response.status) {
|
switch (response.status) {
|
||||||
case 200:
|
case 200:
|
||||||
output.value += `This hash is CONFIRMED to be present in archive.social's logs.\n`;
|
output.value += `This hash is CONFIRMED to be present in the logs.\n`;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 404:
|
case 404:
|
||||||
output.value += `This hash was NOT FOUND in archive.social's logs.\n`;
|
output.value += `This hash was NOT FOUND in the logs.\n`;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -42,87 +42,3 @@ if (formErrorDialog) {
|
||||||
formErrorDialog.close();
|
formErrorDialog.close();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// "check-pdf" dialog logic
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
const checkPdfDialog = document.querySelector("dialog#check-pdf");
|
|
||||||
|
|
||||||
// Open / close based on hash
|
|
||||||
window.addEventListener('hashchange', (event) => {
|
|
||||||
|
|
||||||
const newURL = new URL(event.newURL);
|
|
||||||
const oldURL = new URL(event.oldURL);
|
|
||||||
|
|
||||||
if (newURL.hash === "#check-pdf") {
|
|
||||||
checkPdfDialog.showModal();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (oldURL.hash === "#check-pdf" && oldURL !== newURL) {
|
|
||||||
checkPdfDialog.close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Open on load if hash already present
|
|
||||||
if (window.location.hash === "#check-pdf") {
|
|
||||||
checkPdfDialog.showModal();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear output on file change
|
|
||||||
checkPdfDialog.querySelector("input").addEventListener("change", () => {
|
|
||||||
checkPdfDialog.querySelector("textarea").value = `Click on "Check" to proceed.\n`;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Check file on click on "Check"
|
|
||||||
checkPdfDialog.querySelector("button").addEventListener("click", async(e) => {
|
|
||||||
let hash = "";
|
|
||||||
const output = checkPdfDialog.querySelector("textarea");
|
|
||||||
output.value = "";
|
|
||||||
|
|
||||||
try {
|
|
||||||
const data = await checkPdfDialog.querySelector("input[type='file']").files[0].arrayBuffer();
|
|
||||||
|
|
||||||
// Generate hash and convert it to hex and then base 64.
|
|
||||||
// Was of tremendous help: https://stackoverflow.com/questions/23190056/hex-to-base64-converter-for-javascript
|
|
||||||
hash = await (async() => {
|
|
||||||
const hash = await crypto.subtle.digest('SHA-512', data);
|
|
||||||
const walkable = Array.from(new Uint8Array(hash));
|
|
||||||
const toHex = walkable.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
||||||
return btoa(
|
|
||||||
toHex
|
|
||||||
.match(/\w{2}/g)
|
|
||||||
.map(function (a) {
|
|
||||||
return String.fromCharCode(parseInt(a, 16));
|
|
||||||
})
|
|
||||||
.join("")
|
|
||||||
);
|
|
||||||
})();
|
|
||||||
|
|
||||||
}
|
|
||||||
catch(err) {
|
|
||||||
output.value = `Could not calculate hash of the file selected, if any.\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch(`/api/v1/hashes/check/${encodeURIComponent(hash)}`);
|
|
||||||
output.value += `SHA-512 hash\n---${hash}\n---\n`;
|
|
||||||
|
|
||||||
switch (response.status) {
|
|
||||||
case 200:
|
|
||||||
output.value += `This hash is CONFIRMED to be present in archive.social's logs.\n`;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 404:
|
|
||||||
output.value += `This hash was NOT FOUND in archive.social's logs.\n`;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
throw new Error(response.status);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(err) {
|
|
||||||
console.log(`/api/v1/hashes/check/<hash> responded with HTTP ${err}`);
|
|
||||||
output.value += `An error occurred while trying to verify file.`;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
|
@ -150,10 +150,10 @@ export class TwitterCapture {
|
||||||
|
|
||||||
// Remove extraneous page, add metadata
|
// Remove extraneous page, add metadata
|
||||||
try {
|
try {
|
||||||
editablePDF.setTitle(`Capture of ${this.url} by archive.social on ${new Date().toISOString()}`);
|
editablePDF.setTitle(`Capture of ${this.url} by thread-keeper on ${new Date().toISOString()}`);
|
||||||
editablePDF.setCreationDate(new Date());
|
editablePDF.setCreationDate(new Date());
|
||||||
editablePDF.setModificationDate(new Date());
|
editablePDF.setModificationDate(new Date());
|
||||||
editablePDF.setProducer("archive.social");
|
editablePDF.setProducer("thread-keeper");
|
||||||
editablePDF.removePage(1);
|
editablePDF.removePage(1);
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "archive.social",
|
"name": "thread-keeper",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "archive.social",
|
"name": "thread-keeper",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/harvard-lil/archive.social.git"
|
"url": "git+https://github.com/harvard-lil/thread-keeper.git"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# [DEV ONLY] Generates a local key pair that can be used for signing PDFs.
|
# [DEV ONLY] Generates a local key pair that can be used for signing PDFs.
|
||||||
# Will be saved under ../app/certs.
|
# Will be saved under ../app/certs.
|
||||||
openssl req -x509 -newkey rsa:4096 -keyout ../certs/key.pem -out ../certs/cert.pem -days 3650 -nodes -subj /CN="archive.social DEV";
|
openssl req -x509 -newkey rsa:4096 -keyout ../certs/key.pem -out ../certs/cert.pem -days 3650 -nodes -subj /CN="thread-keeper DEV";
|
Ładowanie…
Reference in New Issue