import "dotenv/config" import express from "express" import database from "./modules/database.js" import immichDb from "./repositories/immichRepo.js" import execHelper from "./modules/execution_helper.js" import imageProcessor from "./modules/image_processor.js" await database.connect() const app = express() app.use(express.json()) app.use(express.urlencoded({ extended: true })) app.post("/", async (req, res) => { const authorization = req.headers.authorization if (authorization != `Bearer ${process.env.PASS_CODE}`) { res.status(401).send() } const assetType = req.body.data.asset.type if (assetType != "IMAGE") { res.end() } const assetFilePath = req.body.data.asset.originalPath if (imageProcessor.getMediaType(assetFilePath) != "IMAGE") { res.end() } const assetId = req.body.data.asset.id await execHelper.sleep(550) const asset = await immichDb.getMediaInDatabase(assetId) await imageProcessor.processCompression(asset[0].originalPath) immichDb.updateMediaPathInDatabase(assetId, imageProcessor.changeExtension(asset[0].originalPath, process.env.IMG_COMPRESSION_OUTPUT_FORMAT)) return res.status(200).send() }) app.listen(process.env.PORT, () => { return console.log(`Server listening at port : ${process.env.PORT}`) })