SafariBookmarkEditor
SafariBookmarkEditor copied to clipboard
Python module for easily adding, removing, and moving positions of Safari bookmarks in the context of the currently logged in user. Can also be run as a CLI tool.
SafariBookmarkEditor
Python module for easily adding, removing, and moving positions of Safari bookmarks in the context of the currently logged in user. On fresh installs that lack a Bookmarks.plist in the ~/Library/Safari/ folder or in the case of a corrupt plist a boilerplate Bookmarks plist will be generated with the proper format. Bookmark titles are checked against existing bookmarks to ensure no collisions occur. Can also be run as a CLI tool.
Example Usage:
#!/usr/bin/python
from SafariBookmarkEditor import SafariBookmarks # Import the module
bookmarks = SafariBookmarks() # Create a Safari Bookmarks instance to act on.
bookmarks.removeAll() # Remove all bookmarks
bookmarks.add("Reddit", "https://reddit.com") # Add bookmark for Reddit
bookmarks.add("Apple", "https://www.apple.com", index=0) # Add bookmark for Apple at 0th position
bookmarks.swap("Apple", "Reddit") # Swap positions of Apple and Reddit bookmarks
bookmarks.move("Apple", 0) # Move Apple bookmark back to 0th position
bookmarks.remove("Apple") # Remove the Apple bookmark
bookmarks.write() # Write changes to Bookmarks plist
CLI Usage:
./SafariBookmarkEditor.py -h
usage: SafariBookmarkEditor.py [-h] [--add title::url [title::url ...]]
[--remove title [title ...]] [--removeall]
Command line tool for adding and removing Safari bookmarks in the context of
the currently logged in user.
optional arguments:
-h, --help show this help message and exit
--add title::url [title::url ...]
double-colon seperated title and url of bookmark(s) to
add in IE: --add MyWebsite::http://www.mywebsite.com
MyOtherWebsite::http://www.myotherwebsite.com
--remove title [title ...]
title(s) of bookmark(s) to remove IE: --remove
MyWebsite MyOtherWebsite
--removeall remove all current bookmarks