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