diff --git a/buku.py b/buku.py
index 0c147c3..cd23187 100755
--- a/buku.py
+++ b/buku.py
@@ -1600,7 +1600,7 @@ class BukuDb:
print('%s exported' % count)
return True
- def importdb(self, filepath):
+ def importdb(self, filepath, tacit=False):
'''Import bookmarks from a html or a markdown
file (with extension '.md'). Supports Firefox,
Google Chrome and IE exported html
@@ -1609,6 +1609,11 @@ class BukuDb:
:return: True on success, False on failure
'''
+ if not tacit:
+ newtag = input('Specify unique tag for imports (Enter to skip): ')
+ else:
+ newtag = None
+
if filepath.endswith('.md'):
with open(filepath, mode='r', encoding='utf-8') as infp:
for line in infp:
@@ -1629,7 +1634,8 @@ class BukuDb:
if (is_nongeneric_url(url)):
continue
- self.add_rec(url, title, None, None, 0, True)
+ self.add_rec(url, title, delim_wrap(newtag)
+ if newtag else None, None, 0, True)
self.conn.commit()
infp.close()
@@ -1645,11 +1651,24 @@ class BukuDb:
logerr(e)
return False
- html_tags = soup.findAll('a')
-
resp = input('Add imported folders names as tags? (y/n): ')
- if resp == 'y':
- for tag in html_tags:
+
+ for tag in soup.findAll('a'):
+ # Extract comment from
tag
+ try:
+ if (is_nongeneric_url(tag['href'])):
+ continue
+ except KeyError as e:
+ continue
+
+ desc = None
+ comment_tag = tag.findNextSibling('dd')
+
+ if comment_tag:
+ desc = comment_tag.find(text=True, recursive=False)
+
+ # add parent folder as tag
+ if resp == 'y':
# could be its folder or not
possible_folder = tag.find_previous('h3')
# get list of tags within that folder
@@ -1663,19 +1682,12 @@ class BukuDb:
else:
tag['tags'] = possible_folder.text
- for tag in html_tags:
- # Extract comment from tag
- try:
- if (is_nongeneric_url(tag['href'])):
- continue
- except KeyError as e:
- continue
-
- desc = None
- comment_tag = tag.findNextSibling('dd')
-
- if comment_tag:
- desc = comment_tag.find(text=True, recursive=False)
+ # add unique tag if opted
+ if newtag:
+ if tag.has_attr('tags'):
+ tag['tags'] += (DELIM + newtag)
+ else:
+ tag['tags'] = newtag
self.add_rec(tag['href'], tag.string, parse_tags([tag['tags']])
if tag.has_attr('tags') else None, desc, 0, True)
@@ -3286,7 +3298,7 @@ POSITIONAL ARGUMENTS:
# Import bookmarks
if args.importfile is not None:
- bdb.importdb(args.importfile[0])
+ bdb.importdb(args.importfile[0], args.tacit)
# Merge a database file and exit
if args.merge is not None: