+
-
Collections
+
Collections
{collectionInput ? (
@@ -122,7 +122,8 @@ export default function () {
)}
@@ -139,7 +140,7 @@ export default function () {
})}
{tags.map((e, i) => {
diff --git a/lib/api/archive.ts b/lib/api/archive.ts
index 9dd401cd..b4f12f50 100644
--- a/lib/api/archive.ts
+++ b/lib/api/archive.ts
@@ -1,4 +1,5 @@
import { chromium, devices } from "playwright";
+import { prisma } from "@/lib/api/db";
export default async (url: string, collectionId: number, linkId: number) => {
const archivePath = `data/archives/${collectionId}/${linkId}`;
@@ -12,9 +13,18 @@ export default async (url: string, collectionId: number, linkId: number) => {
await page.goto(url);
- await page.pdf({ path: archivePath + ".pdf" });
+ const linkExists = await prisma.link.findFirst({
+ where: {
+ id: linkId,
+ },
+ });
- await page.screenshot({ fullPage: true, path: archivePath + ".png" });
+ if (linkExists) {
+ await Promise.all([
+ page.pdf({ path: archivePath + ".pdf" }),
+ page.screenshot({ fullPage: true, path: archivePath + ".png" }),
+ ]);
+ }
await context.close();
await browser.close();
diff --git a/lib/api/controllers/links/deleteLink.ts b/lib/api/controllers/links/deleteLink.ts
index 05ae85d5..15f119e0 100644
--- a/lib/api/controllers/links/deleteLink.ts
+++ b/lib/api/controllers/links/deleteLink.ts
@@ -1,12 +1,9 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { prisma } from "@/lib/api/db";
import { Session } from "next-auth";
-import { ExtendedLink, NewLink } from "@/types/global";
-import { existsSync, mkdirSync } from "fs";
-import getTitle from "../../getTitle";
-import archive from "../../archive";
+import { ExtendedLink } from "@/types/global";
+import fs from "fs";
import { Link, UsersAndCollections } from "@prisma/client";
-import AES from "crypto-js/aes";
import hasAccessToCollection from "@/lib/api/hasAccessToCollection";
export default async function (
@@ -42,6 +39,14 @@ export default async function (
},
});
+ fs.unlink(`data/archives/${link.collectionId}/${link.id}.pdf`, (err) => {
+ if (err) console.log(err);
+ });
+
+ fs.unlink(`data/archives/${link.collectionId}/${link.id}.png`, (err) => {
+ if (err) console.log(err);
+ });
+
return res.status(200).json({
response: deleteLink,
});
diff --git a/lib/api/controllers/links/postLink.ts b/lib/api/controllers/links/postLink.ts
index d333e68f..29948439 100644
--- a/lib/api/controllers/links/postLink.ts
+++ b/lib/api/controllers/links/postLink.ts
@@ -118,7 +118,7 @@ export default async function (
const AES_SECRET = process.env.AES_SECRET as string;
- const screenShotHashedPath = AES.encrypt(
+ const screenshotHashedPath = AES.encrypt(
`data/archives/${newLink.collectionId}/${newLink.id}.png`,
AES_SECRET
).toString();
@@ -130,7 +130,7 @@ export default async function (
const updatedLink: ExtendedLink = await prisma.link.update({
where: { id: newLink.id },
- data: { screenshotPath: screenShotHashedPath, pdfPath: pdfHashedPath },
+ data: { screenshotPath: screenshotHashedPath, pdfPath: pdfHashedPath },
include: { tags: true, collection: true },
});
diff --git a/lib/api/controllers/tags/getTags.ts b/lib/api/controllers/tags/getTags.ts
index c0816d3b..0fd7bf91 100644
--- a/lib/api/controllers/tags/getTags.ts
+++ b/lib/api/controllers/tags/getTags.ts
@@ -7,6 +7,15 @@ export default async function (
res: NextApiResponse,
session: Session
) {
+ // tag cleanup
+ await prisma.tag.deleteMany({
+ where: {
+ links: {
+ none: {},
+ },
+ },
+ });
+
const tags = await prisma.tag.findMany({
where: {
collections: {
diff --git a/pages/collections/[id].tsx b/pages/collections/[id].tsx
index 032e4393..cf06f263 100644
--- a/pages/collections/[id].tsx
+++ b/pages/collections/[id].tsx
@@ -12,8 +12,8 @@ export default function () {
return (
// ml-80
-
-
+
+
{linksByCollection.length || 0} Links Found
{linksByCollection.map((e, i) => {
diff --git a/pages/collections/index.tsx b/pages/collections/index.tsx
index 1b8e76b2..8a9dfe63 100644
--- a/pages/collections/index.tsx
+++ b/pages/collections/index.tsx
@@ -11,7 +11,7 @@ export default function () {
return (
// ml-80
-
+
{collections.map((e, i) => {
return
;
})}
diff --git a/pages/login.tsx b/pages/login.tsx
index d2e8d5ba..5f321627 100644
--- a/pages/login.tsx
+++ b/pages/login.tsx
@@ -42,17 +42,17 @@ export default function () {
placeholder="Email"
value={form.email}
onChange={(e) => setForm({ ...form, email: e.target.value })}
- className="border border-gray-700 rounded block m-2 mx-auto p-2"
+ className="border border-gray-700 rounded-md block m-2 mx-auto p-2"
/>
setForm({ ...form, password: e.target.value })}
- className="border border-gray-700 rounded block m-2 mx-auto p-2"
+ className="border border-gray-700 rounded-md block m-2 mx-auto p-2"
/>
Login
diff --git a/pages/register.tsx b/pages/register.tsx
index 5ea073df..abae07f4 100644
--- a/pages/register.tsx
+++ b/pages/register.tsx
@@ -57,24 +57,24 @@ export default function () {
placeholder="Name"
value={form.name}
onChange={(e) => setForm({ ...form, name: e.target.value })}
- className="border border-gray-700 rounded block m-2 mx-auto p-2"
+ className="border border-gray-700 rounded-md block m-2 mx-auto p-2"
/>
setForm({ ...form, email: e.target.value })}
- className="border border-gray-700 rounded block m-2 mx-auto p-2"
+ className="border border-gray-700 rounded-md block m-2 mx-auto p-2"
/>
setForm({ ...form, password: e.target.value })}
- className="border border-gray-700 rounded block m-2 mx-auto p-2"
+ className="border border-gray-700 rounded-md block m-2 mx-auto p-2"
/>
Register
diff --git a/store/links.ts b/store/links.ts
index a9ba598b..9fe9db77 100644
--- a/store/links.ts
+++ b/store/links.ts
@@ -1,5 +1,7 @@
import { create } from "zustand";
import { ExtendedLink, NewLink } from "@/types/global";
+import useTagStore from "./tags";
+import useCollectionStore from "./collections";
type LinkStore = {
links: ExtendedLink[];
@@ -34,6 +36,9 @@ const useLinkStore = create()((set) => ({
links: [...state.links, data.response],
}));
+ useTagStore.getState().setTags();
+ useCollectionStore.getState().setCollections();
+
return response.ok;
},
updateLink: (link) =>
@@ -56,7 +61,7 @@ const useLinkStore = create()((set) => ({
links: state.links.filter((e) => e.id !== link.id),
}));
- console.log(data);
+ useTagStore.getState().setTags();
return response.ok;
},