diff --git a/scripts/help2html.py b/scripts/help2html.py new file mode 100755 index 00000000..314c17b8 --- /dev/null +++ b/scripts/help2html.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 + +import re +import subprocess as sp + + +# to convert the copyparty --help to html, run this in xfce4-terminal @ 140x43: +_ = r"""" +echo; for a in '' -accounts -flags -handlers -hooks -urlform -exp -ls -dbd -pwhash -zm; do +./copyparty-sfx.py --help$a 2>/dev/null; printf '\n\n\n%0139d\n\n\n'; done # xfce4-terminal @ 140x43 +""" +# click [edit] => [select all] +# click [edit] => [copy as html] +# and then run this script + + +def readclip(): + cmds = [ + "xsel -ob", + "xclip -selection CLIPBOARD -o", + "pbpaste", + ] + for cmd in cmds: + try: + return sp.check_output(cmd.split()).decode("utf-8") + except: + pass + + +def cnv(src): + yield '
' + skip_sfx = False + in_sfx = 0 + in_salt = 0 + + while True: + ln = next(src) + if ""): + ln = "" + ln + yield ln + break + + for ln in src: + ln = ln.rstrip() + if re.search(r"^]+>copyparty v[0-9]", ln): + in_sfx = 3 + if in_sfx: + in_sfx -= 1 + if not skip_sfx: + yield ln + continue + if '">uuid:' in ln: + ln = re.sub(r">uuid:[0-9a-f-]{36}<", ">autogenerated<", ln) + if "-salt SALT" in ln: + in_salt = 3 + if in_salt: + in_salt -= 1 + t = ln + ln = re.sub(r">[0-9a-zA-Z/+]{24}<", ">24-character-autogenerated<", ln) + ln = re.sub(r">[0-9a-zA-Z/+]{40}<", ">40-character-autogenerated<", ln) + if t != ln: + in_salt = 0 + ln = ln.replace(">/home/ed/", ">~/") + if ln.startswith("0" * 20): + skip_sfx = True + yield ln + + yield "eof" + + +def main(): + src = readclip() + src = re.split("0{100,200}", src[::-1], 1)[1][::-1] + with open("helptext.html", "wb") as fo: + for ln in cnv(iter(src.split("\n")[:-3])): + fo.write(ln.encode("utf-8") + b"\r\n") + + +if __name__ == "__main__": + main() diff --git a/scripts/help2txt.sh b/scripts/help2txt.sh new file mode 100755 index 00000000..6c8ed8d0 --- /dev/null +++ b/scripts/help2txt.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -e + +( xsel -ob | sed -r ' +s`/home/ed/`~/`; +s/uuid:[0-9a-f-]{36}/autogenerated/; +s/(-salt SALT.*default: )[0-9a-zA-Z/+]{24}\)/\124-character-autogenerated)/; +s/(-salt SALT.*default: )[0-9a-zA-Z/+]{40}\)/\140-character-autogenerated)/; +' | awk ' +/^copyparty/{a=1} !a{next} +/^0{20}/{b=1} b&&/^copyparty v[0-9]+\./{s=3} +s{s-=1;next} 1' | +head -n-6; echo eof ) >helptext.txt +exit 0 + + +# ===================================================================== +# end of script; below is the explanation how to use this: + + +# first open an infinitely wide console (this is why you own an ultrawide) and copypaste this into it: +for a in '' -accounts -flags -handlers -hooks -urlform -exp -ls -dbd -pwhash -zm; do +./copyparty-sfx.py --help$a 2>/dev/null; printf '\n\n\n%0255d\n\n\n'; done + +# then copypaste all of the output by pressing ctrl-shift-a, ctrl-shift-c +# and finally actually run this script which should produce helptext.txt