Add support for hosted videos
This commit is contained in:
parent
143c102454
commit
7d1820483f
|
@ -48,6 +48,7 @@
|
|||
5133BB49246078910001E3D0 /* RedditLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5133BB48246078910001E3D0 /* RedditLink.swift */; };
|
||||
5133BB4B2460BDF30001E3D0 /* RedditSubreddit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5133BB4A2460BDF30001E3D0 /* RedditSubreddit.swift */; };
|
||||
5133BB4D2460CA0B0001E3D0 /* RedditMe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5133BB4C2460CA0B0001E3D0 /* RedditMe.swift */; };
|
||||
5133BB4F2460EC230001E3D0 /* RedditMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5133BB4E2460EC230001E3D0 /* RedditMedia.swift */; };
|
||||
5139A6382459822D004D960C /* CloudKitArticleStatusUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5139A6372459822D004D960C /* CloudKitArticleStatusUpdate.swift */; };
|
||||
5144EA49227B497600D19003 /* FeedbinAPICaller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5144EA48227B497600D19003 /* FeedbinAPICaller.swift */; };
|
||||
5144EA4E227B829A00D19003 /* FeedbinAccountDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5144EA4D227B829A00D19003 /* FeedbinAccountDelegate.swift */; };
|
||||
|
@ -307,6 +308,7 @@
|
|||
5133BB48246078910001E3D0 /* RedditLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedditLink.swift; sourceTree = "<group>"; };
|
||||
5133BB4A2460BDF30001E3D0 /* RedditSubreddit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedditSubreddit.swift; sourceTree = "<group>"; };
|
||||
5133BB4C2460CA0B0001E3D0 /* RedditMe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedditMe.swift; sourceTree = "<group>"; };
|
||||
5133BB4E2460EC230001E3D0 /* RedditMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedditMedia.swift; sourceTree = "<group>"; };
|
||||
5139A6372459822D004D960C /* CloudKitArticleStatusUpdate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudKitArticleStatusUpdate.swift; sourceTree = "<group>"; };
|
||||
5144EA48227B497600D19003 /* FeedbinAPICaller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbinAPICaller.swift; sourceTree = "<group>"; };
|
||||
5144EA4D227B829A00D19003 /* FeedbinAccountDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbinAccountDelegate.swift; sourceTree = "<group>"; };
|
||||
|
@ -641,8 +643,9 @@
|
|||
5193CD53245E3F7A0092735E /* RedditFeedProvider.swift */,
|
||||
5133BB48246078910001E3D0 /* RedditLink.swift */,
|
||||
5133BB46245FD8140001E3D0 /* RedditLinkListing.swift */,
|
||||
5133BB4A2460BDF30001E3D0 /* RedditSubreddit.swift */,
|
||||
5133BB4C2460CA0B0001E3D0 /* RedditMe.swift */,
|
||||
5133BB4E2460EC230001E3D0 /* RedditMedia.swift */,
|
||||
5133BB4A2460BDF30001E3D0 /* RedditSubreddit.swift */,
|
||||
);
|
||||
path = Reddit;
|
||||
sourceTree = "<group>";
|
||||
|
@ -1266,6 +1269,7 @@
|
|||
552032F8229D5D5A009559E0 /* ReaderAPIEntry.swift in Sources */,
|
||||
552032FB229D5D5A009559E0 /* ReaderAPITag.swift in Sources */,
|
||||
51B36313244B8B5E000DEF2A /* TwitterVideo.swift in Sources */,
|
||||
5133BB4F2460EC230001E3D0 /* RedditMedia.swift in Sources */,
|
||||
5165D72822835F7800D9D53D /* FeedFinder.swift in Sources */,
|
||||
9EBD49C023C67602005AD5CD /* FeedlyDownloadArticlesOperation.swift in Sources */,
|
||||
51D58755227F53BE00900287 /* FeedbinTag.swift in Sources */,
|
||||
|
|
|
@ -30,6 +30,8 @@ struct RedditLinkData: Codable {
|
|||
let selfText: String?
|
||||
let author: String?
|
||||
let created: Double?
|
||||
let isVideo: Bool?
|
||||
let media: RedditMedia?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case title = "title"
|
||||
|
@ -40,6 +42,8 @@ struct RedditLinkData: Codable {
|
|||
case selfText = "selftext"
|
||||
case author = "author"
|
||||
case created = "created_utc"
|
||||
case isVideo = "is_video"
|
||||
case media = "media"
|
||||
}
|
||||
|
||||
var createdDate: Date? {
|
||||
|
@ -61,6 +65,13 @@ struct RedditLinkData: Codable {
|
|||
func renderURLAsHTML() -> String? {
|
||||
guard let url = url else { return nil }
|
||||
|
||||
if isVideo ?? false {
|
||||
guard let fallbackURL = media?.video?.fallbackURL else {
|
||||
return nil
|
||||
}
|
||||
return "<video src=\"\(fallbackURL)\"></video>"
|
||||
}
|
||||
|
||||
guard url.hasSuffix(".jpg") || url.hasSuffix(".jpeg") || url.hasSuffix(".png") || url.hasSuffix(".gif") else {
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// RedditMedia.swift
|
||||
// Account
|
||||
//
|
||||
// Created by Maurice Parker on 5/4/20.
|
||||
// Copyright © 2020 Ranchero Software, LLC. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
struct RedditMedia: Codable {
|
||||
|
||||
let video: RedditVideo?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case video = "reddit_video"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
struct RedditVideo: Codable {
|
||||
|
||||
let fallbackURL: String?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case fallbackURL = "fallback_url"
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue