Added option to output in "bookmark" format, clarified some "help" msgs

This commit is contained in:
Clayton Craft 2016-03-25 13:01:21 -07:00
parent 81ce9b818f
commit 8addc19d47

View File

@ -31,23 +31,27 @@ import argparse
def main():
args = get_args()
if args.browser in ['chromium', 'firefox', 'ie']:
import_netscape_bookmarks(args.bookmarks)
import_netscape_bookmarks(args.bookmarks, args.bookmark_format)
def get_args():
"""Get the argparse parser."""
parser = argparse.ArgumentParser(
epilog="To import bookmarks from Chromium, Firefox or IE, "
"export them to HTML in your browsers bookmark manager.")
parser.add_argument('browser', help="Which browser?",
"export them to HTML in your browsers bookmark manager. "
"By default, this script will output in a quickmarks format.")
parser.add_argument('browser', help="Which browser? (chromium, firefox)",
choices=['chromium', 'firefox', 'ie'],
metavar='browser')
parser.add_argument('bookmarks', help="Bookmarks file")
parser.add_argument('-b', help="Output in bookmark format.",
dest='bookmark_format', action='store_true',
default=False, required=False)
parser.add_argument('bookmarks', help="Bookmarks file (html format)")
args = parser.parse_args()
return args
def import_netscape_bookmarks(bookmarks_file):
def import_netscape_bookmarks(bookmarks_file, is_bookmark_format):
"""Import bookmarks from a NETSCAPE-Bookmark-file v1.
Generated by Chromium, Firefox, IE and possibly more browsers
@ -57,11 +61,15 @@ def import_netscape_bookmarks(bookmarks_file):
soup = bs4.BeautifulSoup(f, 'html.parser')
html_tags = soup.findAll('a')
if is_bookmark_format:
output_template = '{tag[href]} {tag.string}'
else:
output_template = '{tag.string} {tag[href]}'
bookmarks = []
for tag in html_tags:
if tag['href'] not in bookmarks:
bookmarks.append('{tag[href]} {tag.string}'.format(tag=tag))
bookmarks.append(output_template.format(tag=tag))
for bookmark in bookmarks:
print(bookmark)