diff --git a/.env.sample b/.env.sample index c34fff2..b8f2166 100644 --- a/.env.sample +++ b/.env.sample @@ -36,6 +36,7 @@ PREVIEW_MAX_BUFFER= IMPORT_LIMIT= PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH= MAX_WORKERS= +DISABLE_PRESERVATION= # AWS S3 Settings SPACES_KEY= diff --git a/lib/api/archiveHandler.ts b/lib/api/archiveHandler.ts index 87dafb0..e54ad65 100644 --- a/lib/api/archiveHandler.ts +++ b/lib/api/archiveHandler.ts @@ -21,6 +21,19 @@ type LinksAndCollectionAndOwner = Link & { const BROWSER_TIMEOUT = Number(process.env.BROWSER_TIMEOUT) || 5; export default async function archiveHandler(link: LinksAndCollectionAndOwner) { + if (process.env.DISABLE_PRESERVATION === "true") + return await prisma.link.update({ + where: { id: link.id }, + data: { + lastPreserved: new Date().toISOString(), + readable: "unavailable", + image: "unavailable", + monolith: "unavailable", + pdf: "unavailable", + preview: "unavailable", + }, + }); + const timeoutPromise = new Promise((_, reject) => { setTimeout( () => @@ -44,7 +57,8 @@ export default async function archiveHandler(link: LinksAndCollectionAndOwner) { }; } if (process.env.PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH) { - browserOptions.executablePath = process.env.PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH; + browserOptions.executablePath = + process.env.PLAYWRIGHT_LAUNCH_OPTIONS_EXECUTABLE_PATH; } const browser = await chromium.launch(browserOptions);