"""
__author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2000-2023 PhiloSoft Design"
+__copyright__ = "Copyright (C) 2000-2024 PhiloSoft Design"
__license__ = "GNU GPL"
__all__ = ['Folder', 'Bookmark', 'Ruler', 'Walker', 'Writer', 'Robot',
]
+from urllib.parse import urlsplit, quote, unquote
import os
-try:
- from urllib.parse import quote, \
- splittype, splithost, splituser, splitpasswd, \
- splitport
-except ImportError:
- from urllib import quote, \
- splittype, splithost, splituser, splitpasswd, \
- splitport
BKMK_FORMAT = os.environ.get("BKMK_FORMAT", "MOZILLA")
def __init__(self, href, add_date, last_visit=None, last_modified=None,
keyword=None, comment='', icon_href=None, icon=None,
charset=None, parser_charset=None):
- protocol, request = splittype(href)
- user, password, port = None, None, None
- host, path = splithost(request)
- if host:
- user, host = splituser(host)
- if user:
- user, password = splitpasswd(user)
- host, port = splitport(host)
- if port: port = int(port)
+ split_results = urlsplit(href)
+ protocol, netloc, path, query, tag = split_results
+ user = split_results.username
+ password = split_results.password
+ host = split_results.hostname
+ port = split_results.port
if protocol == 'place':
href = protocol + ":"
def unquote_title(title):
if BKMK_FORMAT == "MOZILLA":
- from HTMLParser import HTMLParser
- title = HTMLParser().unescape(
+ try:
+ from HTMLParser import HTMLParser
+ except ImportError:
+ from html import unescape
+ else:
+ unescape = HTMLParser().unescape
+ title = unescape(
title.replace("&", '&'))
title = title.replace("'", "'")
return title
param_list = {}
for param in params:
key, value = param.split('=', 1)
- param_list[key] = value
+ param_list[key] = unquote(value)
return main_param, param_list