diff options
| author | Fuwn <[email protected]> | 2025-02-22 00:28:09 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-22 00:28:09 -0800 |
| commit | 7b470cd80eea4b4ef72a3ca8726b8a72a58b01ee (patch) | |
| tree | f76b65f0ca2152ce17200506e7971edd2f5a52ac | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-7b470cd80eea4b4ef72a3ca8726b8a72a58b01ee.tar.xz sora-testing-7b470cd80eea4b4ef72a3ca8726b8a72a58b01ee.zip | |
feat: Development commit
| -rw-r--r-- | .swiftlint.yml | 11 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 10 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruPostXMLParser.swift | 11 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruTagXMLParser.swift | 11 | ||||
| -rw-r--r-- | Sora/Data/Settings/Bookmark.swift | 2 | ||||
| -rw-r--r-- | Sora/Data/Settings/Settings.swift | 1 | ||||
| -rw-r--r-- | Sora/Other/AsyncImageWithPreview.swift | 9 | ||||
| -rw-r--r-- | Sora/Other/PostLoadingState.swift (renamed from Sora/Other/PostLoadingStage.swift) | 0 | ||||
| -rw-r--r-- | Sora/Views/Bookmarks/BookmarksView.swift | 7 | ||||
| -rw-r--r-- | Sora/Views/Post/PostGridBookmarkButtonView.swift | 22 | ||||
| -rw-r--r-- | Sora/Views/SearchSuggestionsView.swift | 4 | ||||
| -rw-r--r-- | Sora/Views/Settings/SettingsThumbnailsView.swift | 2 |
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( |