From 6abaee1edc8bf193f2114923d057ffe749794a28 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 25 Feb 2025 06:10:01 -0800 Subject: feat: Development commit --- Sora/Data/Settings/Settings.swift | 5 +++++ Sora/Views/Post/Details/PostDetailsImageView.swift | 24 ++++++++++++++-------- .../Settings/Section/SettingsDetailsView.swift | 4 ++++ 3 files changed, 24 insertions(+), 9 deletions(-) (limited to 'Sora') diff --git a/Sora/Data/Settings/Settings.swift b/Sora/Data/Settings/Settings.swift index a05030e..1cd19de 100644 --- a/Sora/Data/Settings/Settings.swift +++ b/Sora/Data/Settings/Settings.swift @@ -37,6 +37,11 @@ class Settings: ObservableObject { @AppStorage("displayTags") var displayTags = true + #if os(macOS) + @AppStorage("saveTagsToFile") + var saveTagsToFile = true + #endif + var bookmarks: [Bookmark] { get { if let bookmarks = try? JSONDecoder().decode([Bookmark].self, from: bookmarksData) { diff --git a/Sora/Views/Post/Details/PostDetailsImageView.swift b/Sora/Views/Post/Details/PostDetailsImageView.swift index 1ff080e..bc40fae 100644 --- a/Sora/Views/Post/Details/PostDetailsImageView.swift +++ b/Sora/Views/Post/Details/PostDetailsImageView.swift @@ -3,6 +3,7 @@ import SwiftUI struct PostDetailsImageView: View { @EnvironmentObject var settings: Settings + @EnvironmentObject var manager: BooruManager var url: URL? @Binding var loadingState: BooruPostLoadingState var finalLoadingState: BooruPostLoadingState @@ -142,7 +143,7 @@ struct PostDetailsImageView: View { guard let data, let post else { return } let picturesURL = FileManager.default.homeDirectoryForCurrentUser - .appendingPathComponent("Pictures/Sora") + .appendingPathComponent("Pictures/Sora/\(manager.provider.rawValue)") do { try FileManager.default.createDirectory( @@ -152,15 +153,20 @@ struct PostDetailsImageView: View { try data.write( to: picturesURL - .appendingPathComponent("\(post.id).\(url.pathExtension)") - ) - try post.tags.joined(separator: "\n").write( - to: picturesURL.appendingPathComponent( - "\(post.id).txt" - ), - atomically: true, - encoding: .utf8 + .appendingPathComponent( + "\(post.id)_\(settings.detailViewType.rawValue.lowercased()).\(url.pathExtension)" + ) ) + + if settings.saveTagsToFile { + try post.tags.joined(separator: "\n").write( + to: picturesURL.appendingPathComponent( + "\(post.id).txt" + ), + atomically: true, + encoding: .utf8 + ) + } } catch { print("PostDetailsImageView.saveImageToPicturesFolder: \(error)") } diff --git a/Sora/Views/Settings/Section/SettingsDetailsView.swift b/Sora/Views/Settings/Section/SettingsDetailsView.swift index 284fbd2..46072e6 100644 --- a/Sora/Views/Settings/Section/SettingsDetailsView.swift +++ b/Sora/Views/Settings/Section/SettingsDetailsView.swift @@ -13,5 +13,9 @@ struct SettingsDetailsView: View { Toggle("Enable \"Share Image\" Shortcut", isOn: $settings.enableShareShortcut) Toggle("Display Tags", isOn: $settings.displayTags) + + #if os(macOS) + Toggle("Save Tags to File During Download", isOn: $settings.saveTagsToFile) + #endif } } -- cgit v1.2.3