diff options
| author | Fuwn <[email protected]> | 2025-02-25 06:10:01 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-25 06:10:01 -0800 |
| commit | 6abaee1edc8bf193f2114923d057ffe749794a28 (patch) | |
| tree | 8703c740c4b2096911a54b5a166fd618ea76487d | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-6abaee1edc8bf193f2114923d057ffe749794a28.tar.xz sora-testing-6abaee1edc8bf193f2114923d057ffe749794a28.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Data/Settings/Settings.swift | 5 | ||||
| -rw-r--r-- | Sora/Views/Post/Details/PostDetailsImageView.swift | 24 | ||||
| -rw-r--r-- | Sora/Views/Settings/Section/SettingsDetailsView.swift | 4 |
3 files changed, 24 insertions, 9 deletions
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<Placeholder: View>: 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<Placeholder: View>: 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<Placeholder: View>: 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 } } |