mirror of
https://github.com/Ferrite-iOS/Ferrite.git
synced 2026-04-21 00:42:07 +00:00
Ferrite: Format
Signed-off-by: kingbri <bdashore3@gmail.com>
This commit is contained in:
parent
ff23a854ef
commit
bb481f471e
12 changed files with 77 additions and 102 deletions
|
|
@ -6,29 +6,24 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import CoreData
|
import CoreData
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public extension Source {
|
||||||
extension Source {
|
@nonobjc class func fetchRequest() -> NSFetchRequest<Source> {
|
||||||
|
NSFetchRequest<Source>(entityName: "Source")
|
||||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<Source> {
|
|
||||||
return NSFetchRequest<Source>(entityName: "Source")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NSManaged public var id: UUID
|
@NSManaged var id: UUID
|
||||||
@NSManaged public var baseUrl: String
|
@NSManaged var baseUrl: String
|
||||||
@NSManaged public var enabled: Bool
|
@NSManaged var enabled: Bool
|
||||||
@NSManaged public var name: String
|
@NSManaged var name: String
|
||||||
@NSManaged public var author: String
|
@NSManaged var author: String
|
||||||
@NSManaged public var listId: UUID?
|
@NSManaged var listId: UUID?
|
||||||
@NSManaged public var preferredParser: Int16
|
@NSManaged var preferredParser: Int16
|
||||||
@NSManaged public var version: Int16
|
@NSManaged var version: Int16
|
||||||
@NSManaged public var htmlParser: SourceHtmlParser?
|
@NSManaged var htmlParser: SourceHtmlParser?
|
||||||
@NSManaged public var rssParser: SourceRssParser?
|
@NSManaged var rssParser: SourceRssParser?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Source : Identifiable {
|
extension Source: Identifiable {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -6,45 +6,39 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import CoreData
|
import CoreData
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public extension SourceHtmlParser {
|
||||||
extension SourceHtmlParser {
|
@nonobjc class func fetchRequest() -> NSFetchRequest<SourceHtmlParser> {
|
||||||
|
NSFetchRequest<SourceHtmlParser>(entityName: "SourceHtmlParser")
|
||||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<SourceHtmlParser> {
|
|
||||||
return NSFetchRequest<SourceHtmlParser>(entityName: "SourceHtmlParser")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NSManaged public var rows: String
|
@NSManaged var rows: String
|
||||||
@NSManaged public var searchUrl: String
|
@NSManaged var searchUrl: String
|
||||||
@NSManaged public var magnetLink: SourceMagnetLink?
|
@NSManaged var magnetLink: SourceMagnetLink?
|
||||||
@NSManaged public var parentSource: Source?
|
@NSManaged var parentSource: Source?
|
||||||
@NSManaged public var seedLeech: SourceSeedLeech?
|
@NSManaged var seedLeech: SourceSeedLeech?
|
||||||
@NSManaged public var size: SourceSize?
|
@NSManaged var size: SourceSize?
|
||||||
@NSManaged public var title: SourceTitle?
|
@NSManaged var title: SourceTitle?
|
||||||
@NSManaged public var magnetHash: SourceMagnetHash?
|
@NSManaged var magnetHash: SourceMagnetHash?
|
||||||
@NSManaged public var trackers: NSSet?
|
@NSManaged var trackers: NSSet?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Generated accessors for trackers
|
// MARK: Generated accessors for trackers
|
||||||
extension SourceHtmlParser {
|
|
||||||
|
|
||||||
|
public extension SourceHtmlParser {
|
||||||
@objc(addTrackersObject:)
|
@objc(addTrackersObject:)
|
||||||
@NSManaged public func addToTrackers(_ value: SourceTracker)
|
@NSManaged func addToTrackers(_ value: SourceTracker)
|
||||||
|
|
||||||
@objc(removeTrackersObject:)
|
@objc(removeTrackersObject:)
|
||||||
@NSManaged public func removeFromTrackers(_ value: SourceTracker)
|
@NSManaged func removeFromTrackers(_ value: SourceTracker)
|
||||||
|
|
||||||
@objc(addTrackers:)
|
@objc(addTrackers:)
|
||||||
@NSManaged public func addToTrackers(_ values: NSSet)
|
@NSManaged func addToTrackers(_ values: NSSet)
|
||||||
|
|
||||||
@objc(removeTrackers:)
|
@objc(removeTrackers:)
|
||||||
@NSManaged public func removeFromTrackers(_ values: NSSet)
|
@NSManaged func removeFromTrackers(_ values: NSSet)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SourceHtmlParser : Identifiable {
|
extension SourceHtmlParser: Identifiable {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,8 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import CoreData
|
import CoreData
|
||||||
|
import Foundation
|
||||||
|
|
||||||
@objc(SourceRssParser)
|
@objc(SourceRssParser)
|
||||||
public class SourceRssParser: NSManagedObject {
|
public class SourceRssParser: NSManagedObject {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -6,28 +6,26 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import CoreData
|
import CoreData
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public extension SourceRssParser {
|
||||||
extension SourceRssParser {
|
@nonobjc class func fetchRequest() -> NSFetchRequest<SourceRssParser> {
|
||||||
|
NSFetchRequest<SourceRssParser>(entityName: "SourceRssParser")
|
||||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<SourceRssParser> {
|
|
||||||
return NSFetchRequest<SourceRssParser>(entityName: "SourceRssParser")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NSManaged public var items: String
|
@NSManaged var items: String
|
||||||
@NSManaged public var searchUrl: String
|
@NSManaged var searchUrl: String
|
||||||
@NSManaged public var rssUrl: String?
|
@NSManaged var rssUrl: String?
|
||||||
@NSManaged public var parentSource: Source?
|
@NSManaged var parentSource: Source?
|
||||||
@NSManaged public var trackers: NSSet?
|
@NSManaged var trackers: NSSet?
|
||||||
@NSManaged public var magnetLink: SourceMagnetLink?
|
@NSManaged var magnetLink: SourceMagnetLink?
|
||||||
@NSManaged public var size: SourceSize?
|
@NSManaged var size: SourceSize?
|
||||||
@NSManaged public var title: SourceTitle?
|
@NSManaged var title: SourceTitle?
|
||||||
@NSManaged public var seedLeech: SourceSeedLeech?
|
@NSManaged var seedLeech: SourceSeedLeech?
|
||||||
@NSManaged public var magnetHash: SourceMagnetHash?
|
@NSManaged var magnetHash: SourceMagnetHash?
|
||||||
|
|
||||||
var trackerArray: [SourceTracker] {
|
internal var trackerArray: [SourceTracker] {
|
||||||
let trackerSet = trackers as? Set<SourceTracker> ?? []
|
let trackerSet = trackers as? Set<SourceTracker> ?? []
|
||||||
|
|
||||||
return trackerSet.map { $0 }
|
return trackerSet.map { $0 }
|
||||||
|
|
@ -35,22 +33,19 @@ extension SourceRssParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Generated accessors for trackers
|
// MARK: Generated accessors for trackers
|
||||||
extension SourceRssParser {
|
|
||||||
|
|
||||||
|
public extension SourceRssParser {
|
||||||
@objc(addTrackersObject:)
|
@objc(addTrackersObject:)
|
||||||
@NSManaged public func addToTrackers(_ value: SourceTracker)
|
@NSManaged func addToTrackers(_ value: SourceTracker)
|
||||||
|
|
||||||
@objc(removeTrackersObject:)
|
@objc(removeTrackersObject:)
|
||||||
@NSManaged public func removeFromTrackers(_ value: SourceTracker)
|
@NSManaged func removeFromTrackers(_ value: SourceTracker)
|
||||||
|
|
||||||
@objc(addTrackers:)
|
@objc(addTrackers:)
|
||||||
@NSManaged public func addToTrackers(_ values: NSSet)
|
@NSManaged func addToTrackers(_ values: NSSet)
|
||||||
|
|
||||||
@objc(removeTrackers:)
|
@objc(removeTrackers:)
|
||||||
@NSManaged public func removeFromTrackers(_ values: NSSet)
|
@NSManaged func removeFromTrackers(_ values: NSSet)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SourceRssParser : Identifiable {
|
extension SourceRssParser: Identifiable {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,8 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import CoreData
|
import CoreData
|
||||||
|
import Foundation
|
||||||
|
|
||||||
@objc(SourceTracker)
|
@objc(SourceTracker)
|
||||||
public class SourceTracker: NSManagedObject {
|
public class SourceTracker: NSManagedObject {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -6,22 +6,17 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import CoreData
|
import CoreData
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public extension SourceTracker {
|
||||||
extension SourceTracker {
|
@nonobjc class func fetchRequest() -> NSFetchRequest<SourceTracker> {
|
||||||
|
NSFetchRequest<SourceTracker>(entityName: "SourceTracker")
|
||||||
@nonobjc public class func fetchRequest() -> NSFetchRequest<SourceTracker> {
|
|
||||||
return NSFetchRequest<SourceTracker>(entityName: "SourceTracker")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NSManaged public var urlString: String
|
@NSManaged var urlString: String
|
||||||
@NSManaged public var parentRssParser: SourceRssParser?
|
@NSManaged var parentRssParser: SourceRssParser?
|
||||||
@NSManaged public var parentHtmlParser: SourceHtmlParser?
|
@NSManaged var parentHtmlParser: SourceHtmlParser?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SourceTracker : Identifiable {
|
extension SourceTracker: Identifiable {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -496,7 +496,7 @@ class ScrapingViewModel: ObservableObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
public func generateMagnetLink(magnetHash: String, title: String?, trackers: [SourceTracker]) -> String {
|
public func generateMagnetLink(magnetHash: String, title: String?, trackers: [SourceTracker]) -> String {
|
||||||
var magnetLinkArray: [String] = ["magnet:?xt=urn:btih:"]
|
var magnetLinkArray = ["magnet:?xt=urn:btih:"]
|
||||||
|
|
||||||
magnetLinkArray.append(magnetHash)
|
magnetLinkArray.append(magnetHash)
|
||||||
|
|
||||||
|
|
@ -506,7 +506,7 @@ class ScrapingViewModel: ObservableObject {
|
||||||
|
|
||||||
for tracker in trackers {
|
for tracker in trackers {
|
||||||
if URL(string: tracker.urlString) != nil,
|
if URL(string: tracker.urlString) != nil,
|
||||||
let encodedUrlString = tracker.urlString.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)
|
let encodedUrlString = tracker.urlString.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)
|
||||||
{
|
{
|
||||||
magnetLinkArray.append("&tr=\(encodedUrlString)")
|
magnetLinkArray.append("&tr=\(encodedUrlString)")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -242,7 +242,7 @@ public class SourceManager: ObservableObject {
|
||||||
let sourceListRequest = SourceList.fetchRequest()
|
let sourceListRequest = SourceList.fetchRequest()
|
||||||
let urlPredicate = NSPredicate(format: "urlString == %@", sourceUrl)
|
let urlPredicate = NSPredicate(format: "urlString == %@", sourceUrl)
|
||||||
let infoPredicate = NSPredicate(format: "author == %@ AND name == %@", rawResponse.author, rawResponse.name)
|
let infoPredicate = NSPredicate(format: "author == %@ AND name == %@", rawResponse.author, rawResponse.name)
|
||||||
sourceListRequest.predicate = NSCompoundPredicate.init(type: .or, subpredicates: [urlPredicate, infoPredicate])
|
sourceListRequest.predicate = NSCompoundPredicate(type: .or, subpredicates: [urlPredicate, infoPredicate])
|
||||||
sourceListRequest.fetchLimit = 1
|
sourceListRequest.fetchLimit = 1
|
||||||
|
|
||||||
if (try? backgroundContext.fetch(sourceListRequest).first) != nil {
|
if (try? backgroundContext.fetch(sourceListRequest).first) != nil {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ struct SourceCatalogButtonView: View {
|
||||||
Text("v\(availableSource.version)")
|
Text("v\(availableSource.version)")
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
}
|
}
|
||||||
|
|
||||||
Text("by \(availableSource.author ?? "Unknown")")
|
Text("by \(availableSource.author ?? "Unknown")")
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ struct SourceSettingsMethodView: View {
|
||||||
.onAppear {
|
.onAppear {
|
||||||
selectedTempParser = SourcePreferredParser(rawValue: selectedSource.preferredParser) ?? .none
|
selectedTempParser = SourcePreferredParser(rawValue: selectedSource.preferredParser) ?? .none
|
||||||
}
|
}
|
||||||
.onChange(of: selectedTempParser) { newMethod in
|
.onChange(of: selectedTempParser) { _ in
|
||||||
selectedSource.preferredParser = selectedTempParser.rawValue
|
selectedSource.preferredParser = selectedTempParser.rawValue
|
||||||
PersistenceController.shared.save()
|
PersistenceController.shared.save()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ struct SourceUpdateButtonView: View {
|
||||||
Text("v\(updatedSource.version)")
|
Text("v\(updatedSource.version)")
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
}
|
}
|
||||||
|
|
||||||
Text("by \(updatedSource.author ?? "Unknown")")
|
Text("by \(updatedSource.author ?? "Unknown")")
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,8 @@ struct SourcesView: View {
|
||||||
!sources.contains(
|
!sources.contains(
|
||||||
where: {
|
where: {
|
||||||
availableSource.name == $0.name &&
|
availableSource.name == $0.name &&
|
||||||
availableSource.listId == $0.listId &&
|
availableSource.listId == $0.listId &&
|
||||||
availableSource.author == $0.author
|
availableSource.author == $0.author
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}) {
|
}) {
|
||||||
|
|
@ -72,8 +72,8 @@ struct SourcesView: View {
|
||||||
if !sources.contains(
|
if !sources.contains(
|
||||||
where: {
|
where: {
|
||||||
availableSource.name == $0.name &&
|
availableSource.name == $0.name &&
|
||||||
availableSource.listId == $0.listId &&
|
availableSource.listId == $0.listId &&
|
||||||
availableSource.author == $0.author
|
availableSource.author == $0.author
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
SourceCatalogButtonView(availableSource: availableSource)
|
SourceCatalogButtonView(availableSource: availableSource)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue