Added option to output in "bookmark" format, clarified some "help" msgs
This commit is contained in:
parent
81ce9b818f
commit
8addc19d47
@ -31,23 +31,27 @@ import argparse
|
|||||||
def main():
|
def main():
|
||||||
args = get_args()
|
args = get_args()
|
||||||
if args.browser in ['chromium', 'firefox', 'ie']:
|
if args.browser in ['chromium', 'firefox', 'ie']:
|
||||||
import_netscape_bookmarks(args.bookmarks)
|
import_netscape_bookmarks(args.bookmarks, args.bookmark_format)
|
||||||
|
|
||||||
|
|
||||||
def get_args():
|
def get_args():
|
||||||
"""Get the argparse parser."""
|
"""Get the argparse parser."""
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
epilog="To import bookmarks from Chromium, Firefox or IE, "
|
epilog="To import bookmarks from Chromium, Firefox or IE, "
|
||||||
"export them to HTML in your browsers bookmark manager.")
|
"export them to HTML in your browsers bookmark manager. "
|
||||||
parser.add_argument('browser', help="Which browser?",
|
"By default, this script will output in a quickmarks format.")
|
||||||
|
parser.add_argument('browser', help="Which browser? (chromium, firefox)",
|
||||||
choices=['chromium', 'firefox', 'ie'],
|
choices=['chromium', 'firefox', 'ie'],
|
||||||
metavar='browser')
|
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()
|
args = parser.parse_args()
|
||||||
return 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.
|
"""Import bookmarks from a NETSCAPE-Bookmark-file v1.
|
||||||
|
|
||||||
Generated by Chromium, Firefox, IE and possibly more browsers
|
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')
|
soup = bs4.BeautifulSoup(f, 'html.parser')
|
||||||
|
|
||||||
html_tags = soup.findAll('a')
|
html_tags = soup.findAll('a')
|
||||||
|
if is_bookmark_format:
|
||||||
|
output_template = '{tag[href]} {tag.string}'
|
||||||
|
else:
|
||||||
|
output_template = '{tag.string} {tag[href]}'
|
||||||
|
|
||||||
bookmarks = []
|
bookmarks = []
|
||||||
for tag in html_tags:
|
for tag in html_tags:
|
||||||
if tag['href'] not in bookmarks:
|
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:
|
for bookmark in bookmarks:
|
||||||
print(bookmark)
|
print(bookmark)
|
||||||
|
Loading…
Reference in New Issue
Block a user