Safariのブックマークに登録されたURL一覧を取得するAppleScriptです。
SafariのAppleScript対応機能に、ブックマーク操作系のものは存在していません。そのため、Bookmarks.plistを直接読み込んでデータの絞り込みを行なっています。
Bookmarks.plistを実際に読んでみると、ツリー(フォルダ)とリーフ(個別のブックマーク)があって、本Scriptではリーフ部分しか読んでいないのですが、とりあえず試作レベルということで。
読むのはいいんですが、追加が大変そうなので(BookmarkのIDとか外部で勝手に追加できるものなんだろうか。UUIDっぽいけど)ブックマーク登録は野蛮にGUI Scripting経由でメニューを操作することになるのでしょう。
AppleScript名:SafariのBookmarks.plistから登録URLを取得 |
— – Created by: Takaaki Naganoya – Created on: 2022/01/07 — – Copyright © 2022 Piyomaru Software, All Rights Reserved — use AppleScript version "2.7" use framework "Foundation" use scripting additions script spdB property urlList : {} end script set (urlList of spdB) to getBookmarkedURLs() of me set (urlList of spdB) to cleanUp1DList((urlList of spdB), missing value) of me –Sweep missing value items –Read Bookmarked URLs on getBookmarkedURLs() set newPath to "~/Library/Safari/Bookmarks.plist" set aRec to my readPlistAt:newPath return ((aRec’s Children)’s valueForKey:"URLString") as list end getBookmarkedURLs –Read Plist on readPlistAt:thePath set thePath to current application’s NSString’s stringWithString:thePath set thePath to thePath’s stringByExpandingTildeInPath() set theDict to current application’s NSDictionary’s dictionaryWithContentsOfFile:thePath return theDict end readPlistAt: –1D Listのスイープ on cleanUp1DList(aList as list, cleanUpItems as list) set bList to {} repeat with i in aList set j to contents of i if j is not in cleanUpItems then set the end of bList to j end if end repeat return bList end cleanUp1DList |
More from my site
(Visited 119 times, 1 visits today)