AppleScript: Add a "feed" property to articles

- Also make scripts like

feed id "foo" of account id "bar"

find feeds in folders.
This commit is contained in:
Nate Weaver 2020-06-07 20:13:51 -05:00
parent 6ebd5ad5ed
commit 42f63808f3
3 changed files with 15 additions and 4 deletions

View File

@ -216,7 +216,10 @@
<property name="image url" code="IURL" type="text" access="r" description="an image url for the article">
<cocoa key="imageURL"/>
</property>
<element type="author">
<property name="feed" code="Feed" type="webFeed" access="r" description="the containing feed">
<cocoa key="feed"/>
</property>
<element type="author">
<cocoa key="authors"/>
</element>
</class>

View File

@ -101,14 +101,13 @@ class ScriptableAccount: NSObject, UniqueIdScriptingObject, ScriptingObjectConta
@objc(valueInWebFeedsWithUniqueID:)
func valueInWebFeeds(withUniqueID id:String) -> ScriptableWebFeed? {
let feeds = Array(account.topLevelWebFeeds)
guard let feed = feeds.first(where:{$0.webFeedID == id}) else { return nil }
guard let feed = account.existingWebFeed(withWebFeedID: id) else { return nil }
return ScriptableWebFeed(feed, container:self)
}
@objc(valueInWebFeedsWithName:)
func valueInWebFeeds(withName name:String) -> ScriptableWebFeed? {
let feeds = Array(account.topLevelWebFeeds)
let feeds = Array(account.flattenedWebFeeds())
guard let feed = feeds.first(where:{$0.name == name}) else { return nil }
return ScriptableWebFeed(feed, container:self)
}

View File

@ -141,4 +141,13 @@ class ScriptableArticle: NSObject, UniqueIdScriptingObject, ScriptingObjectConta
return articleAuthors.map { ScriptableAuthor($0, container:self) } as NSArray
}
@objc(feed)
var feed: ScriptableWebFeed? {
guard let parentFeed = self.article.webFeed,
let account = parentFeed.account
else { return nil }
return ScriptableWebFeed(parentFeed, container: ScriptableAccount(account))
}
}