From 0bb0d69543c8bc393d28e25f25019cd545be040a Mon Sep 17 00:00:00 2001
From: smitten <everything-cozy@pm.me>
Date: Sat, 30 Dec 2023 20:44:31 -0500
Subject: [PATCH] Use hashed filename for exists check

---
 .../src/queue/processors/ImportNotesProcessorService.ts    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/packages/backend/src/queue/processors/ImportNotesProcessorService.ts b/packages/backend/src/queue/processors/ImportNotesProcessorService.ts
index 552b69d92d..67078adaf6 100644
--- a/packages/backend/src/queue/processors/ImportNotesProcessorService.ts
+++ b/packages/backend/src/queue/processors/ImportNotesProcessorService.ts
@@ -1,5 +1,6 @@
 import * as fs from 'node:fs';
 import * as vm from 'node:vm';
+import * as crypto from 'node:crypto';
 import { Inject, Injectable } from '@nestjs/common';
 import { ZipReader } from 'slacc';
 import { DI } from '@/di-symbols.js';
@@ -469,7 +470,10 @@ export class ImportNotesProcessorService {
 
 			for await (const file of post.object.attachment) {
 				const slashdex = file.url.lastIndexOf('/');
-				const name = file.url.substring(slashdex + 1);
+				const filename = file.url.substring(slashdex + 1);
+				const hash = crypto.createHash('md5').setEncoding('hex');
+				const urlHash = hash.update(file.url).digest('base64');
+				const name = `${urlHash}-${filename}`;
 				const [filePath, cleanup] = await createTemp();
 
 				const exists = await this.driveFilesRepository.findOneBy({ name: name, userId: user.id }) ?? await this.driveFilesRepository.findOneBy({ name: name, userId: user.id, folderId: pleroFolder?.id });
@@ -484,6 +488,7 @@ export class ImportNotesProcessorService {
 						user: user,
 						path: filePath,
 						name: name,
+						comment: file.name,
 						folderId: pleroFolder?.id,
 					});
 					files.push(driveFile);