better UX + more consistent layout

This commit is contained in:
daniel31x13
2023-12-15 15:47:08 -05:00
parent b74ff01ce6
commit 530ec69d1c
11 changed files with 380 additions and 989 deletions
+9 -22
View File
@@ -7,11 +7,6 @@ import { JSDOM } from "jsdom";
import DOMPurify from "dompurify";
import { Collection, Link, User } from "@prisma/client";
import validateUrlSize from "./validateUrlSize";
import {
pdfAvailable,
readabilityAvailable,
screenshotAvailable,
} from "../shared/getArchiveValidity";
type LinksAndCollectionAndOwner = Link & {
collection: Collection & {
@@ -174,23 +169,15 @@ export default async function archiveHandler(link: LinksAndCollectionAndOwner) {
await prisma.link.update({
where: { id: link.id },
data: {
readabilityPath:
!finalLink.textContent ||
finalLink.textContent === "" ||
!readabilityAvailable(finalLink) ||
finalLink.type !== "url"
? "unavailable"
: undefined,
screenshotPath:
!screenshotAvailable(finalLink) ||
(finalLink.type !== "url" && finalLink.type !== "pdf")
? "unavailable"
: undefined,
pdfPath:
!pdfAvailable(finalLink) ||
(finalLink.type !== "url" && finalLink.type !== "image")
? "unavailable"
: undefined,
readabilityPath: !finalLink.readabilityPath?.startsWith("archives")
? "unavailable"
: undefined,
screenshotPath: !finalLink.screenshotPath?.startsWith("archives")
? "unavailable"
: undefined,
pdfPath: !finalLink.pdfPath?.startsWith("archives")
? "unavailable"
: undefined,
},
});
-37
View File
@@ -1,37 +0,0 @@
import { prisma } from "@/lib/api/db";
import createFile from "@/lib/api/storage/createFile";
import fs from "fs";
import path from "path";
export default async function imageHandler(
linkId: number,
url: string | null,
extension: string,
file?: string
) {
const image = await fetch(url as string).then((res) => res.blob());
const buffer = Buffer.from(await image.arrayBuffer());
const linkExists = await prisma.link.findUnique({
where: { id: linkId },
});
linkExists
? await createFile({
data: buffer,
filePath: `archives/${linkExists.collectionId}/${linkId}.${extension}`,
})
: undefined;
await prisma.link.update({
where: { id: linkId },
data: {
screenshotPath: linkExists
? `archives/${linkExists.collectionId}/${linkId}.${extension}`
: null,
pdfPath: null,
readabilityPath: null,
},
});
}
-44
View File
@@ -1,44 +0,0 @@
import { prisma } from "@/lib/api/db";
import createFile from "@/lib/api/storage/createFile";
import fs from "fs";
import path from "path";
export default async function pdfHandler(
linkId: number,
url: string | null,
file?: string
) {
const targetLink = await prisma.link.update({
where: { id: linkId },
data: {
pdfPath: "pending",
lastPreserved: new Date().toISOString(),
},
});
const pdf = await fetch(url as string).then((res) => res.blob());
const buffer = Buffer.from(await pdf.arrayBuffer());
const linkExists = await prisma.link.findUnique({
where: { id: linkId },
});
linkExists
? await createFile({
data: buffer,
filePath: `archives/${linkExists.collectionId}/${linkId}.pdf`,
})
: undefined;
await prisma.link.update({
where: { id: linkId },
data: {
pdfPath: linkExists
? `archives/${linkExists.collectionId}/${linkId}.pdf`
: null,
readabilityPath: null,
screenshotPath: null,
},
});
}