104 lines
2.9 KiB
JavaScript
104 lines
2.9 KiB
JavaScript
const mongoose = require("../src/db/mongooseServerUtils");
|
|
const conn = mongoose.connection;
|
|
const cliProgress = require('cli-progress');
|
|
|
|
const clearTempDirectory = async() => {
|
|
|
|
console.log("Removing Temporary Collections...");
|
|
|
|
try {
|
|
await conn.db.collection("temp-fs.files").drop();
|
|
} catch (e) {}
|
|
|
|
try {
|
|
await conn.db.collection("temp-fs.chunks").drop();
|
|
} catch (e) {}
|
|
|
|
try {
|
|
await conn.db.collection("temp-thumbnails").drop();
|
|
} catch (e) {}
|
|
|
|
try {
|
|
await conn.db.collection("temp-folders").drop();
|
|
} catch (e) {}
|
|
|
|
try {
|
|
await conn.db.collection("temp-videos.files").drop();
|
|
} catch (e) {}
|
|
|
|
try {
|
|
await conn.db.collection("temp-videos.chunks").drop();
|
|
} catch (e) {}
|
|
|
|
try {
|
|
await conn.db.collection("temp-users").drop();
|
|
} catch (e) {}
|
|
|
|
console.log("Removed Temporary Collections\n")
|
|
}
|
|
|
|
const moveItem = async(oldPath, newPath) => {
|
|
|
|
const listCursor = await conn.db.collection(oldPath).find({});
|
|
const listCount = await conn.db.collection(oldPath).find({}).count();
|
|
const progressBar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic);
|
|
|
|
progressBar.start(listCount, 0);
|
|
|
|
for await (const currentFile of listCursor) {
|
|
|
|
await conn.db.collection(newPath).insertOne(currentFile);
|
|
progressBar.increment();
|
|
}
|
|
|
|
progressBar.stop();
|
|
}
|
|
|
|
const createTempDirectory = async() => {
|
|
|
|
await clearTempDirectory();
|
|
|
|
console.log("Moving Files...")
|
|
await moveItem("fs.files", "temp-fs.files")
|
|
console.log("Moved All Files\n");
|
|
|
|
|
|
console.log(`Moving File Chunks...`);
|
|
await moveItem("fs.chunks", "temp-fs.chunks");
|
|
console.log("Moved All Chunks \n");
|
|
|
|
console.log("Creating Temp File Chunks Index...");
|
|
await conn.db.collection("temp-fs.chunks").createIndex({ files_id: 1, n: 1 }, { unique: true });
|
|
console.log("Created Temp File Chunks Index\n");
|
|
|
|
console.log(`Moving Thumbnails...`)
|
|
await moveItem("thumbnails", "temp-thumbnails");
|
|
console.log("Moved All Thumbnails \n")
|
|
|
|
|
|
console.log(`Moving Folders...`);
|
|
await moveItem("folders", "temp-folders");
|
|
console.log("All Folders Moved \n");
|
|
|
|
|
|
console.log(`Moving Transcoded Video Files...`);
|
|
await moveItem("videos.files", "temp-videos.files")
|
|
console.log("All Transcoded Video Files Moved \n");
|
|
|
|
|
|
console.log(`Moving Transcoded Video Chunks...`)
|
|
await moveItem("videos.chunks", "temp-videos.chunks")
|
|
console.log("All Transcoded Video Chunks Moved \n");
|
|
|
|
console.log("Creating Temp Transcoded Video Chunks Index...");
|
|
await conn.db.collection("videos.chunks").createIndex({ files_id: 1, n: 1 }, { unique: true })
|
|
console.log("Created Temp Transcoded Video Chunks Index \n");
|
|
|
|
|
|
console.log(`Moving Users...`)
|
|
await moveItem("users", "temp-users")
|
|
console.log("All Users Moved\n");
|
|
}
|
|
|
|
module.exports = createTempDirectory;
|