NetNewsWire/AppleScript/Safari-OpenAllStarredArticles.applescript
2024-07-19 20:19:07 +10:00

50 lines
1.7 KiB
AppleScript

-- This script creates a new Safari window with all the starred articles in a NetNewsWire instance, each in its own tab
-- declare the safariWindow property here so we can use is throughout the whole script
property safariWindow : missing value
-- the openTabInSafari() function opens a new tab in the appropriate window
to openTabInSafari(theUrl)
tell application "Safari"
-- test if this is the first call to openTabInSafari()
if (my safariWindow is missing value) then
-- first time through, make a new window with the given url in the only tab
set newdoc to make new document at front with properties {URL:theUrl}
-- because we created the doucument "at front", we know it is window 1
set safariWindow to window 1
else
-- after the first time, make a new tab in the wndow we created the first tim
tell safariWindow
make new tab with properties {URL:theUrl}
end tell
end if
end tell
end openTabInSafari
-- the script starts here
-- First, initialize safariWindow to be missing value, so that the first time through
-- openTabInSafari() we'll make a new window to hold all our articles
set safariWindow to missing value
-- Then we loop though all the feeds of all the accounts
-- for each feed, we find all the starred articles
--for each one of those, open a new tab in Safari
tell application "NetNewsWire"
set allAccounts to every account whose active is true
repeat with nthAccount in allAccounts
set userFeeds to allWebFeeds of nthAccount
repeat with nthFeed in userFeeds
set starredArticles to (get every article of nthFeed where starred is true)
repeat with nthArticle in starredArticles
my openTabInSafari(url of nthArticle)
end repeat
end repeat
end repeat
end tell