diff --git a/html_tidy.py b/html_tidy.py
index 72d637f..20c5c3a 100644
--- a/html_tidy.py
+++ b/html_tidy.py
@@ -6,7 +6,7 @@
import sys
import subprocess
import urllib
-import urllib2
+#import urllib2
import base64
from collections import defaultdict
@@ -115,12 +115,13 @@ def tidy_string(input_string, command):
values = {'content': base64.b64encode(input_string.encode('utf8')),
'arguments': str(command)}
- data = urllib.urlencode(values)
- req = urllib2.Request(url, data, headers={"Accept": "text/html"})
- response = urllib2.urlopen(req)
+ data = urllib.parse.urlencode(values)
+ binary_data = data.encode('utf8')
+ req = urllib.request.Request(url, binary_data, headers={"Accept": "text/html"})
+ response = urllib.request.urlopen(req)
returned_content = response.read()
- # print 'HtmlTidy: returned_content ' + returned_content
- tidied = returned_content
+ # print('HtmlTidy: returned_content ' + returned_content)
+ tidied = returned_content.decode(encoding='UTF-8')
# error = 'the web api responded: ' + str(returned_content)
error = ''
returncode = 0
@@ -139,7 +140,7 @@ def tidy_string(input_string, command):
universal_newlines=True
)
- tidied, error = p.communicate(input_string.encode('utf8'))
+ tidied, error = p.communicate(input_string)
return tidied, error, p.returncode
@@ -191,27 +192,27 @@ def find_tidier(prefer_tidy):
try:
tidypath = os.path.normpath(pluginpath + '/win/tidy.exe')
subprocess.call([tidypath, "-v"])
- print "HTMLTidy: using Tidy found here: " + tidypath
+ print("HTMLTidy: using Tidy found here: " + tidypath)
return tidypath, 'list'
except OSError:
- print "HTMLTidy: Didn't find tidy.exe in " + pluginpath
+ print("HTMLTidy: Didn't find tidy.exe in " + pluginpath)
pass
elif prefer_tidy == 'php':
try:
- print "HTMLTidy: Checking PHP Tidy module..."
+ print("HTMLTidy: Checking PHP Tidy module...")
if check_php():
- print "HTMLTidy: Using PHP Tidy module."
- # print "HTMLTidy: retval: " + str(retval)
+ print("HTMLTidy: Using PHP Tidy module.")
+ # print("HTMLTidy: retval: " + str(retval))
return 'php "' + os.path.normpath(scriptpath) + '"', 'string'
else:
- print "HTMLTidy: Your PHP version doesn't include Tidy support"
- # print "HTMLTidy: retval: " + str(retval)
+ print("HTMLTidy: Your PHP version doesn't include Tidy support")
+ # print("HTMLTidy: retval: " + str(retval))
pass
except OSError:
- print "HTMLTidy: Not using PHP"
+ print("HTMLTidy: Not using PHP")
pass
return "webservice", 'list'
@@ -219,7 +220,7 @@ def find_tidier(prefer_tidy):
def fixup(string):
'Remove double newlines & decode text.'
- return re.sub(r'\r\n|\r', '\n', string.decode('utf-8'))
+ return re.sub(r'\r\n|\r', '\n', string)
def compile_args(args, script, style):
@@ -249,7 +250,7 @@ def get_args(settings, args):
if custom_value == False:
custom_value = 0
- # print "HtmlTidy: setting " + option + ": " + custom_value
+ # print("HtmlTidy: setting " + option + ": " + custom_value)
args += [('--' + option, str(custom_value))]
return args
@@ -295,11 +296,12 @@ def run(self, edit):
# This extends the args just given, so that a user-given value for tab_size takes precedence.
args = get_args(settings, args)
prefer_tidy = settings.get('prefer_tidy', 'webservice')
+ deselect_flag = False
try:
script, arg_type = find_tidier(prefer_tidy)
except OSError:
- print "HTMLTidy: Couldn't find Tidy or PHP. Stopping without Tidying anything."
+ print("HTMLTidy: Couldn't find Tidy or PHP. Stopping without Tidying anything.")
return
allow_dupe_ids = settings.get('allow-duplicate-ids', False)
@@ -316,8 +318,8 @@ def run(self, edit):
command = compile_args(args, script, style=arg_type)
- print 'HtmlTidy: ' + str(command)
- #print "HtmlTidy: Passing this script and arguments: " + script + " " + str(args)
+ print('HtmlTidy: ' + str(command))
+ #print("HtmlTidy: Passing this script and arguments: " + script + " " + str(args))
for sel in self.view.sel():
@@ -340,13 +342,13 @@ def run(self, edit):
self.deselect()
if retval == 1:
- print "HTMLTidy: Tidy had some warnings for you:\n" + err
+ print("HTMLTidy: Tidy had some warnings for you:\n" + err)
else:
- print "HTMLTidy experienced an error. Opening up a new file to show you."
+ print("HTMLTidy experienced an error. Opening up a new file to show you.")
# Again, adapted from the Sublime Text 1 webdevelopment package
nv = self.view.window().new_file()
- nv.set_scratch(1)
+ nv.set_scratch(True)
# Append the given command to the error message.
nv.insert(edit, 0, err + "\n" + str(command))
nv.set_name('HTMLTidy: Tidy errors')