Skip to content

Commit

Permalink
use URLs instead of Strings
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuatbrown committed Sep 19, 2024
1 parent ebe415d commit 8411704
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions Nos/Models/OpenGraph/OpenGraphMetatdata.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ struct OpenGraphMetadata: Equatable {
/// Open Graph metadata for media, such as an image or video.
struct OpenGraphMedia: Equatable {
/// The URL of the media.
let url: String?
let url: URL?

/// The width of the media.
let width: Double?
Expand All @@ -31,7 +31,7 @@ struct OpenGraphMedia: Equatable {
/// - url: The URL of the media.
/// - width: The width of the media.
/// - height: The height of the media.
init?(url: String?, width: Double?, height: Double?) {
init?(url: URL?, width: Double?, height: Double?) {
if url == nil && width == nil && height == nil {
return nil
}
Expand Down
16 changes: 8 additions & 8 deletions Nos/Models/OpenGraph/SoupOpenGraphParser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,13 @@ extension SoupOpenGraphParser {
/// - Returns: The Open Graph image URL, or `nil` if none is found.
/// - Note: The image URL may be in a variety of properties, including `"og:image"`, `"og:image:url`, or
/// `"og:image:secure_url"`.
func imageURL(from document: Document) -> String? {
func imageURL(from document: Document) -> URL? {
if let url = stringValue(.image, from: document), !url.isEmpty {
return url
return URL(string: url)
} else if let url = stringValue(.imageURL, from: document), !url.isEmpty {
return url
return URL(string: url)
} else if let url = stringValue(.imageSecureURL, from: document), !url.isEmpty {
return url
return URL(string: url)
} else {
return nil
}
Expand All @@ -102,13 +102,13 @@ extension SoupOpenGraphParser {
/// - Returns: The Open Graph video URL, or `nil` if none is found.
/// - Note: The video URL may be in a variety of properties, including `"og:video"`, `"og:video:url`, or
/// `"og:video:secure_url"`.
func videoURL(from document: Document) -> String? {
func videoURL(from document: Document) -> URL? {
if let url = stringValue(.video, from: document), !url.isEmpty {
return url
return URL(string: url)
} else if let url = stringValue(.videoURL, from: document), !url.isEmpty {
return url
return URL(string: url)
} else if let url = stringValue(.videoSecureURL, from: document), !url.isEmpty {
return url
return URL(string: url)
} else {
return nil
}
Expand Down
12 changes: 6 additions & 6 deletions NosTests/Models/OpenGraph/SoupOpenGraphParserTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ class SoupOpenGraphParserTests: XCTestCase {
// Assert
XCTAssertEqual(metadata.type, .video)

XCTAssertEqual(metadata.video?.url, "https://example.com/movie.swf")
XCTAssertEqual(metadata.video?.url?.absoluteString, "https://example.com/movie.swf")
XCTAssertEqual(metadata.video?.width, 2560)
XCTAssertEqual(metadata.video?.height, 1440)

XCTAssertEqual(metadata.image?.url, "https://example.com/rock.jpg")
XCTAssertEqual(metadata.image?.url?.absoluteString, "https://example.com/rock.jpg")
XCTAssertEqual(metadata.image?.width, 1280)
XCTAssertEqual(metadata.image?.height, 720)
}
Expand All @@ -40,8 +40,8 @@ class SoupOpenGraphParserTests: XCTestCase {
// Assert
XCTAssertEqual(metadata.type, .unknown)

XCTAssertEqual(metadata.video?.url, "https://example.com/rock.mp4")
XCTAssertEqual(metadata.image?.url, "https://example.com/rock.jpg")
XCTAssertEqual(metadata.video?.url?.absoluteString, "https://example.com/rock.mp4")
XCTAssertEqual(metadata.image?.url?.absoluteString, "https://example.com/rock.jpg")
}

func test_parse_sample_video_missing_metadata() throws {
Expand Down Expand Up @@ -73,7 +73,7 @@ class SoupOpenGraphParserTests: XCTestCase {
// Assert
XCTAssertEqual(metadata.type, .website)

XCTAssertEqual(metadata.image?.url, "https://example.com/rock.jpg")
XCTAssertEqual(metadata.image?.url?.absoluteString, "https://example.com/rock.jpg")
XCTAssertEqual(metadata.image?.width, 640)
XCTAssertEqual(metadata.image?.height, 480)
}
Expand Down Expand Up @@ -104,7 +104,7 @@ class SoupOpenGraphParserTests: XCTestCase {

XCTAssertEqual(metadata.type, .video)

XCTAssertEqual(metadata.video?.url, "https://www.youtube.com/embed/ZILsHowUjpQ")
XCTAssertEqual(metadata.video?.url?.absoluteString, "https://www.youtube.com/embed/ZILsHowUjpQ")
XCTAssertEqual(metadata.video?.width, 1280)
XCTAssertEqual(metadata.video?.height, 720)

Expand Down

0 comments on commit 8411704

Please sign in to comment.