diff --git a/linkcheck/checker/__init__.py b/linkcheck/checker/__init__.py index a47f45c3..3e6591ea 100644 --- a/linkcheck/checker/__init__.py +++ b/linkcheck/checker/__init__.py @@ -19,7 +19,7 @@ Main functions for link checking. """ import os -import cgi +from html import escape as html_escape try: # Python 3 from urllib import parse as urlparse except ImportError: @@ -166,9 +166,9 @@ def get_index_html (urls): """ lines = ["", ""] for entry in urls: - name = cgi.escape(entry) + name = html_escape(entry) try: - url = cgi.escape(urlparse.quote(entry)) + url = html_escape(urlparse.quote(entry)) except KeyError: # Some unicode entries raise KeyError. url = name diff --git a/linkcheck/lc_cgi.py b/linkcheck/lc_cgi.py index 95ccc821..e3b12478 100644 --- a/linkcheck/lc_cgi.py +++ b/linkcheck/lc_cgi.py @@ -18,7 +18,7 @@ Functions used by the WSGI script. """ -import cgi +from html import escape as html_escape import os import threading import locale @@ -265,4 +265,4 @@ contains only these characters: A-Za-z0-9./_~-

Errors are logged. -""") % cgi.escape(why) +""") % html_escape(why) diff --git a/linkcheck/logger/html.py b/linkcheck/logger/html.py index 2173b9e8..09ac28ff 100644 --- a/linkcheck/logger/html.py +++ b/linkcheck/logger/html.py @@ -17,9 +17,13 @@ """ A HTML logger. """ -import time -import cgi + +from __future__ import absolute_import + +from html import escape as html_escape import os +import time + from . import _Logger from .. import strformat, configuration @@ -173,12 +177,12 @@ class HtmlLogger (_Logger): self.writeln(u"") self.writeln(u'%s' % self.part("url")) self.write(u'') - self.write(u"`%s'" % cgi.escape(url_data.base_url)) + self.write(u"`%s'" % html_escape(url_data.base_url)) self.writeln(u"") def write_name (self, url_data): """Write url_data.name.""" - args = (self.part("name"), cgi.escape(url_data.name)) + args = (self.part("name"), html_escape(url_data.name)) self.writeln(u"%s`%s'" % args) def write_parent (self, url_data): @@ -186,7 +190,7 @@ class HtmlLogger (_Logger): self.write(u""+self.part("parenturl")+ u''+ - cgi.escape(url_data.parent_url)+u"") + html_escape(url_data.parent_url)+u"") if url_data.line > 0: self.write(_(", line %d") % url_data.line) if url_data.column > 0: @@ -205,13 +209,13 @@ class HtmlLogger (_Logger): def write_base (self, url_data): """Write url_data.base_ref.""" self.writeln(u""+self.part("base")+u""+ - cgi.escape(url_data.base_ref)+u"") + html_escape(url_data.base_ref)+u"") def write_real (self, url_data): """Write url_data.url.""" self.writeln(""+self.part("realurl")+u""+ u''+cgi.escape(url_data.url)+u"") + u'">'+html_escape(url_data.url)+u"") def write_dltime (self, url_data): """Write url_data.dltime.""" @@ -233,20 +237,20 @@ class HtmlLogger (_Logger): def write_info (self, url_data): """Write url_data.info.""" sep = u"
"+os.linesep - text = sep.join(cgi.escape(x) for x in url_data.info) + text = sep.join(html_escape(x) for x in url_data.info) self.writeln(u'' + self.part("info")+ u""+text+u"") def write_modified(self, url_data): """Write url_data.modified.""" - text = cgi.escape(self.format_modified(url_data.modified)) + text = html_escape(self.format_modified(url_data.modified)) self.writeln(u'' + self.part("modified") + u""+text+u"") def write_warning (self, url_data): """Write url_data.warnings.""" sep = u"
"+os.linesep - text = sep.join(cgi.escape(x[1]) for x in url_data.warnings) + text = sep.join(html_escape(x[1]) for x in url_data.warnings) self.writeln(u'' + self.part("warning") + u'' + text + u"") @@ -257,14 +261,14 @@ class HtmlLogger (_Logger): self.write(u'') self.write(self.part("result")) self.write(u'') - self.write(cgi.escape(_("Valid"))) + self.write(html_escape(_("Valid"))) else: self.write(u'') self.write(self.part("result")) self.write(u'') - self.write(cgi.escape(_("Error"))) + self.write(html_escape(_("Error"))) if url_data.result: - self.write(u": "+cgi.escape(url_data.result)) + self.write(u": "+html_escape(url_data.result)) self.writeln(u"") def write_stats (self): diff --git a/scripts/analyze_memdump.py b/scripts/analyze_memdump.py index cfa25724..0fdd878d 100755 --- a/scripts/analyze_memdump.py +++ b/scripts/analyze_memdump.py @@ -21,7 +21,7 @@ Analyze a memory dump by the meliae module. import sys import os import codecs -import cgi +from html import escape as html_escape from linkcheck import strformat def main (filename): @@ -108,7 +108,7 @@ def write_html_obj(fp, obj, objs): if obj.value is None: value = u"None" else: - value = cgi.escape(str(obj.value)) + value = html_escape(str(obj.value)) attrs = dict( address=obj.address, size=strformat.strsize(obj.size), diff --git a/tests/checker/httpserver.py b/tests/checker/httpserver.py index 3bde93ed..1dfb0dc8 100644 --- a/tests/checker/httpserver.py +++ b/tests/checker/httpserver.py @@ -18,11 +18,11 @@ Define http test support classes for LinkChecker tests. """ +from html import escape as html_escape from http.server import SimpleHTTPRequestHandler, HTTPServer from http.client import HTTPConnection import time import threading -import cgi try: from urllib import parse as urllib_parse except ImportError: @@ -134,7 +134,7 @@ class NoQueryHttpRequestHandler (StoppableHttpRequestHandler): displayname = linkname = name list_item = ( u'
  • %s\n' - % (urllib_parse.quote(linkname), cgi.escape(displayname)) + % (urllib_parse.quote(linkname), html_escape(displayname)) ) f.write(list_item.encode()) f.write(b"\n
    \n\n\n")