You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.1 KiB

6 years ago
  1. // Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
  2. //
  3. // You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
  4. // copy, modify, and distribute this software in source code or binary form for use
  5. // in connection with the web services and APIs provided by Facebook.
  6. //
  7. // As with any software that integrates with the Facebook platform, your use of
  8. // this software is subject to the Facebook Developer Principles and Policies
  9. // [http://developers.facebook.com/policy/]. This copyright notice shall be
  10. // included in all copies or substantial portions of the software.
  11. //
  12. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  13. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  14. // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  15. // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  16. // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  17. // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  18. import Foundation
  19. import FBSDKShareKit
  20. /**
  21. A video for sharing.
  22. */
  23. public struct Video {
  24. /// The file URL to the video.
  25. public var url: URL
  26. /**
  27. Build a new video with a video URL and preivew photo.
  28. - parameter url: The file URL to the video.
  29. */
  30. public init(url: URL) {
  31. self.url = url
  32. }
  33. }
  34. extension Video: Equatable {
  35. /**
  36. Compare two `Video`s for equality.
  37. - parameter lhs: The first `Video` to compare.
  38. - parameter rhs: The second `Video` to compare.
  39. - returns: Whether or not the videos are equal.
  40. */
  41. public static func == (lhs: Video, rhs: Video) -> Bool {
  42. return lhs.sdkVideoRepresentation == rhs.sdkVideoRepresentation
  43. }
  44. }
  45. extension Video {
  46. internal var sdkVideoRepresentation: FBSDKShareVideo {
  47. let sdkVideo = FBSDKShareVideo()
  48. sdkVideo.videoURL = url
  49. return sdkVideo
  50. }
  51. internal init?(sdkVideoRepresentation: FBSDKShareVideo) {
  52. guard let url = sdkVideoRepresentation.videoURL else {
  53. return nil
  54. }
  55. self.url = url
  56. }
  57. }