diff --git a/backend/server/server-start.ts b/backend/server/server-start.ts index 7a79e0c..8222e1a 100644 --- a/backend/server/server-start.ts +++ b/backend/server/server-start.ts @@ -28,7 +28,7 @@ const serverStart = async () => { const port = process.env.HTTP_PORT || process.env.PORT; server.listen(port, process.env.URL, () => { - console.log("Development Server Running On Port:", port, process.env.URL); + console.log("Development Backend Server Running On Port:", port); }); } }; diff --git a/backend/services/chunk-service/utils/createVideoThumbnail.ts b/backend/services/chunk-service/utils/createVideoThumbnail.ts index 07300df..dbeebc0 100644 --- a/backend/services/chunk-service/utils/createVideoThumbnail.ts +++ b/backend/services/chunk-service/utils/createVideoThumbnail.ts @@ -157,7 +157,7 @@ const createVideoThumbnail = ( } }) .on("error", async (err, sdf, stderr) => { - console.log("thumbnail error attempting temp directory fix"); + // console.log("thumbnail error attempting temp directory fix"); error = true; diff --git a/backend/services/chunk-service/utils/tempCreateVideoThumbnail.ts b/backend/services/chunk-service/utils/tempCreateVideoThumbnail.ts index 30911ac..330ea79 100644 --- a/backend/services/chunk-service/utils/tempCreateVideoThumbnail.ts +++ b/backend/services/chunk-service/utils/tempCreateVideoThumbnail.ts @@ -22,7 +22,7 @@ const tempCreateVideoThumbnail = ( filename: string, user: UserInterface ) => { - return new Promise(async (resolve, reject) => { + return new Promise((resolve, reject) => { const password = user.getEncryptionKey(); let CIPHER_KEY = crypto.createHash("sha256").update(password!).digest(); diff --git a/package.json b/package.json index 2c55985..715c1ea 100755 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "scripts": { "dev": "concurrently \"vite\" \"tsc -w -p ./backend/tsconfig.json\" \"npm run dev:backend\"", - "dev:backend": "NODE_ENV=development nodemon dist-backend/server/server-start.js", + "dev:backend": "NODE_ENV=development nodemon --quiet dist-backend/server/server-start.js", "build:frontend": "vite build", "build:backend": "tsc -p ./backend/tsconfig.json", "build": "npm run build:frontend && npm run build:backend", diff --git a/serverUtils/createVideoThumbnails.js b/serverUtils/createVideoThumbnails.js index 2f4c778..56d02df 100644 --- a/serverUtils/createVideoThumbnails.js +++ b/serverUtils/createVideoThumbnails.js @@ -10,17 +10,30 @@ const getKey = require("../dist-backend/key/get-key").default; const waitForDatabase = () => { return new Promise((resolve, reject) => { + // Wait for the database to be ready. + const timeoutWait = () => { + setTimeout(() => resolve(), 3000); + }; + if (conn.readyState !== 1) { conn.once("open", () => { - resolve(); + timeoutWait(); }); } else { - resolve(); + timeoutWait(); } }); }; +// Wait to be after anything else may be printed to the terminal +const terminalWait = () => { + return new Promise((resolve) => { + setTimeout(() => resolve(), 2000); + }); +}; + const updateDocs = async () => { + await terminalWait(); console.log(`Updating video thumbnails, env is ${process.env.NODE_ENV}`); console.log("\nWaiting for database..."); @@ -48,7 +61,7 @@ const updateDocs = async () => { try { const currentFile = files[i]; - console.log("current file", currentFile._id); + console.log(`Progress ${i + 1}/${files.length}`); const user = await User.findById(currentFile.metadata.owner); diff --git a/src/components/MediaItem/MediaItem.tsx b/src/components/MediaItem/MediaItem.tsx index 6d037bc..972646e 100644 --- a/src/components/MediaItem/MediaItem.tsx +++ b/src/components/MediaItem/MediaItem.tsx @@ -1,4 +1,4 @@ -import React, { memo, useRef } from "react"; +import React, { memo, useRef, useState } from "react"; import { FileInterface } from "../../types/file"; import { useAppDispatch, useAppSelector } from "../../hooks/store"; import { @@ -12,12 +12,14 @@ import { useContextMenu } from "../../hooks/contextMenu"; import ContextMenu from "../ContextMenu/ContextMenu"; import PlayButtonIcon from "../../icons/PlayIcon"; import getBackendURL from "../../utils/getBackendURL"; +import AlertIcon from "../../icons/AlertIcon"; type MediaItemType = { file: FileInterface; }; const MediaItem: React.FC = memo(({ file }) => { + const [thumbnailError, setThumbnailError] = useState(false); const elementSelected = useAppSelector((state) => { if (state.selected.mainSection.type !== "file") return false; return state.selected.mainSection.id === file._id; @@ -105,15 +107,23 @@ const MediaItem: React.FC = memo(({ file }) => { /> )} - {file.metadata.isVideo && ( + {file.metadata.isVideo && !thumbnailError && (
)} - + {!thumbnailError && ( + setThumbnailError(true)} + /> + )} + {thumbnailError && ( +
+ +
+ )} ); });