Scripting support for Author class and expanded properties for feeds

This commit is contained in:
Olof Hellman
2018-01-19 22:31:17 -08:00
parent d0722370a1
commit adcd266a11
6 changed files with 164 additions and 6 deletions

View File

@@ -11,7 +11,7 @@ import Account
import Data
@objc(ScriptableFeed)
class ScriptableFeed: NSObject, UniqueIdScriptingObject {
class ScriptableFeed: NSObject, UniqueIdScriptingObject, ScriptingObjectContainer{
let feed:Feed
let container:ScriptingObjectContainer
@@ -41,7 +41,13 @@ class ScriptableFeed: NSObject, UniqueIdScriptingObject {
var scriptingUniqueId:Any {
return feed.feedID
}
// MARK: --- ScriptingObjectContainer protocol ---
var scriptingClassDescription: NSScriptClassDescription {
return self.classDescription as! NSScriptClassDescription
}
// MARK: --- Scriptable properties ---
@objc(url)
@@ -59,4 +65,25 @@ class ScriptableFeed: NSObject, UniqueIdScriptingObject {
return self.feed.name ?? ""
}
@objc(homePageURL)
var homePageURL:String {
return self.feed.homePageURL ?? ""
}
@objc(iconURL)
var iconURL:String {
return self.feed.iconURL ?? ""
}
@objc(faviconURL)
var faviconURL:String {
return self.feed.faviconURL ?? ""
}
@objc(authors)
var authors:NSArray {
let feedAuthors = feed.authors ?? []
return feedAuthors.map { ScriptableAuthor($0, container:self) } as NSArray
}
}