summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-22 00:28:09 -0800
committerFuwn <[email protected]>2025-02-22 00:28:09 -0800
commit7b470cd80eea4b4ef72a3ca8726b8a72a58b01ee (patch)
treef76b65f0ca2152ce17200506e7971edd2f5a52ac
parentfeat: Development commit (diff)
downloadsora-testing-7b470cd80eea4b4ef72a3ca8726b8a72a58b01ee.tar.xz
sora-testing-7b470cd80eea4b4ef72a3ca8726b8a72a58b01ee.zip
feat: Development commit
-rw-r--r--.swiftlint.yml11
-rw-r--r--Sora/Data/Booru/BooruManager.swift10
-rw-r--r--Sora/Data/Booru/BooruPostXMLParser.swift11
-rw-r--r--Sora/Data/Booru/BooruTagXMLParser.swift11
-rw-r--r--Sora/Data/Settings/Bookmark.swift2
-rw-r--r--Sora/Data/Settings/Settings.swift1
-rw-r--r--Sora/Other/AsyncImageWithPreview.swift9
-rw-r--r--Sora/Other/PostLoadingState.swift (renamed from Sora/Other/PostLoadingStage.swift)0
-rw-r--r--Sora/Views/Bookmarks/BookmarksView.swift7
-rw-r--r--Sora/Views/Post/PostGridBookmarkButtonView.swift22
-rw-r--r--Sora/Views/SearchSuggestionsView.swift4
-rw-r--r--Sora/Views/Settings/SettingsThumbnailsView.swift2
12 files changed, 53 insertions, 37 deletions
diff --git a/.swiftlint.yml b/.swiftlint.yml
index 12c261f..28d9cf0 100644
--- a/.swiftlint.yml
+++ b/.swiftlint.yml
@@ -1,8 +1,8 @@
opt_in_rules:
- all
+
disabled_rules:
- accessibility_label_for_image
- - anonymous_argument_in_multiline_closure
- attributes
- closure_body_length
- closure_end_indentation
@@ -12,16 +12,9 @@ disabled_rules:
- explicit_enum_raw_value
- explicit_top_level_acl
- explicit_type_interface
- - file_name
- force_unwrapping
- function_body_length
- - function_default_parameter_at_end
- - identifier_name
- indentation_width
- - let_var_whitespace
- - multiline_arguments_brackets
- - multiline_function_chains
- - multiline_parameters
- multiple_closures_with_trailing_closure
- no_magic_numbers
- one_declaration_per_file
@@ -30,4 +23,6 @@ disabled_rules:
- sorted_enum_cases
- trailing_comma
- type_contents_order
+ - inert_defer
+ - unused_capture_list
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index 06a714e..c4e9016 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -8,9 +8,6 @@ class BooruManager: ObservableObject {
@Published var currentPage: Int = 1
@Published var searchText = ""
@Published var endOfData: Bool = false
- #if os(macOS)
- @Published var selectedPost: BooruPost?
- #endif
private var currentTask: Task<Void, Never>?
let provider: BooruProvider?
var tags: [String] {
@@ -25,6 +22,10 @@ class BooruManager: ObservableObject {
.filter { !$0.isEmpty }
}
+ #if os(macOS)
+ @Published var selectedPost: BooruPost?
+ #endif
+
init(_ provider: BooruProvider? = nil) {
self.provider = provider
@@ -50,7 +51,8 @@ class BooruManager: ObservableObject {
guard
let url = urlForPosts(
- page: self.provider == .safebooru ? page - 1 : page, limit: limit, tags: tags)
+ page: self.provider == .safebooru ? page - 1 : page, limit: limit, tags: tags
+ )
else {
return
}
diff --git a/Sora/Data/Booru/BooruPostXMLParser.swift b/Sora/Data/Booru/BooruPostXMLParser.swift
index 79827aa..5149e05 100644
--- a/Sora/Data/Booru/BooruPostXMLParser.swift
+++ b/Sora/Data/Booru/BooruPostXMLParser.swift
@@ -20,8 +20,11 @@ class BooruPostXMLParser: NSObject, XMLParserDelegate {
}
func parser(
- _: XMLParser, didStartElement elementName: String, namespaceURI _: String?,
- qualifiedName _: String?, attributes attributeDict: [String: String] = [:]
+ _: XMLParser,
+ didStartElement elementName: String,
+ namespaceURI _: String?,
+ qualifiedName _: String?,
+ attributes attributeDict: [String: String] = [:]
) {
if elementName == "post" {
guard let id = attributeDict["id"],
@@ -87,7 +90,9 @@ class BooruPostXMLParser: NSObject, XMLParserDelegate {
}
func parser(
- _: XMLParser, didEndElement elementName: String, namespaceURI _: String?,
+ _: XMLParser,
+ didEndElement elementName: String,
+ namespaceURI _: String?,
qualifiedName _: String?
) {
if elementName == "post", let post = currentPost {
diff --git a/Sora/Data/Booru/BooruTagXMLParser.swift b/Sora/Data/Booru/BooruTagXMLParser.swift
index bba26c5..ebc5afd 100644
--- a/Sora/Data/Booru/BooruTagXMLParser.swift
+++ b/Sora/Data/Booru/BooruTagXMLParser.swift
@@ -20,8 +20,11 @@ class BooruTagXMLParser: NSObject, XMLParserDelegate {
}
func parser(
- _: XMLParser, didStartElement elementName: String, namespaceURI _: String?,
- qualifiedName _: String?, attributes attributeDict: [String: String] = [:]
+ _: XMLParser,
+ didStartElement elementName: String,
+ namespaceURI _: String?,
+ qualifiedName _: String?,
+ attributes attributeDict: [String: String] = [:]
) {
if elementName == "tag" {
guard let id = attributeDict["id"],
@@ -46,7 +49,9 @@ class BooruTagXMLParser: NSObject, XMLParserDelegate {
}
func parser(
- _: XMLParser, didEndElement elementName: String, namespaceURI _: String?,
+ _: XMLParser,
+ didEndElement elementName: String,
+ namespaceURI _: String?,
qualifiedName _: String?
) {
if elementName == "tag", let tag = currentTag {
diff --git a/Sora/Data/Settings/Bookmark.swift b/Sora/Data/Settings/Bookmark.swift
index 84dd802..32a2b9b 100644
--- a/Sora/Data/Settings/Bookmark.swift
+++ b/Sora/Data/Settings/Bookmark.swift
@@ -6,7 +6,7 @@ struct Bookmark: Codable, Identifiable, Hashable {
let createdAt: Date
let provider: BooruProvider
- init(id: UUID = UUID(), provider: BooruProvider, tags: [String]) {
+ init(provider: BooruProvider, tags: [String], id: UUID = UUID()) {
createdAt = Date()
self.id = id
self.tags = tags
diff --git a/Sora/Data/Settings/Settings.swift b/Sora/Data/Settings/Settings.swift
index efac028..ec0fadf 100644
--- a/Sora/Data/Settings/Settings.swift
+++ b/Sora/Data/Settings/Settings.swift
@@ -6,6 +6,7 @@ class Settings: ObservableObject {
#else
@AppStorage("detailViewType") var detailViewType: BooruPostFileType = .original
#endif
+
@AppStorage("thumbnailType") var thumbnailType: BooruPostFileType = .preview
@AppStorage("searchSuggestions") var searchSuggestions: Bool = false
@AppStorage("columns") var columns: Int = 2
diff --git a/Sora/Other/AsyncImageWithPreview.swift b/Sora/Other/AsyncImageWithPreview.swift
index 48df44e..c1a7188 100644
--- a/Sora/Other/AsyncImageWithPreview.swift
+++ b/Sora/Other/AsyncImageWithPreview.swift
@@ -126,7 +126,8 @@ struct AsyncImageWithPreview<Placeholder: View>: View {
guard let data, let uiImage = UIImage(data: data) else { return }
UIImageWriteToSavedPhotosAlbum(uiImage, nil, nil, nil)
- }.resume()
+ }
+ .resume()
} label: {
Label("Save Image", systemImage: "square.and.arrow.down")
}
@@ -135,10 +136,12 @@ struct AsyncImageWithPreview<Placeholder: View>: View {
#if os(iOS)
Button {
let activityViewController = UIActivityViewController(
- activityItems: [url ?? URL(string: "")!], applicationActivities: nil)
+ activityItems: [url ?? URL(string: "")!], applicationActivities: nil
+ )
UIApplication.shared.windows.first?.rootViewController?.present(
- activityViewController, animated: true)
+ activityViewController, animated: true
+ )
} label: {
Label("Share Image", systemImage: "square.and.arrow.up")
}
diff --git a/Sora/Other/PostLoadingStage.swift b/Sora/Other/PostLoadingState.swift
index 800b4dc..800b4dc 100644
--- a/Sora/Other/PostLoadingStage.swift
+++ b/Sora/Other/PostLoadingState.swift
diff --git a/Sora/Views/Bookmarks/BookmarksView.swift b/Sora/Views/Bookmarks/BookmarksView.swift
index b36ee45..b52e7b7 100644
--- a/Sora/Views/Bookmarks/BookmarksView.swift
+++ b/Sora/Views/Bookmarks/BookmarksView.swift
@@ -12,8 +12,8 @@ struct BookmarksView: View {
}
return settings.bookmarks
- .filter {
- $0.tags.joined(separator: " ").lowercased().contains(bookmarksSearchText.lowercased())
+ .filter { bookmark in
+ bookmark.tags.joined(separator: " ").lowercased().contains(bookmarksSearchText.lowercased())
}
}
@@ -24,7 +24,8 @@ struct BookmarksView: View {
ContentUnavailableView(
"No Bookmarks",
systemImage: "bookmark",
- description: Text("Add a bookmark by tapping the bookmark button on a search page."))
+ description: Text("Add a bookmark by tapping the bookmark button on a search page.")
+ )
} else {
List {
if filteredBookmarks.isEmpty, !bookmarksSearchText.isEmpty {
diff --git a/Sora/Views/Post/PostGridBookmarkButtonView.swift b/Sora/Views/Post/PostGridBookmarkButtonView.swift
index a25b24f..9f85a20 100644
--- a/Sora/Views/Post/PostGridBookmarkButtonView.swift
+++ b/Sora/Views/Post/PostGridBookmarkButtonView.swift
@@ -5,10 +5,12 @@ struct PostGridBookmarkButtonView: View {
@EnvironmentObject private var settings: Settings
var contained: Bool {
- settings.bookmarks
- .contains {
- $0.tags == manager.tags.map { $0.lowercased() }
- && $0.provider == manager.provider ?? settings.preferredBooru
+ let lowercaseTags = manager.tags.map { $0.lowercased() }
+
+ return settings.bookmarks
+ .contains { bookmark in
+ bookmark.tags == lowercaseTags
+ && bookmark.provider == manager.provider ?? settings.preferredBooru
}
}
@@ -23,11 +25,13 @@ struct PostGridBookmarkButtonView: View {
provider: manager.provider ?? settings.preferredBooru,
tags: manager.tags
)
- }) {
- Label(
- "Bookmark",
- systemImage:
- contained ? "bookmark.fill" : "bookmark")
}
+ ) {
+ Label(
+ "Bookmark",
+ systemImage:
+ contained ? "bookmark.fill" : "bookmark"
+ )
+ }
}
}
diff --git a/Sora/Views/SearchSuggestionsView.swift b/Sora/Views/SearchSuggestionsView.swift
index 91f1f77..34ccfbc 100644
--- a/Sora/Views/SearchSuggestionsView.swift
+++ b/Sora/Views/SearchSuggestionsView.swift
@@ -9,8 +9,8 @@ struct SearchSuggestionsView: View {
var body: some View {
ForEach(
- tags.filter {
- $0.name.lowercased().contains(lastSearchTag)
+ tags.filter { tag in
+ tag.name.lowercased().contains(lastSearchTag)
}
) { suggestion in
Button {
diff --git a/Sora/Views/Settings/SettingsThumbnailsView.swift b/Sora/Views/Settings/SettingsThumbnailsView.swift
index 6631987..f787e59 100644
--- a/Sora/Views/Settings/SettingsThumbnailsView.swift
+++ b/Sora/Views/Settings/SettingsThumbnailsView.swift
@@ -12,7 +12,7 @@ struct SettingsThumbnailsView: View {
#if os(macOS)
Picker("Thumbnail Columns", selection: $settings.columns) {
- ForEach(1...10, id: \.self) { i in Text("\(i)") }
+ ForEach(1...10, id: \.self) { columns in Text("\(columns)") }
}
#else
Stepper(