opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
lxml
/
html
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] __pycache__
N/A
ElementSoup.py
320 bytes
Rename
Delete
__init__.py
62.79 KB
Rename
Delete
_diffcommand.py
2.03 KB
Rename
Delete
_html5builder.py
3.15 KB
Rename
Delete
_setmixin.py
1.16 KB
Rename
Delete
builder.py
4.39 KB
Rename
Delete
clean.py
503 bytes
Rename
Delete
defs.py
4.14 KB
Rename
Delete
diff.cpython-312-x86_64-linux-gnu.so
352.18 KB
Rename
Delete
diff.py
29.68 KB
Rename
Delete
formfill.py
9.45 KB
Rename
Delete
html5parser.py
8.43 KB
Rename
Delete
soupparser.py
9.96 KB
Rename
Delete
usedoctest.py
249 bytes
Rename
Delete
import optparse import sys import re import os from .diff import htmldiff description = """\ """ parser = optparse.OptionParser( usage="%prog [OPTIONS] FILE1 FILE2\n" "%prog --annotate [OPTIONS] INFO1 FILE1 INFO2 FILE2 ...", description=description, ) parser.add_option( '-o', '--output', metavar="FILE", dest="output", default="-", help="File to write the difference to", ) parser.add_option( '-a', '--annotation', action="store_true", dest="annotation", help="Do an annotation") def main(args=None): if args is None: args = sys.argv[1:] options, args = parser.parse_args(args) if options.annotation: return annotate(options, args) if len(args) != 2: print('Error: you must give two files') parser.print_help() sys.exit(1) file1, file2 = args input1 = read_file(file1) input2 = read_file(file2) body1 = split_body(input1)[1] pre, body2, post = split_body(input2) result = htmldiff(body1, body2) result = pre + result + post if options.output == '-': if not result.endswith('\n'): result += '\n' sys.stdout.write(result) else: with open(options.output, 'wb') as f: f.write(result) def read_file(filename): if filename == '-': c = sys.stdin.read() elif not os.path.exists(filename): raise OSError( "Input file %s does not exist" % filename) else: with open(filename, 'rb') as f: c = f.read() return c body_start_re = re.compile( r"<body.*?>", re.I|re.S) body_end_re = re.compile( r"</body.*?>", re.I|re.S) def split_body(html): pre = post = '' match = body_start_re.search(html) if match: pre = html[:match.end()] html = html[match.end():] match = body_end_re.search(html) if match: post = html[match.start():] html = html[:match.start()] return pre, html, post def annotate(options, args): print("Not yet implemented") sys.exit(1)
Save