Compare commits

..

No commits in common. "7f1247951420eae2db5b1ae3f778c4e2f5100c8a" and "3c9692d5b285ca3e94fbd66a93225a97ab70981a" have entirely different histories.

4 changed files with 17 additions and 30 deletions

View File

@ -77,8 +77,7 @@ class PostService: ObservableObject {
pollOptions: draft.poll?.pollOptions.map(\.text), pollOptions: draft.poll?.pollOptions.map(\.text),
pollExpiresIn: draft.poll == nil ? nil : Int(draft.poll!.duration), pollExpiresIn: draft.poll == nil ? nil : Int(draft.poll!.duration),
pollMultiple: draft.poll?.multiple, pollMultiple: draft.poll?.multiple,
localOnly: mastodonController.instanceFeatures.localOnlyPosts ? draft.localOnly : nil, localOnly: mastodonController.instanceFeatures.localOnlyPosts ? draft.localOnly : nil
idempotencyKey: draft.id.uuidString
) )
} }

View File

@ -113,9 +113,6 @@ public class Client {
var urlRequest = URLRequest(url: url, timeoutInterval: timeoutInterval) var urlRequest = URLRequest(url: url, timeoutInterval: timeoutInterval)
urlRequest.httpMethod = request.method.name urlRequest.httpMethod = request.method.name
urlRequest.httpBody = request.body.data urlRequest.httpBody = request.body.data
for (name, value) in request.headers {
urlRequest.setValue(value, forHTTPHeaderField: name)
}
if let mimeType = request.body.mimeType { if let mimeType = request.body.mimeType {
urlRequest.setValue(mimeType, forHTTPHeaderField: "Content-Type") urlRequest.setValue(mimeType, forHTTPHeaderField: "Content-Type")
} }
@ -400,9 +397,8 @@ public class Client {
pollOptions: [String]? = nil, pollOptions: [String]? = nil,
pollExpiresIn: Int? = nil, pollExpiresIn: Int? = nil,
pollMultiple: Bool? = nil, pollMultiple: Bool? = nil,
localOnly: Bool? = nil, /* hometown only, not glitch */ localOnly: Bool? = nil /* hometown only, not glitch */) -> Request<Status> {
idempotencyKey: String) -> Request<Status> { return Request<Status>(method: .post, path: "/api/v1/statuses", body: ParametersBody([
var req = Request<Status>(method: .post, path: "/api/v1/statuses", body: ParametersBody([
"status" => text, "status" => text,
"content_type" => contentType.mimeType, "content_type" => contentType.mimeType,
"in_reply_to_id" => inReplyTo, "in_reply_to_id" => inReplyTo,
@ -414,8 +410,6 @@ public class Client {
"poll[multiple]" => pollMultiple, "poll[multiple]" => pollMultiple,
"local_only" => localOnly, "local_only" => localOnly,
] + "media_ids" => mediaIDs + "poll[options]" => pollOptions)) ] + "media_ids" => mediaIDs + "poll[options]" => pollOptions))
req.headers["Idempotency-Key"] = idempotencyKey
return req
} }
public static func editStatus( public static func editStatus(

View File

@ -13,7 +13,6 @@ public struct Request<ResultType: Decodable>: Sendable {
let endpoint: Endpoint let endpoint: Endpoint
let body: Body let body: Body
var queryParameters: [Parameter] var queryParameters: [Parameter]
var headers: [String: String] = [:]
var additionalAcceptableHTTPCodes: [Int] = [] var additionalAcceptableHTTPCodes: [Int] = []
init(method: Method, path: Endpoint, body: Body = EmptyBody(), queryParameters: [Parameter] = []) { init(method: Method, path: Endpoint, body: Body = EmptyBody(), queryParameters: [Parameter] = []) {

View File

@ -79,14 +79,7 @@ class ShareViewController: UIViewController {
var attachments: [DraftAttachment] = [] var attachments: [DraftAttachment] = []
for itemProvider in inputItem.attachments ?? [] { for itemProvider in inputItem.attachments ?? [] {
// attachments have the highest priority, but only given this heuristic if let attached: NSURL = await getObject(from: itemProvider) {
// otherwise attachment decoding ends up being overzealous
let likelyAttachment = [UTType.image, .movie].contains(where: { itemProvider.hasItemConformingToTypeIdentifier($0.identifier) })
if likelyAttachment,
let attachment: DraftAttachment = await getObject(from: itemProvider) {
attachments.append(attachment)
} else if let attached: NSURL = await getObject(from: itemProvider) {
if url == nil { if url == nil {
url = attached as URL url = attached as URL
} }
@ -94,6 +87,8 @@ class ShareViewController: UIViewController {
if text.isEmpty { if text.isEmpty {
text = s as String text = s as String
} }
} else if let attachment: DraftAttachment = await getObject(from: itemProvider) {
attachments.append(attachment)
} }
} }