summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-25 06:10:01 -0800
committerFuwn <[email protected]>2025-02-25 06:10:01 -0800
commit6abaee1edc8bf193f2114923d057ffe749794a28 (patch)
tree8703c740c4b2096911a54b5a166fd618ea76487d
parentfeat: Development commit (diff)
downloadsora-testing-6abaee1edc8bf193f2114923d057ffe749794a28.tar.xz
sora-testing-6abaee1edc8bf193f2114923d057ffe749794a28.zip
feat: Development commit
-rw-r--r--Sora/Data/Settings/Settings.swift5
-rw-r--r--Sora/Views/Post/Details/PostDetailsImageView.swift24
-rw-r--r--Sora/Views/Settings/Section/SettingsDetailsView.swift4
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
}
}