缘由
我在Mac中使用两个浏览器,Safari和Chrome。日常用Safari,需要使用网页检查器的时候用Chrome。但是有时候Safari不是很好使(比如看Angela Yu的网课的时候,总是卡死),就会换到Chrome。所以我对浏览器间的书签和密码同步有一定需求。经过搜索,我发现密码同步可以用一个叫“iCloud密码”的Chrome插件。但是书签同步并没有很好的方案。有一些第三方软件似乎可以做到,但是很多人说同步之后造成了书签大混乱,我就不太敢用。
找来找去发现了这个帖子。ta的脚本挺不错的,但是需要手动操作两步:保存Safari书签时点一下保存、导入到Chrome时选择文件并导入。有点麻烦。我就想能不能再自动一点。经过我的试验,后一步是无法自动的,所以决定着手优化前一步。
导出Safari书签
我希望将书签的html文件保存到默认目录,也就是“下载”文件夹。所以保存时并不需要修改文件路径。因此,这个事情的步骤大概是:打开Safari,点击文件-导出-书签,点击保存按钮。具体代码如下:
tell application "Safari" activate end tell
tell application "System Events" tell process "Safari" click menu item "书签…" of menu "导出" of menu item "导出" of menu "文件" of menu bar item "文件" of menu bar 1 delay 1 keystroke return end tell end tell
delay 3
|
删除书签文件
然后就是导入Chrome了,前面已经说了,这部分没法自动化。再然后,我想要删除生成的html文件,于是又加了一步:
set userChoice to button returned of (display dialog "是否删除已保存的书签文件?" buttons {"取消", "删除"} default button "删除" with icon caution)
if userChoice is "删除" then do shell script "rm -f /Users/{我的用户名}/Downloads/Safari浏览器书签.html" end if
|
这个脚本的完整内容如下:
tell application "Safari" activate end tell
tell application "System Events" tell process "Safari" click menu item "书签…" of menu "导出" of menu item "导出" of menu "文件" of menu bar item "文件" of menu bar 1 delay 1 keystroke return end tell end tell
delay 3
tell application "Google Chrome" activate end tell
tell application "System Events" tell process "Google Chrome" click menu item "导入书签和设置…" of menu 1 of menu bar item "Chrome" of menu bar 1 delay 2 end tell end tell
set userChoice to button returned of (display dialog "是否删除已保存的书签文件?" buttons {"取消", "删除"} default button "删除" with icon caution)
if userChoice is "删除" then do shell script "rm -f /Users/chumiaochen/Downloads/Safari浏览器书签.html" end if
|
添加快捷键
每次都要点开脚本文件执行,太麻烦了。所以设置了一个快捷键。方法是创建一个快捷指令,把脚本粘贴进去,然后在快捷指令的右边栏点击“添加键盘快捷键“,再按下你需要的快捷键即可。我设置的是Option+Command+S。
其实我更希望弄一个类似于iPhone上“自动化”一样的东西,让它每周执行一次,但是我在Mac上没有找到自动化。
缺点
这个办法是没办法的办法,每次需要手动执行(虽然有快捷键),导入也需要手动操作。很烦!