forked from Ascoware/get-iplayer-automator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgrammeHistoryEntry.swift
61 lines (51 loc) · 1.97 KB
/
ProgrammeHistoryEntry.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//
// ProgrammeHistoryObject.swift
// Get iPlayer Automator
//
// Created by Scott Kovatch on 3/16/18.
//
import Foundation
@objc public class ProgrammeHistoryObject: NSObject, NSSecureCoding {
public static var supportsSecureCoding: Bool = true
@objc public var sortKey: TimeInterval = 0
@objc public var programmeName: String = ""
@objc public var dateFound: String = ""
@objc public var tvChannel: String = ""
@objc public var networkName: String = ""
public func encode(with aCoder: NSCoder) {
aCoder.encode(sortKey, forKey: "sortKey")
aCoder.encode(programmeName, forKey: "programmeName")
aCoder.encode(dateFound, forKey: "dateFound")
aCoder.encode(tvChannel, forKey: "tvChannel")
aCoder.encode(networkName, forKey: "networkName")
}
@objc public convenience init(sortKey: TimeInterval, programmeName: String, dateFound: String, tvChannel: String, networkName: String) {
self.init()
self.sortKey = sortKey
self.programmeName = programmeName
self.dateFound = dateFound
self.tvChannel = tvChannel
self.networkName = networkName
}
@objc public override init() {
super.init()
}
public required init?(coder: NSCoder) {
super.init()
sortKey = TimeInterval(coder.decodeDouble(forKey: "sortKey"))
programmeName = coder.decodeObject(forKey: "programmeName") as? String ?? ""
dateFound = coder.decodeObject(forKey: "dateFound") as? String ?? ""
tvChannel = coder.decodeObject(forKey: "tvChannel") as? String ?? ""
networkName = coder.decodeObject(forKey: "networkName") as? String ?? ""
}
public override func isEqual(_ object: Any?) -> Bool {
if let entry = object as? ProgrammeHistoryObject {
return programmeName == entry.programmeName
} else {
return false
}
}
public override var hash: Int {
return programmeName.hash
}
}