From 9e5627d805b66a086723a63907b414d9f89af3e8 Mon Sep 17 00:00:00 2001 From: ed Date: Sun, 17 May 2020 16:44:17 +0200 Subject: [PATCH] drop opus audio support on old iOS versions --- copyparty/web/browser.html | 2 +- copyparty/web/browser.js | 29 ++++++------- copyparty/web/mde.html | 2 +- scripts/deps-docker/Dockerfile | 75 ++++------------------------------ 4 files changed, 22 insertions(+), 86 deletions(-) diff --git a/copyparty/web/browser.html b/copyparty/web/browser.html index 117a6799..b49598a6 100644 --- a/copyparty/web/browser.html +++ b/copyparty/web/browser.html @@ -33,7 +33,7 @@ File Name - File Size + File Size Date diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 54c9ad90..05f8bcd6 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -106,7 +106,9 @@ function makeSortable(table) { if (th) i = th.length; else return; // if no `` then do nothing while (--i >= 0) (function (i) { - th[i].addEventListener('click', function () { sortTable(table, i) }); + th[i].onclick = function () { + sortTable(table, i); + }; }(i)); } makeSortable(o('files')); @@ -123,7 +125,6 @@ var mp = (function () { 'cover_url': '' }; var re_audio = new RegExp('\.(opus|ogg|m4a|aac|mp3|wav|flac)$', 'i'); - var re_cover = new RegExp('^(cover|folder|cd|front|back)\.(jpe?g|png|gif)$', 'i'); var trs = document.getElementById('files').getElementsByTagName('tbody')[0].getElementsByTagName('tr'); for (var a = 0, aa = trs.length; a < aa; a++) { @@ -414,15 +415,6 @@ var vbar = (function () { var x = e.clientX - rect.left; var mul = x * 1.0 / rect.width; - /* - dbg(//Math.round(rect.width) + 'x' + Math.round(rect.height) + '+' + - //Math.round(rect.left) + '+' + Math.round(rect.top) + ', ' + - //Math.round(e.clientX) + 'x' + Math.round(e.clientY) + ', ' + - Math.round(mp.au.currentTime * 10) / 10 + ', ' + - Math.round(mp.au.duration * 10) / 10 + '*' + - Math.round(mul * 1000) / 1000); - */ - mp.au.currentTime = mp.au.duration * mul; if (mp.au === mp.au_native) @@ -483,8 +475,14 @@ function setclass(id, clas) { } -var iOS = !!navigator.platform && - /iPad|iPhone|iPod/.test(navigator.platform); +var need_ogv = true; +try { + need_ogv = new Audio().canPlayType('audio/ogg; codecs=opus') !== 'probably'; + + if (/ Edge\//.exec(navigator.userAgent + '')) + need_ogv = true; +} +catch (ex) { } // plays the tid'th audio file on the page @@ -507,7 +505,7 @@ function play(tid, call_depth) { var hack_attempt_play = true; var url = mp.tracks[tid]; - if (iOS && /\.(ogg|opus)$/i.test(url)) { + if (need_ogv && /\.(ogg|opus)$/i.test(url)) { if (mp.au_ogvjs) { mp.au = mp.au_ogvjs; } @@ -594,7 +592,6 @@ function evau_error(e) { err += '\n\nFile: «' + decodeURIComponent(eplaya.src.split('/').slice(-1)[0]) + '»'; alert(err); - play(eplaya.tid + 1); } @@ -613,7 +610,7 @@ function show_modal(html) { function unblocked() { var dom = o('blocked'); if (dom) - dom.remove(); + dom.parentNode.removeChild(dom); } diff --git a/copyparty/web/mde.html b/copyparty/web/mde.html index 99471246..a111a23b 100644 --- a/copyparty/web/mde.html +++ b/copyparty/web/mde.html @@ -39,6 +39,6 @@ var lightswitch = (function () { })(); - + diff --git a/scripts/deps-docker/Dockerfile b/scripts/deps-docker/Dockerfile index 25964cd3..0d39a70d 100644 --- a/scripts/deps-docker/Dockerfile +++ b/scripts/deps-docker/Dockerfile @@ -42,21 +42,6 @@ RUN mkdir -p /z/dist/no-pk \ && tar -xf zopfli.tgz -# uncomment if you wanna test the abandoned markdown converters -#ENV build_abandoned=1 - - -RUN [ $build_abandoned ] || exit 0; \ - git clone --depth 1 --branch $ver_showdown https://github.com/showdownjs/showdown/ \ - && wget https://github.com/markdown-it/markdown-it/archive/$ver_markdownit.tar.gz -O markdownit.tgz \ - && (cd showdown \ - && npm install \ - && npm i grunt -g ) \ - && (tar -xf markdownit.tgz \ - && cd markdown-it-$ver_markdownit \ - && npm install ) - - # build fonttools (which needs zopfli) RUN tar -xf zopfli.tgz \ && cd zopfli* \ @@ -82,21 +67,22 @@ RUN cd ogvjs-$ver_ogvjs \ && cp -pv \ ogv.js \ ogv-worker-audio.js \ - ogv-demuxer-ogg.js \ ogv-demuxer-ogg-wasm.js \ ogv-demuxer-ogg-wasm.wasm \ - ogv-demuxer-webm.js \ ogv-demuxer-webm-wasm.js \ ogv-demuxer-webm-wasm.wasm \ - ogv-decoder-audio-opus.js \ ogv-decoder-audio-opus-wasm.js \ ogv-decoder-audio-opus-wasm.wasm \ - ogv-decoder-audio-vorbis.js \ ogv-decoder-audio-vorbis-wasm.js \ ogv-decoder-audio-vorbis-wasm.wasm \ - dynamicaudio.swf \ /z/dist +# ogv-demuxer-ogg.js \ +# ogv-demuxer-webm.js \ +# ogv-decoder-audio-opus.js \ +# ogv-decoder-audio-vorbis.js \ +# dynamicaudio.swf \ + # build marked COPY marked.patch /z/ @@ -135,54 +121,7 @@ RUN cd easy-markdown-editor-$ver_mde \ && patch -p1 < /z/easymde-ln.patch \ && gulp \ && cp -pv dist/easymde.min.css /z/dist/easymde.css \ - && cp -pv dist/easymde.min.js /z/dist/easymde.js \ - && sed -ri '/pipe.terser/d; /cleanCSS/d' gulpfile.js \ - && gulp \ - && cp -pv dist/easymde.min.css /z/dist/easymde.full.css \ - && cp -pv dist/easymde.min.js /z/dist/easymde.full.js - - -# build showdown (abandoned; disabled by default) -COPY showdown.patch /z/ -RUN [ $build_abandoned ] || exit 0; \ - cd showdown \ - && rm -rf bin dist \ -# # remove ellipsis plugin \ - && rm \ - src/subParsers/ellipsis.js \ - test/cases/ellipsis* \ -# # remove html-to-md converter \ - && rm \ - test/node/testsuite.makemd.js \ - test/node/showdown.Converter.makeMarkdown.js \ -# # remove emojis \ - && rm src/subParsers/emoji.js \ - && awk '/^showdown.helper.emojis/ {o=1} !o; /^\}/ {o=0}' \ - >f