Ferrite: Add SwiftFormat

Signed-off-by: kingbri <bdashore3@gmail.com>
This commit is contained in:
kingbri 2022-07-24 14:55:45 -04:00
parent e9670ea118
commit e634906ab4
10 changed files with 123 additions and 39 deletions

1
.swift-version Normal file
View file

@ -0,0 +1 @@
5.7

77
.swiftformat Normal file
View file

@ -0,0 +1,77 @@
# File exclusion
--exclude Ferrite/API/Keychain.swift
# Formatting options
--acronyms ID,URL,UUID
--allman false
--assetliterals visual-width
--beforemarks
--binarygrouping none
--categorymark "MARK: %c"
--classthreshold 0
--closingparen balanced
--closurevoid remove
--commas inline
--conflictmarkers reject
--decimalgrouping none
--elseposition same-line
--emptybraces no-space
--enumthreshold 0
--exponentcase lowercase
--exponentgrouping disabled
--extensionacl on-extension
--extensionlength 0
--extensionmark "MARK: - %t + %c"
--fractiongrouping disabled
--fragment false
--funcattributes preserve
--groupedextension "MARK: %c"
--guardelse auto
--header ignore
--hexgrouping none
--hexliteralcase uppercase
--ifdef no-indent
--importgrouping alpha
--indent 4
--indentcase false
--indentstrings false
--lifecycle
--lineaftermarks true
--linebreaks lf
--markcategories true
--markextensions always
--marktypes always
--maxwidth none
--modifierorder
--nevertrailing
--nospaceoperators
--nowrapoperators
--octalgrouping none
--operatorfunc spaced
--organizetypes actor,class,enum,struct
--patternlet hoist
--ranges spaced
--redundanttype infer-locals-only
--self remove
--selfrequired
--semicolons never
--shortoptionals always
--smarttabs enabled
--stripunusedargs closure-only
--structthreshold 0
--tabwidth unspecified
--trailingclosures
--trimwhitespace always
--typeattributes preserve
--typemark "MARK: - %t"
--varattributes preserve
--voidtype void
--wraparguments preserve
--wrapcollections before-first
--wrapconditions preserve
--wrapparameters after-first
--wrapreturntype preserve
--wrapternary default
--wraptypealiases preserve
--xcodeindentation disabled
--yodaswap always

View file

@ -9,6 +9,7 @@
import Foundation
// MARK: - device code endpoint
public struct DeviceCodeResponse: Codable {
let deviceCode, userCode: String
let interval, expiresIn: Int
@ -25,6 +26,7 @@ public struct DeviceCodeResponse: Codable {
}
// MARK: - device credentials endpoint
public struct DeviceCredentialsResponse: Codable {
let clientID, clientSecret: String?
@ -35,6 +37,7 @@ public struct DeviceCredentialsResponse: Codable {
}
// MARK: - token endpoint
public struct TokenResponse: Codable {
let accessToken: String
let expiresIn: Int
@ -73,6 +76,7 @@ struct InstantAvailabilityInfo: Codable {
}
// MARK: - Instant Availability client side structures
public struct RealDebridIA: Codable, Hashable {
let hash: String
var files: [RealDebridIAFile] = []
@ -101,12 +105,14 @@ public enum RealDebridIAStatus: Codable, Hashable {
}
// MARK: - addMagnet endpoint
public struct AddMagnetResponse: Codable {
let id: String
let uri: String
}
// MARK: - torrentInfo endpoint
struct TorrentInfoResponse: Codable {
let id, filename, originalFilename, hash: String
let bytes, originalBytes: Int
@ -133,6 +139,7 @@ struct TorrentInfoFile: Codable {
}
// MARK: - unrestrictLink endpoint
struct UnrestrictLinkResponse: Codable {
let id, filename, mimeType: String
let filesize: Int

View file

@ -18,7 +18,7 @@ public enum RealDebridError: Error {
}
public class RealDebrid: ObservableObject {
var parentManager: DebridManager? = nil
var parentManager: DebridManager?
let jsonDecoder = JSONDecoder()
let keychain = Keychain()
@ -182,7 +182,7 @@ public class RealDebrid: ObservableObject {
if let token = Keychain.shared.get("RealDebrid.AccessToken") {
var request = URLRequest(url: URL(string: "\(baseApiUrl)/disable_access_token")!)
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
let _ = try? await URLSession.shared.data(for: request)
_ = try? await URLSession.shared.data(for: request)
Keychain.shared.delete("RealDebrid.AccessToken")
}
@ -240,9 +240,9 @@ public class RealDebrid: ObservableObject {
if data.rd.count > 1 || data.rd[0].count > 1 {
// Batch array
let batches = data.rd.map { fileDict in
let batchFiles: [RealDebridIABatchFile] = fileDict.map { (key, value) in
let batchFiles: [RealDebridIABatchFile] = fileDict.map { key, value in
// Force unwrapped ID. Is safe because ID is guaranteed on a successful response
return RealDebridIABatchFile(id: Int(key)!, fileName: value.filename)
RealDebridIABatchFile(id: Int(key)!, fileName: value.filename)
}.sorted(by: { $0.id < $1.id })
return RealDebridIABatch(files: batchFiles)

View file

@ -9,6 +9,6 @@ import Foundation
extension Data {
func hexEncodedString() -> String {
return map { String(format: "%02hhx", $0) }.joined()
map { String(format: "%02hhx", $0) }.joined()
}
}

View file

@ -10,11 +10,11 @@ import SwiftUI
public class DebridManager: ObservableObject {
// UI Variables
var toastModel: ToastViewModel? = nil
var toastModel: ToastViewModel?
@Published var showWebView: Bool = false
// RealDebrid variables
let realDebrid: RealDebrid = RealDebrid()
let realDebrid: RealDebrid = .init()
@AppStorage("RealDebrid.Enabled") var realDebridEnabled = false
@ -112,7 +112,7 @@ public class DebridManager: ObservableObject {
return
}
fileIds = iaBatchFromFile.files.map({ $0.id })
fileIds = iaBatchFromFile.files.map(\.id)
}
try await realDebrid.selectFiles(debridID: realDebridId, fileIds: fileIds)

View file

@ -6,8 +6,8 @@
//
import Base32
import SwiftUI
import SwiftSoup
import SwiftUI
public struct SearchResult: Hashable, Codable {
let title: String
@ -30,7 +30,7 @@ class ScrapingViewModel: ObservableObject {
@AppStorage("RealDebrid.Enabled") var realDebridEnabled = false
// Link the toast view model for single-directional communication
var toastModel: ToastViewModel? = nil
var toastModel: ToastViewModel?
// Decopule this in the future
let sources = [

View file

@ -5,8 +5,8 @@
// Created by Brian Dashore on 7/20/22.
//
import SwiftUI
import ActivityView
import SwiftUI
struct MagnetChoiceView: View {
@Environment(\.dismiss) var dismiss

View file

@ -17,8 +17,7 @@ struct WebView: UIViewRepresentable {
return webView
}
func updateUIView(_ uiView: WKWebView, context: Context) {
}
func updateUIView(_ uiView: WKWebView, context: Context) {}
}
struct WebView_Previews: PreviewProvider {