Skip to content

Commit

Permalink
get rid of brotli due to poor support; closes #73
Browse files Browse the repository at this point in the history
some reverse-proxies expect plaintext replies, and
we don't have a brotli decompressor to satisfy this

additionally, because brotli is https-gated (thx google),
it was already an impractical mess anyways

the sfx is now 7 KiB larger
  • Loading branch information
9001 committed Feb 24, 2024
1 parent e558260 commit ac96fd9
Show file tree
Hide file tree
Showing 7 changed files with 12 additions and 34 deletions.
20 changes: 5 additions & 15 deletions copyparty/httpcli.py
Original file line number Diff line number Diff line change
Expand Up @@ -2827,11 +2827,11 @@ def tx_file(self, req_path: str) -> bool:
logtail = ""

#
# if request is for foo.js, check if we have foo.js.{gz,br}
# if request is for foo.js, check if we have foo.js.gz

file_ts = 0.0
editions: dict[str, tuple[str, int]] = {}
for ext in ["", ".gz", ".br"]:
for ext in ("", ".gz"):
try:
fs_path = req_path + ext
st = bos.stat(fs_path)
Expand Down Expand Up @@ -2876,12 +2876,7 @@ def tx_file(self, req_path: str) -> bool:
x.strip()
for x in self.headers.get("accept-encoding", "").lower().split(",")
]
if ".br" in editions and "br" in supported_editions:
is_compressed = True
selected_edition = ".br"
fs_path, file_sz = editions[".br"]
self.out_headers["Content-Encoding"] = "br"
elif ".gz" in editions:
if ".gz" in editions:
is_compressed = True
selected_edition = ".gz"
fs_path, file_sz = editions[".gz"]
Expand All @@ -2897,13 +2892,8 @@ def tx_file(self, req_path: str) -> bool:
is_compressed = False
selected_edition = "plain"

try:
fs_path, file_sz = editions[selected_edition]
logmsg += "{} ".format(selected_edition.lstrip("."))
except:
# client is old and we only have .br
# (could make brotli a dep to fix this but it's not worth)
raise Pebkac(404)
fs_path, file_sz = editions[selected_edition]
logmsg += "{} ".format(selected_edition.lstrip("."))

#
# partial
Expand Down
2 changes: 1 addition & 1 deletion copyparty/httpsrv.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ def _build_statics(self) -> None:
for fn in df:
ap = absreal(os.path.join(dp, fn))
self.statics.add(ap)
if ap.endswith(".gz") or ap.endswith(".br"):
if ap.endswith(".gz"):
self.statics.add(ap[:-3])

def set_netdevs(self, netdevs: dict[str, Netdev]) -> None:
Expand Down
7 changes: 0 additions & 7 deletions copyparty/web/md.js
Original file line number Diff line number Diff line change
Expand Up @@ -512,13 +512,6 @@ dom_navtgl.onclick = function () {
redraw();
};

if (!HTTPS && location.hostname != '127.0.0.1') try {
ebi('edit2').onclick = function (e) {
toast.err(0, "the fancy editor is only available over https");
return ev(e);
}
} catch (ex) { }

if (sread('hidenav') == 1)
dom_navtgl.onclick();

Expand Down
2 changes: 1 addition & 1 deletion docs/devnotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ if you don't need all the features, you can repack the sfx and save a bunch of s
* `269k` after `./scripts/make-sfx.sh re no-cm no-hl`

the features you can opt to drop are
* `cm`/easymde, the "fancy" markdown editor, saves ~82k
* `cm`/easymde, the "fancy" markdown editor, saves ~89k
* `hl`, prism, the syntax hilighter, saves ~41k
* `fnt`, source-code-pro, the monospace font, saves ~9k
* `dd`, the custom mouse cursor for the media player tray tab, saves ~2k
Expand Down
5 changes: 2 additions & 3 deletions scripts/deps-docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ENV ver_asmcrypto=c72492f4a66e17a0e5dd8ad7874de354f3ccdaa5 \
# the scp url is regular latin from https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap
RUN mkdir -p /z/dist/no-pk \
&& wget https://fonts.gstatic.com/s/sourcecodepro/v11/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 -O scp.woff2 \
&& apk add cmake make g++ git bash npm patch wget tar pigz brotli gzip unzip python3 python3-dev brotli py3-brotli \
&& apk add cmake make g++ git bash npm patch wget tar pigz brotli gzip unzip python3 python3-dev py3-brotli \
&& rm -f /usr/lib/python3*/EXTERNALLY-MANAGED \
&& wget https://github.com/openpgpjs/asmcrypto.js/archive/$ver_asmcrypto.tar.gz -O asmcrypto.tgz \
&& wget https://github.com/markedjs/marked/archive/v$ver_marked.tar.gz -O marked.tgz \
Expand Down Expand Up @@ -143,9 +143,8 @@ RUN ./genprism.sh $ver_prism


# compress
COPY brotli.makefile zopfli.makefile /z/dist/
COPY zopfli.makefile /z/dist/
RUN cd /z/dist \
&& make -j$(nproc) -f brotli.makefile \
&& make -j$(nproc) -f zopfli.makefile \
&& rm *.makefile \
&& mv no-pk/* . \
Expand Down
4 changes: 0 additions & 4 deletions scripts/deps-docker/brotli.makefile

This file was deleted.

6 changes: 3 additions & 3 deletions scripts/make-sfx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ help() { exec cat <<'EOF'
# _____________________________________________________________________
# web features:
#
# `no-cm` saves ~82k by removing easymde/codemirror
# `no-cm` saves ~89k by removing easymde/codemirror
# (the fancy markdown editor)
#
# `no-hl` saves ~41k by removing syntax hilighting in the text viewer
Expand Down Expand Up @@ -406,7 +406,7 @@ find -type f -name ._\* | while IFS= read -r f; do cmp <(printf '\x00\x05\x16')

rm -f copyparty/web/deps/*.full.* copyparty/web/dbg-* copyparty/web/Makefile

find copyparty | LC_ALL=C sort | sed -r 's/\.(gz|br)$//;s/$/,/' > have
find copyparty | LC_ALL=C sort | sed -r 's/\.gz$//;s/$/,/' > have
cat have | while IFS= read -r x; do
grep -qF -- "$x" ../scripts/sfx.ls || {
echo "unexpected file: $x"
Expand Down Expand Up @@ -603,7 +603,7 @@ sed -r 's/(.*)\.(.*)/\2 \1/' | LC_ALL=C sort |
sed -r 's/([^ ]*) (.*)/\2.\1/' | grep -vE '/list1?$' > list1

for n in {1..50}; do
(grep -vE '\.(gz|br)$' list1; grep -E '\.(gz|br)$' list1 | (shuf||gshuf) ) >list || true
(grep -vE '\.gz$' list1; grep -E '\.gz$' list1 | (shuf||gshuf) ) >list || true
s=$( (sha1sum||shasum) < list | cut -c-16)
grep -q $s "$zdir/h" 2>/dev/null && continue
echo $s >> "$zdir/h"
Expand Down

0 comments on commit ac96fd9

Please sign in to comment.