From 295cd5a5000fa762af8d180086f20dfa8fd39788 Mon Sep 17 00:00:00 2001 From: Carsten Abele Date: Tue, 7 Apr 2026 19:40:14 +0200 Subject: [PATCH] feat: add TranscriptionLogger for append-only session log --- .../Utilities/TranscriptionLogger.swift | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 MyVoxtral/MyVoxtral/Utilities/TranscriptionLogger.swift diff --git a/MyVoxtral/MyVoxtral/Utilities/TranscriptionLogger.swift b/MyVoxtral/MyVoxtral/Utilities/TranscriptionLogger.swift new file mode 100644 index 0000000..4889c66 --- /dev/null +++ b/MyVoxtral/MyVoxtral/Utilities/TranscriptionLogger.swift @@ -0,0 +1,27 @@ +import Foundation + +struct TranscriptionLogger { + private static var logFileURL: URL { + let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first! + let dir = appSupport.appendingPathComponent("MyVoxtral", isDirectory: true) + try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) + return dir.appendingPathComponent("transcription.log") + } + + static func append(text: String) { + let timestamp = ISO8601DateFormatter().string(from: Date()) + let entry = "[\(timestamp)]\n\(text)\n---\n\n" + + guard let data = entry.data(using: .utf8) else { return } + + if FileManager.default.fileExists(atPath: logFileURL.path) { + if let handle = try? FileHandle(forWritingTo: logFileURL) { + handle.seekToEndOfFile() + handle.write(data) + handle.closeFile() + } + } else { + try? data.write(to: logFileURL) + } + } +}