summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-22 00:14:29 -0800
committerFuwn <[email protected]>2025-02-22 00:14:29 -0800
commitab410956419067fd1e751f82a8f4e25bd1d6d091 (patch)
treea77bb1b10b6eaabd8b61c8144df7b68d2094dc08
parentfeat: Development commit (diff)
downloadsora-testing-ab410956419067fd1e751f82a8f4e25bd1d6d091.tar.xz
sora-testing-ab410956419067fd1e751f82a8f4e25bd1d6d091.zip
feat: Development commit
-rw-r--r--.swiftlint.yml30
-rw-r--r--Sora/Data/Booru/BooruManager.swift4
-rw-r--r--Sora/Data/Booru/BooruProvider.swift1
-rw-r--r--Sora/Views/Post/PostDetailsView.swift6
-rw-r--r--Sora/Views/Post/PostGridBookmarkButtonView.swift4
-rw-r--r--Sora/Views/Post/PostGridView.swift2
-rw-r--r--Sora/Views/Post/PostView.swift2
7 files changed, 45 insertions, 4 deletions
diff --git a/.swiftlint.yml b/.swiftlint.yml
index 30894ea..12c261f 100644
--- a/.swiftlint.yml
+++ b/.swiftlint.yml
@@ -1,3 +1,33 @@
opt_in_rules:
- all
+disabled_rules:
+ - accessibility_label_for_image
+ - anonymous_argument_in_multiline_closure
+ - attributes
+ - closure_body_length
+ - closure_end_indentation
+ - conditional_returns_on_newline
+ - contrasted_opening_brace
+ - explicit_acl
+ - 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
+ - opening_brace
+ - required_deinit
+ - sorted_enum_cases
+ - trailing_comma
+ - type_contents_order
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index f86e3a9..06a714e 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -129,11 +129,13 @@ class BooruManager: ObservableObject {
switch provider {
case .yandere:
return URL(string: "https://yande.re/post.xml?page=\(page)&limit=\(limit)&tags=\(tagString)")
+
case .safebooru:
return URL(
string:
"https://safebooru.org/index.php?page=dapi&s=post&q=index&pid=\(page)&limit=\(limit)&tags=\(tagString)"
)
+
default:
return nil
}
@@ -143,8 +145,10 @@ class BooruManager: ObservableObject {
switch provider {
case .yandere:
URL(string: "https://yande.re/tag.xml?limit=\(limit)")
+
case .safebooru:
URL(string: "https://safebooru.org/index.php?page=dapi&s=tag&q=index&limit=\(limit)")
+
default:
nil
}
diff --git a/Sora/Data/Booru/BooruProvider.swift b/Sora/Data/Booru/BooruProvider.swift
index 994e4e3..4de543b 100644
--- a/Sora/Data/Booru/BooruProvider.swift
+++ b/Sora/Data/Booru/BooruProvider.swift
@@ -6,6 +6,7 @@ enum BooruProvider: String, CaseIterable, Decodable, Encodable {
switch self {
case .yandere:
"yande.re"
+
case .safebooru:
"Safebooru"
}
diff --git a/Sora/Views/Post/PostDetailsView.swift b/Sora/Views/Post/PostDetailsView.swift
index 133fa34..f61b82a 100644
--- a/Sora/Views/Post/PostDetailsView.swift
+++ b/Sora/Views/Post/PostDetailsView.swift
@@ -3,13 +3,15 @@ import SwiftUI
struct PostDetailsView: View {
@EnvironmentObject var settings: Settings
let post: BooruPost
- @State var loadingStage: PostLoadingState = .loadingPreview
+ @State private var loadingStage: PostLoadingState = .loadingPreview
private var imageURL: URL? {
switch settings.detailViewType {
case .preview:
post.previewURL
+
case .sample:
post.sampleURL
+
case .original:
post.fileURL
}
@@ -51,8 +53,10 @@ struct PostDetailsView: View {
switch loadingStage {
case .loadingPreview:
Text("Loading preview …")
+
case .loadingFile:
Text("Loading \(settings.detailViewType.rawValue) …")
+
case .loaded:
EmptyView()
}
diff --git a/Sora/Views/Post/PostGridBookmarkButtonView.swift b/Sora/Views/Post/PostGridBookmarkButtonView.swift
index f23482f..a25b24f 100644
--- a/Sora/Views/Post/PostGridBookmarkButtonView.swift
+++ b/Sora/Views/Post/PostGridBookmarkButtonView.swift
@@ -6,10 +6,10 @@ struct PostGridBookmarkButtonView: View {
var contained: Bool {
settings.bookmarks
- .contains(where: {
+ .contains {
$0.tags == manager.tags.map { $0.lowercased() }
&& $0.provider == manager.provider ?? settings.preferredBooru
- })
+ }
}
var body: some View {
diff --git a/Sora/Views/Post/PostGridView.swift b/Sora/Views/Post/PostGridView.swift
index 842d0a6..ab2340f 100644
--- a/Sora/Views/Post/PostGridView.swift
+++ b/Sora/Views/Post/PostGridView.swift
@@ -9,7 +9,7 @@ struct PostGridView: View {
var filteredPosts: [BooruPost] {
(settings.showNSFWPosts
? manager.posts : manager.posts.filter { $0.rating == "s" || $0.rating == "q" })
- .sorted(by: { $0.id > $1.id })
+ .sorted { $0.id > $1.id }
}
var body: some View {
diff --git a/Sora/Views/Post/PostView.swift b/Sora/Views/Post/PostView.swift
index 9b92f4f..6b54a85 100644
--- a/Sora/Views/Post/PostView.swift
+++ b/Sora/Views/Post/PostView.swift
@@ -9,8 +9,10 @@ struct PostView: View {
switch settings.thumbnailType {
case .preview:
post.previewURL
+
case .sample:
post.sampleURL
+
case .original:
post.fileURL
}