Make ParsedAttachment require a URL.

This commit is contained in:
Brent Simmons 2017-09-10 11:21:49 -07:00
parent 9ad83e58b3
commit 2943fca8e3
2 changed files with 7 additions and 17 deletions

View File

@ -172,7 +172,9 @@ private extension RSSInJSONParser {
}
let type = enclosureObject["type"] as? String
let oneAttachment = ParsedAttachment(url: attachmentURL, mimeType: type, title: nil, sizeInBytes: attachmentSize, durationInSeconds: nil)
return Set([oneAttachment])
if let attachment = ParsedAttachment(url: attachmentURL, mimeType: type, title: nil, sizeInBytes: attachmentSize, durationInSeconds: nil) {
return Set([attachment])
}
return nil
}
}

View File

@ -10,33 +10,21 @@ import Foundation
public struct ParsedAttachment: Hashable {
public let url: String?
public let url: String
public let mimeType: String?
public let title: String?
public let sizeInBytes: Int?
public let durationInSeconds: Int?
public let hashValue: Int
init(url: String?, mimeType: String?, title: String?, sizeInBytes: Int?, durationInSeconds: Int?) {
init?(url: String, mimeType: String?, title: String?, sizeInBytes: Int?, durationInSeconds: Int?) {
self.url = url
self.mimeType = mimeType
self.title = title
self.sizeInBytes = sizeInBytes
self.durationInSeconds = durationInSeconds
var stringToHash = ""
stringToHash += url ?? ""
stringToHash += mimeType ?? ""
stringToHash += title ?? ""
var h = stringToHash.hashValue
if let sizeInBytes = sizeInBytes {
h = h ^ sizeInBytes.hashValue
}
if let durationInSeconds = durationInSeconds {
h = h ^ durationInSeconds.hashValue
}
self.hashValue = h
self.hashValue = url.hashValue
}
public static func ==(lhs: ParsedAttachment, rhs: ParsedAttachment) -> Bool {