fix whitespace issues

This commit is contained in:
Ryan Farley 2017-09-15 03:37:16 -05:00
parent c163f702c2
commit 898dde566d

View File

@ -18,14 +18,11 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>. # along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
"""Tool to import data from other browsers. """Tool to import data from other browsers.
Currently only importing bookmarks from Netscape Bookmark files is supported. Currently only importing bookmarks from Netscape Bookmark files is supported.
""" """
import argparse import argparse
@ -49,12 +46,13 @@ def main():
if args.keyword_query: if args.keyword_query:
bookmark_types.append('keyword') bookmark_types.append('keyword')
if not bookmark_types: if not bookmark_types:
bookmark_types = ['bookmark','keyword'] bookmark_types = ['bookmark', 'keyword']
if not output_format: if not output_format:
output_format = 'quickmark' output_format = 'quickmark'
if args.browser in ['chromium', 'firefox', 'ie']: if args.browser in ['chromium', 'firefox', 'ie']:
import_netscape_bookmarks(args.bookmarks,bookmark_types,output_format) import_netscape_bookmarks(args.bookmarks, bookmark_types,
output_format)
def get_args(): def get_args():
@ -63,29 +61,59 @@ def get_args():
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. "
"By default, this script will output in a quickmarks format.") "By default, this script will output in a quickmarks format.")
parser.add_argument('browser', help="Which browser? (chromium, firefox)", parser.add_argument(
'browser',
help="Which browser? (chromium, firefox)",
choices=['chromium', 'firefox', 'ie'], choices=['chromium', 'firefox', 'ie'],
metavar='browser') metavar='browser')
parser.add_argument('-b', help="Output in bookmark format.", parser.add_argument(
dest='bookmark_output', action='store_true', '-b',
default=False, required=False) help="Output in bookmark format.",
parser.add_argument('-q', help="Output in quickmark format (default).", dest='bookmark_output',
dest='quickmark_output', action='store_true', action='store_true',
default=False,required=False) default=False,
parser.add_argument('-s', help="Output search engine format", required=False)
dest='search_output', action='store_true', parser.add_argument(
default=False,required=False) '-q',
parser.add_argument('--newconfig', help="Output search engine format for new config.py format", help="Output in quickmark format (default).",
default=False,action='store_true',required=False) dest='quickmark_output',
parser.add_argument('-S', help="Import search engines", action='store_true',
dest='search_query', action='store_true', default=False,
default=False,required=False) required=False)
parser.add_argument('-B', help="Import plain bookmarks (no keywords)", parser.add_argument(
dest='bookmark_query', action='store_true', '-s',
default=False,required=False) help="Output search engine format",
parser.add_argument('-K', help="Import keywords (no search)", dest='search_output',
dest='keyword_query', action='store_true', action='store_true',
default=False,required=False) default=False,
required=False)
parser.add_argument(
'--newconfig',
help="Output search engine format for new config.py format",
default=False,
action='store_true',
required=False)
parser.add_argument(
'-S',
help="Import search engines",
dest='search_query',
action='store_true',
default=False,
required=False)
parser.add_argument(
'-B',
help="Import plain bookmarks (no keywords)",
dest='bookmark_query',
action='store_true',
default=False,
required=False)
parser.add_argument(
'-K',
help="Import keywords (no search)",
dest='keyword_query',
action='store_true',
default=False,
required=False)
parser.add_argument('bookmarks', help="Bookmarks file (html format)") parser.add_argument('bookmarks', help="Bookmarks file (html format)")
args = parser.parse_args() args = parser.parse_args()
return args return args
@ -100,16 +128,24 @@ def import_netscape_bookmarks(bookmarks_file, bookmark_types, output_format):
with open(bookmarks_file, encoding='utf-8') as f: with open(bookmarks_file, encoding='utf-8') as f:
soup = bs4.BeautifulSoup(f, 'html.parser') soup = bs4.BeautifulSoup(f, 'html.parser')
bookmark_query = { bookmark_query = {
'search': 'search': lambda tag: (
lambda tag: (tag.name == 'a') and ('shortcuturl' in tag.attrs) and ('%s' in tag['href']), (tag.name == 'a') and
'keyword': ('shortcuturl' in tag.attrs) and
lambda tag: (tag.name == 'a') and ('shortcuturl' in tag.attrs) and ('%s' not in tag['href']), ('%s' in tag['href'])),
'bookmark': 'keyword': lambda tag: (
lambda tag: (tag.name == 'a') and ('shortcuturl' not in tag.attrs) and (tag.string) (tag.name == 'a') and
('shortcuturl' in tag.attrs) and
('%s' not in tag['href'])),
'bookmark': lambda tag: (
(tag.name == 'a') and
('shortcuturl' not in tag.attrs) and
(tag.string)),
} }
output_template = { output_template = {
'ncsearch': { 'ncsearch': {
'search': "c.url.searchengines['{tag[shortcuturl]}'] = '{tag[href]}' #{tag.string}" 'search':
"c.url.searchengines['{tag[shortcuturl]}'] = "
"'{tag[href]}' #{tag.string}"
}, },
'search': { 'search': {
'search': '{tag[shortcuturl]} = {tag[href]} #{tag.string}', 'search': '{tag[shortcuturl]} = {tag[href]} #{tag.string}',
@ -127,10 +163,11 @@ def import_netscape_bookmarks(bookmarks_file, bookmark_types, output_format):
for typ in bookmark_types: for typ in bookmark_types:
tags = soup.findAll(bookmark_query[typ]) tags = soup.findAll(bookmark_query[typ])
for tag in tags: for tag in tags:
if typ=='search': if typ == 'search':
tag['href'] = tag['href'].replace('%s','{}') tag['href'] = tag['href'].replace('%s', '{}')
if tag['href'] not in bookmarks: if tag['href'] not in bookmarks:
bookmarks.append(output_template[output_format][typ].format(tag=tag)) bookmarks.append(
output_template[output_format][typ].format(tag=tag))
for bookmark in bookmarks: for bookmark in bookmarks:
print(bookmark) print(bookmark)