mirror of
https://github.com/9001/copyparty.git
synced 2025-11-24 07:23:22 -07:00
Merge 83bc8a4df9 into fb9f0441c9
This commit is contained in:
commit
c02e42e78d
25
.github/workflows/codespell.yml
vendored
Normal file
25
.github/workflows/codespell.yml
vendored
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Codespell configuration is within pyproject.toml
|
||||
---
|
||||
name: Codespell
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [hovudstraum]
|
||||
pull_request:
|
||||
branches: [hovudstraum]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
codespell:
|
||||
name: Check for spelling errors
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Annotate locations with typos
|
||||
uses: codespell-project/codespell-problem-matcher@v1
|
||||
- name: Codespell
|
||||
uses: codespell-project/actions-codespell@v2
|
||||
|
|
@ -986,7 +986,7 @@ specify `--shr /foobar` to enable this feature; a toplevel virtual folder named
|
|||
* you can name it whatever, `foobar` is just an example
|
||||
* if you're using config files, put `shr: /foobar` inside the `[global]` section instead
|
||||
|
||||
users can delete their own shares in the controlpanel, and a list of privileged users (`--shr-adm`) are allowed to see and/or delet any share on the server
|
||||
users can delete their own shares in the controlpanel, and a list of privileged users (`--shr-adm`) are allowed to see and/or delete any share on the server
|
||||
|
||||
after a share has expired, it remains visible in the controlpanel for `--shr-rt` minutes (default is 1 day), and the owner can revive it by extending the expiration time there
|
||||
|
||||
|
|
@ -2689,7 +2689,7 @@ sync folders to/from copyparty
|
|||
|
||||
NOTE: full bidirectional sync, like what [nextcloud](https://docs.nextcloud.com/server/latest/user_manual/sv/files/desktop_mobile_sync.html) and [syncthing](https://syncthing.net/) does, will never be supported! Only single-direction sync (server-to-client, or client-to-server) is possible with copyparty
|
||||
|
||||
* if you want bidirectional sync, then copyparty and syncthing *should* be entirely safe to combine; they should be able to collaborate on the same folders without causing any trouble for eachother. Many people do this, and there have been no issues so far. But, if you *do* encounter any problems, please [file a copyparty bug](https://github.com/9001/copyparty/issues/new/choose) and I'll try to help -- just keep in mind I've never used syncthing before :-)
|
||||
* if you want bidirectional sync, then copyparty and syncthing *should* be entirely safe to combine; they should be able to collaborate on the same folders without causing any trouble for each other. Many people do this, and there have been no issues so far. But, if you *do* encounter any problems, please [file a copyparty bug](https://github.com/9001/copyparty/issues/new/choose) and I'll try to help -- just keep in mind I've never used syncthing before :-)
|
||||
|
||||
the commandline uploader [u2c.py](https://github.com/9001/copyparty/tree/hovudstraum/bin#u2cpy) with `--dr` is the best way to sync a folder to copyparty; verifies checksums and does files in parallel, and deletes unexpected files on the server after upload has finished which makes file-renames really cheap (it'll rename serverside and skip uploading)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from copyparty.util import fsenc, runcmd
|
|||
uses exiftool to geotag images based on embedded gps coordinates in exif data
|
||||
|
||||
adds four new metadata keys:
|
||||
.gps_lat = latitute
|
||||
.gps_lat = latitude
|
||||
.gps_lon = longitude
|
||||
.masl = meters above sea level
|
||||
city = "city, subregion, region"
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ def open_url(txt):
|
|||
for _ in range(20):
|
||||
sp.call(["xdotool", "key", "ctrl+w"]) # closes the open tab correctly
|
||||
# else:
|
||||
# sp.call(["xdotool", "getactivewindow", "windowminimize"]) # minimizes the focused windo
|
||||
# sp.call(["xdotool", "getactivewindow", "windowminimize"]) # minimizes the focused window
|
||||
|
||||
# mpv is probably smart enough to use streamlink automatically
|
||||
if try_mpv(txt):
|
||||
|
|
@ -166,7 +166,7 @@ def open_url(txt):
|
|||
# nope,
|
||||
# close any error messages:
|
||||
sp.call(["xdotool", "search", "--name", "Error", "windowclose"])
|
||||
# sp.call(["xdotool", "key", "ctrl+alt+d"]) # doesnt work at all
|
||||
# sp.call(["xdotool", "key", "ctrl+alt+d"]) # does not work at all
|
||||
# sp.call(["xdotool", "keydown", "--delay", "100", "ctrl+alt+d"])
|
||||
# sp.call(["xdotool", "keyup", "ctrl+alt+d"])
|
||||
sp.call(["xdg-open", txt])
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
# then create a shortcut to that bat-file and move the shortcut here:
|
||||
# %appdata%\Microsoft\Windows\Start Menu\Programs\Startup
|
||||
#
|
||||
# and now this will autorun on bootup
|
||||
# and now this will autorun on boot-up
|
||||
|
||||
|
||||
Add-Type -TypeDefinition @"
|
||||
|
|
|
|||
|
|
@ -363,7 +363,7 @@ in
|
|||
name: value:
|
||||
lib.attrsets.nameValuePair (value.path) {
|
||||
d = {
|
||||
#: in front of things means it wont change it if the directory already exists.
|
||||
#: in front of things means it won't change it if the directory already exists.
|
||||
group = ":${cfg.group}";
|
||||
user = ":${cfg.user}";
|
||||
mode = ":${
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ var hambagas = [
|
|||
"https://www.youtube.com/watch?v=pFA3KGp4GuU"
|
||||
];
|
||||
|
||||
// keybaord,
|
||||
// keyboard,
|
||||
// onscreen keyboard by @steinuil
|
||||
function initKeybaord(BASE_URL, HAMBAGA, consoleLog, consoleError) {
|
||||
document.querySelector('.keybaord-container').innerHTML = `
|
||||
|
|
@ -373,7 +373,7 @@ function initKeybaord(BASE_URL, HAMBAGA, consoleLog, consoleError) {
|
|||
}
|
||||
|
||||
|
||||
// keybaord integration
|
||||
// keyboard integration
|
||||
(function () {
|
||||
var o = mknod('div');
|
||||
clmod(o, 'keybaord-container', 1);
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ def set_pagesize(db_path):
|
|||
|
||||
# https://www.sqlite.org/pragma.html#pragma_page_size
|
||||
# `- disable wal; set pagesize; vacuum
|
||||
# (copyparty will reenable wal if necessary)
|
||||
# (copyparty will re-enable wal if necessary)
|
||||
|
||||
with sqlite3.connect(db_path) as db:
|
||||
db.execute("pragma journal_mode=delete")
|
||||
|
|
|
|||
|
|
@ -1712,7 +1712,7 @@ def add_db_general(ap, hcores):
|
|||
ap2.add_argument("--no-idx", metavar="PTN", type=u, default=noidx, help="regex: disable indexing of matching absolute-filesystem-paths during e2ds folder scan (must be specified as one big regex, not multiple times) (volflag=noidx)")
|
||||
ap2.add_argument("--no-dirsz", action="store_true", help="do not show total recursive size of folders in listings, show inode size instead; slightly faster (volflag=nodirsz)")
|
||||
ap2.add_argument("--re-dirsz", action="store_true", help="if the directory-sizes in the UI are bonkers, use this along with \033[33m-e2dsa\033[0m to rebuild the index from scratch")
|
||||
ap2.add_argument("--no-dhash", action="store_true", help="disable rescan acceleration; do full database integrity check -- makes the db ~5%% smaller and bootup/rescans 3~10x slower")
|
||||
ap2.add_argument("--no-dhash", action="store_true", help="disable rescan acceleration; do full database integrity check -- makes the db ~5%% smaller and boot-up/rescans 3~10x slower")
|
||||
ap2.add_argument("--re-dhash", action="store_true", help="force a cache rebuild on startup; enable this once if it gets out of sync (should never be necessary)")
|
||||
ap2.add_argument("--no-forget", action="store_true", help="never forget indexed files, even when deleted from disk -- makes it impossible to ever upload the same file twice -- only useful for offloading uploads to a cloud service or something (volflag=noforget)")
|
||||
ap2.add_argument("--forget-ip", metavar="MIN", type=int, default=0, help="remove uploader-IP from database (and make unpost impossible) \033[33mMIN\033[0m minutes after upload, for GDPR reasons. Default [\033[32m0\033[0m] is never-forget. [\033[32m1440\033[0m]=day, [\033[32m10080\033[0m]=week, [\033[32m43200\033[0m]=month. (volflag=forget_ip)")
|
||||
|
|
|
|||
|
|
@ -2657,7 +2657,7 @@ class AuthSrv(object):
|
|||
|
||||
for mtp in local_only_mtp:
|
||||
if mtp not in local_mte:
|
||||
t = 'volume "/{}" defines metadata tag "{}", but doesnt use it in "-mte" (or with "cmte" in its volflags)'
|
||||
t = 'volume "/{}" defines metadata tag "{}", but does not use it in "-mte" (or with "cmte" in its volflags)'
|
||||
self.log(t.format(vol.vpath, mtp), 1)
|
||||
errors = True
|
||||
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ def _gen_srv(log: "RootLogger", args, netdevs: dict[str, Netdev]):
|
|||
try:
|
||||
expiry, inf = _read_crt(args, "srv.pem")
|
||||
if "sans" not in inf:
|
||||
raise Exception("no useable cert found")
|
||||
raise Exception("no usable cert found")
|
||||
|
||||
expired = time.time() + args.crt_sdays * 60 * 60 * 24 * 0.5 > expiry
|
||||
if expired:
|
||||
|
|
|
|||
|
|
@ -2103,7 +2103,7 @@ class HttpCli(object):
|
|||
oh["Dav"] = "1, 2"
|
||||
oh["Ms-Author-Via"] = "DAV"
|
||||
|
||||
# winxp-webdav doesnt know what 204 is
|
||||
# winxp-webdav does not know what 204 is
|
||||
self.send_headers(0, 200)
|
||||
return True
|
||||
|
||||
|
|
@ -2342,7 +2342,7 @@ class HttpCli(object):
|
|||
open_ka = {"fun": lzma.open, "preset": lv[alg]}
|
||||
open_a = ["wb"]
|
||||
else:
|
||||
self.log("fallthrough? thats a bug", 1)
|
||||
self.log("fallthrough? that's a bug", 1)
|
||||
|
||||
suffix = "-{:.6f}-{}".format(time.time(), self.dip())
|
||||
nameless = not fn
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ class MDNS(MCast):
|
|||
self.build_replies()
|
||||
Daemon(self.send_probes)
|
||||
zf = time.time() + 2
|
||||
self.probing = zf # cant unicast so give everyone an extra sec
|
||||
self.probing = zf # can't unicast so give everyone an extra sec
|
||||
self.unsolicited = [zf, zf + 1, zf + 3, zf + 7] # rfc-8.3
|
||||
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -320,7 +320,7 @@ def parse_ffprobe(
|
|||
if v2 is None or zf > v2:
|
||||
ret[rk] = zf
|
||||
except:
|
||||
# sqlite doesnt care but the code below does
|
||||
# sqlite does not care but the code below does
|
||||
if v1 not in ["N/A"]:
|
||||
ret[rk] = v1
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class Adapter(object):
|
|||
#: `{846EE342-7039-11DE-9D20-806E6F6E6963}`.
|
||||
self.name = name
|
||||
|
||||
#: Human readable name of the adpater. On Linux this
|
||||
#: Human readable name of the adapter. On Linux this
|
||||
#: is currently the same as :attr:`name`. On Windows
|
||||
#: this is the name of the device.
|
||||
self.nice_name = nice_name
|
||||
|
|
|
|||
|
|
@ -1338,7 +1338,7 @@ class SvcHub(object):
|
|||
pass
|
||||
|
||||
self.shutdown()
|
||||
# cant join; eats signals on win10
|
||||
# can't join; eats signals on win10
|
||||
while not self.stopped:
|
||||
time.sleep(0.1)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ def gen_hdr(
|
|||
# infozip-macos: 0100 0000 a481 (spec-ver 1e03) file:644
|
||||
# infozip-macos: 0100 0100 0080 (spec-ver 1e03) file:000
|
||||
# win10-zip: 0000 2000 0000 (spec-ver xx00) FILE_ATTRIBUTE_ARCHIVE
|
||||
ret += b"\x00\x00\x00\x00\xa4\x81" # unx
|
||||
ret += b"\x00\x00\x00\x00\xa4\x81" # unix
|
||||
# ret += b"\x00\x00\x20\x00\x00\x00" # fat
|
||||
|
||||
# 4b local-header-ofs
|
||||
|
|
|
|||
|
|
@ -464,7 +464,7 @@ if (1)
|
|||
"m3u_clip": "m3u playlist now copied to clipboard\n\nyou should create a new textfile named something.m3u and paste the playlist in that document; this will make it playable",
|
||||
|
||||
"gt_vau": "don't show videos, just play the audio\">🎧",
|
||||
"gt_msel": "enable file selection; ctrl-click a file to override$N$N<em>when active: doubleclick a file / folder to open it</em>$N$NHotkey: S\">multiselect",
|
||||
"gt_msel": "enable file selection; ctrl-click a file to override$N$N<em>when active: double-click a file / folder to open it</em>$N$NHotkey: S\">multiselect",
|
||||
"gt_crop": "center-crop thumbnails\">crop",
|
||||
"gt_3x": "hi-res thumbnails\">3x",
|
||||
"gt_zoom": "zoom",
|
||||
|
|
@ -2238,7 +2238,7 @@ var vbar = (function () {
|
|||
|
||||
setTimeout(function () {
|
||||
if (IPHONE && mp.au && mul < 0.9 && mp.au.volume == 1)
|
||||
toast.inf(6, 'volume doesnt work because <a href="https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW11" target="_blank">apple says no</a>');
|
||||
toast.inf(6, 'volume does not work because <a href="https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW11" target="_blank">apple says no</a>');
|
||||
}, 1);
|
||||
}
|
||||
can.onmousedown = function (e) {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<a id="save" href="{{ arg_base }}edit" tt="Hotkey: ctrl-s">save</a>
|
||||
<a id="sbs" href="#" tt="editor and preview side by side">sbs</a>
|
||||
<a id="nsbs" href="#" tt="switch between editor and preview$NHotkey: ctrl-e">editor</a>
|
||||
<div id="toolsbox">
|
||||
<div id="toolbox">
|
||||
<a id="tools" href="#">tools</a>
|
||||
<a id="fmt_table" href="#">prettify table (ctrl-k)</a>
|
||||
<a id="iter_uni" href="#">non-ascii: iterate (ctrl-u)</a>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<a id="xpnd" href="#">files</a>
|
||||
<a href="{{ r }}/?h">control-panel</a>
|
||||
|
||||
<span>axs = perms (read,write,move,delet)</span>
|
||||
<span>axs = perms (read,write,move,delete)</span>
|
||||
<span>nf = numFiles (0=dir)</span>
|
||||
<span>min/hrs = time left</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -2294,7 +2294,7 @@ function xhrchk(xhr, prefix, e404, lvl, tag) {
|
|||
var errtxt = ((xhr.response && xhr.response.err) || xhr.responseText) || '',
|
||||
suf = '',
|
||||
fun = toast[lvl || 'err'],
|
||||
is_cf = /[Cc]loud[f]lare|>Just a mo[m]ent|#cf-b[u]bbles|Chec[k]ing your br[o]wser|\/chall[e]nge-platform|"chall[e]nge-error|nable Ja[v]aScript and cook/.test(errtxt);
|
||||
is_cf = /[Cc]loud[f]lare|>Just a mo[m]ent|#cf-b[u]bbles|Chec[k]ing your br[o]wser|\/chall[e]nge-platform|"chall[e]nge-error|nable Ja[v]aScript and cook/.test(errtxt); # codespell:ignore
|
||||
|
||||
if (errtxt.startsWith('<pre>'))
|
||||
suf = '\n\nerror-details: «' + unpre(errtxt).split('\n')[0].trim() + '»';
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
* does not include the smb-server, so antivirus doesn't think it's malware 7f5810f1
|
||||
* english-only, because antivirus apparently hates certain translations too 7f5810f1
|
||||
* renamed the webdav-config `.bat` to `.txt` because clearly only one of those are "dangerous" b624a387
|
||||
* show volumes with permssion `h` in the navpane fff7291d
|
||||
* show volumes with permission `h` in the navpane fff7291d
|
||||
* #937 global-option `--notooltips` to default-disable tooltips a325353b
|
||||
|
||||
## 🩹 bugfixes
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
* audioplayer: show embedded coverart as fallback for cover.jpg in OS widgets 9746b4e2
|
||||
* #928 option to [hide certain ui-elements](https://github.com/9001/copyparty/tree/hovudstraum/docs/rice#hide-ui-elements), either with volflags or url-params 98da5cc5
|
||||
* #911 users can now avoid autoban according to permissions 6f02812a
|
||||
* verbosity and permssion options for `?stack` 677fd8ee
|
||||
* verbosity and permission options for `?stack` 677fd8ee
|
||||
* default is now admin-only; previously it was "admin or read+write"
|
||||
|
||||
## 🩹 bugfixes
|
||||
|
|
@ -452,12 +452,12 @@
|
|||
* #567 .raw image thumbnails (thx @ar-nelson!) 0177a9b4
|
||||
* available in docker-images `iv` and `dj`
|
||||
* #561 epub thumbnails (thx @Scotsguy!) 9435e6b2
|
||||
* #252 music thumbnails use embdded coverart if available 98d117b8
|
||||
* #252 music thumbnails use embedded coverart if available 98d117b8
|
||||
* thumbnails folder `.hist/th` must be deleted to take effect
|
||||
* #530 show username of uploaders in file listings; requires `a` (admin) permission 4df033ec
|
||||
* #604 a new group `@acct` which automatically contains all known usernames 68907eaf
|
||||
* controlpanel has a dedicated "logout all sessions" button, similar to the logout-link in the browser f4a3fba2
|
||||
* #397 accounts can be restricted to certian IPs 62e072a2
|
||||
* #397 accounts can be restricted to certain IPs 62e072a2
|
||||
* #504 automatic login through tailscale auth a4649d1e
|
||||
* #533 sticky qr-code with `--qr-pin 1` 1ebe06f5
|
||||
* #572 button to abort copy/move 715d374e
|
||||
|
|
@ -519,7 +519,7 @@
|
|||
* if you have enabled password hashing (`ah-alg: argon2` or similar) then you will need to hash your passwords again after enabling usernames, hashing them as `username:password:`
|
||||
* #468 add Greek translation (thx @chamdim!) 50f46187 392abd06
|
||||
* #471 add Czech translation (thx @kubakubakuba!) c9556583
|
||||
* #515 support systemd socket acivation (thx @mati1210!) 9b9d2a92
|
||||
* #515 support systemd socket activation (thx @mati1210!) 9b9d2a92
|
||||
* #523 add QR-code to the connectpage bcc3b156
|
||||
* #513 optional EOL-conversion for texteditor 8b31ed88
|
||||
* controlpanel refresh-button now toggles automatic refresh 7ae84dea
|
||||
|
|
@ -1081,7 +1081,7 @@ get the party going anywhere, anytime, no OS required! [download flashdrive imag
|
|||
|
||||
* option to specify max-size for download-as-zip/tar 494179bd 0a33336d
|
||||
* either the total download size (`--zipmaxs 500M`), and/or max number of files (`--zipmaxn 9k`)
|
||||
* applies to all uesrs by default; can also ignore limits for authorized users (`--zipmaxu`)
|
||||
* applies to all users by default; can also ignore limits for authorized users (`--zipmaxu`)
|
||||
* errormessage can be customized with `--zipmaxt "winter is coming... but this download isn't"`
|
||||
* [appledoubles](https://a.ocv.me/pub/stuff/?doc=appledoubles-and-friends.txt) are detected and skipped when uploading with the browser-UI 78208405
|
||||
* IdP-volumes can be filtered by group 9c2c4237
|
||||
|
|
@ -1536,7 +1536,7 @@ this release includes a build of [copyparty-winpe64.exe](https://github.com/9001
|
|||
* webdav: support listing unmapped root with infinite recursion (Depth:0) 21a3f369
|
||||
* embed current sort config into media URLs (gallery/music) 0f257c93 4cfdc4c5 01670827
|
||||
* ensures that anyone clicking your link will see the files in the same order as you
|
||||
* can be confgured serverside (`--hsortn`, volflag `hsortn`) and clientside (`#sort` in settings)
|
||||
* can be configured serverside (`--hsortn`, volflag `hsortn`) and clientside (`#sort` in settings)
|
||||
* URL and UI options to disable checksum calculation of PUT, bup, basic uploads c5a000d2
|
||||
* also allows [choosing either md5, sha1, sha256, or blake2](https://github.com/9001/copyparty/blob/hovudstraum/docs/devnotes.md#write) instead of the default sha512
|
||||
* can give uploads a nice speed boost when copyparty is running on a potato
|
||||
|
|
@ -2729,7 +2729,7 @@ probably last release before v1.10 (IdP), please watch warmly
|
|||
* now possible to POST files without having to set the `act: bput` multipart field 9bc09ce9
|
||||
* mainly to support [igloo irc](https://github.com/9001/copyparty#client-examples) and other simplistic upload clients
|
||||
* try to point the linux oom-killer at FFmpeg so it doesn't kill innocent processes instead dc8e621d
|
||||
* only works if copyparty has acces to /proc, so not in prisonparty, and maybe not in docker (todo)
|
||||
* only works if copyparty has access to /proc, so not in prisonparty, and maybe not in docker (todo)
|
||||
* UX:
|
||||
* do another search immediately if a search-filter gets unchecked a4239a46
|
||||
* several ie11 fixes (keyboard hotkeys and a working text editor) 2fd2c6b9
|
||||
|
|
@ -3049,7 +3049,7 @@ just adding requested features, nothing important
|
|||
* `--no-crop` and the `nocrop` volflag now sets the default value of this instead of forcing the setting
|
||||
* thumbnail cleanup is now more granular, cleaning full-jpg separately from cropped-webp for example
|
||||
* set default sort order with `--sort` or volflag `sort`
|
||||
* one or more comma-separated values; `tags/Cirle,tags/.tn,tags/Artist,tags/Title,href`
|
||||
* one or more comma-separated values; `tags/Circle,tags/.tn,tags/Artist,tags/Title,href`
|
||||
* see the column header tooltips in the browser to know what names (`id`) to use
|
||||
* prefix a column name with `-` for descending sort
|
||||
* specifying a sort order in the client will override all server-defined ones
|
||||
|
|
@ -3215,7 +3215,7 @@ hello! it's been a while, an entire day even...
|
|||
* iPhones and iPads are now able to...
|
||||
* 9986136d play entire albums while the screen is off without the music randomly stopping
|
||||
* apple keeps breaking AudioContext in new and interesting ways; time to give up (no more equalizer)
|
||||
* 1c0d9789 perform search queries and execude js code
|
||||
* 1c0d9789 perform search queries and execute js code
|
||||
* by translating [smart-quotes](https://stackoverflow.com/questions/48678359/ios-11-safari-html-disable-smart-punctuation) into regular `'` and `"` characters
|
||||
* python 3.12 support
|
||||
* technically a bugfix since it was added [a year ago](https://github.com/9001/copyparty/commit/32e22dfe) way before the first py3.12 alpha was released but turns out i botched it, oh well
|
||||
|
|
@ -3699,7 +3699,7 @@ don't get excited! nothing new and revolutionary, but `xvol` and `xdev` changed
|
|||
|
||||
## bugfixes
|
||||
* more sqlite query-planner twiddling
|
||||
* deleting files is MUCH faster now, and uploads / bootup might be a bit better too
|
||||
* deleting files is MUCH faster now, and uploads / boot-up might be a bit better too
|
||||
* webdav optimizations / compliance
|
||||
* should make some webdav clients run faster than before
|
||||
* in very related news, the webdav-client in [rclone](https://github.com/rclone/rclone/) v1.63 ([currently beta](https://beta.rclone.org/?filter=latest)) will be ***FAST!***
|
||||
|
|
@ -4054,7 +4054,7 @@ hello from warsaw airport (goodbye japan ;_;)
|
|||
* browser ui didn't allow specifying number of threads for file search
|
||||
* dont panic if a digit key is pressed while viewing an image
|
||||
* workaround [linux kernel bug](https://utcc.utoronto.ca/~cks/space/blog/linux/KernelBindBugIn6016) causing log spam on dualstack
|
||||
* ~~related issue (also mostly harmless) will be fixed next relese 01077068~~
|
||||
* ~~related issue (also mostly harmless) will be fixed next release 01077068~~
|
||||
* they fixed it in linux 6.1 so these workarounds will be gone too
|
||||
|
||||
|
||||
|
|
@ -4199,7 +4199,7 @@ named after [that other thing](https://en.wikipedia.org/wiki/Tower_of_Babel), no
|
|||
* display a server [qr-code](https://github.com/9001/copyparty#qr-code) [(screenshot)](https://user-images.githubusercontent.com/241032/194728533-6f00849b-c6ac-43c6-9359-83e454d11e00.png) on startup
|
||||
* primarily for running copyparty on a phone and accessing it from another
|
||||
* optionally specify a path or password with `--qrl lootbox/?pw=hunter2`
|
||||
* uses the server's exteral ip (default route) unless `--qri` specifies a domain / ip-prefix
|
||||
* uses the server's external ip (default route) unless `--qri` specifies a domain / ip-prefix
|
||||
* classic cp437 `▄` `▀` for space efficiency; some misbehaving terminals / fonts need `--qrz 2`
|
||||
* new permission `G` returns the filekey of uploaded files for users without read-access
|
||||
* when combined with permission `w` and volflag `fk`, uploaded files will not be accessible unless the filekey is provided in the url, and `G` provides the filekey to the uploader unlike `g`
|
||||
|
|
@ -4420,7 +4420,7 @@ after two exciting releases, time for something boring
|
|||
|
||||
## new features
|
||||
*but wait, there's more!* not only do you get the [multithreaded file hashing](https://github.com/9001/copyparty/releases/tag/v1.3.11) but also --
|
||||
* faster bootup and volume reindexing when `-e2ds` (file indexing) is enabled
|
||||
* faster boot-up and volume reindexing when `-e2ds` (file indexing) is enabled
|
||||
* `3x` faster is probably the average on most instances; more files per folder = faster
|
||||
* `9x` faster on a 36 TiB zfs music/media nas with `-e2ts` (metadata indexing), dropping from 46sec to 5sec
|
||||
* and `34x` on another zfs box, 63sec -> 1.8sec
|
||||
|
|
@ -5151,7 +5151,7 @@ so far just mild annoyances, nothing bad
|
|||
* last release broke folder listings if you left off the trailing slash in the url
|
||||
* also fix the markdown-editor breadcrumbs which made that very obvious
|
||||
* when running without `-e2d`, don't proactively create symlinks for dupe uploads
|
||||
* prevents the client from accidentally pushing superflous links
|
||||
* prevents the client from accidentally pushing superfluous links
|
||||
* ui didn't update correctly when navigating into a folder with indexing disabled
|
||||
|
||||
# other changes
|
||||
|
|
@ -5268,7 +5268,7 @@ not super important but recommended
|
|||
# new features
|
||||
* navigate into textfiles using hotkeys (`v, k`)
|
||||
* close various UI elements by repeatedly hitting the Escape key
|
||||
* doubleclick files/folders to open them (in the grid view, when multiselect is enabled)
|
||||
* double-click files/folders to open them (in the grid view, when multiselect is enabled)
|
||||
* `--s-wr-slp` sets a delay between socket writes, simulates a slow network during downloads
|
||||
* `--s-wr-sz` sets socket write size, default 256 KiB (was hardcoded 32 KiB until now)
|
||||
* this increase download speed by ~50% (to around 3 GiB/s) when running on windows / where sendfile is unavailable
|
||||
|
|
@ -5337,7 +5337,7 @@ not super important but recommended
|
|||
* supported formats: same as transcoder + `mp3` `ogg` `opus`
|
||||
* needs FFmpeg and FFprobe, can be disabled with `--no-athumb`
|
||||
* **textfile viewer**
|
||||
* with syntax hilighting
|
||||
* with syntax highlighting
|
||||
* can be disabled by deleting `web/deps/prism.js.gz` or building the sfx with `no-hl`
|
||||
* and list of textfiles in the navpane; toggle with hotkey `v`
|
||||
* **navpane context dock**
|
||||
|
|
@ -5427,7 +5427,7 @@ for future releases, you can use a script to automatically grab the latest sfx a
|
|||
* latest gzip edition of the sfx: [v0.11.18](https://github.com/9001/copyparty/releases/tag/v0.11.18)
|
||||
|
||||
## bugfixes
|
||||
* currently-playing song didn't hilight correctly
|
||||
* currently-playing song didn't highlight correctly
|
||||
|
||||
|
||||
|
||||
|
|
@ -5479,7 +5479,7 @@ thx to @Bevinsky and @icxes for the ux suggestions
|
|||
* and `?raw` POST without content-type is now allowed
|
||||
* file-listing is refreshed when all up2k uploads complete
|
||||
* new option `--ign-ebind` to continue startup even if one of the IPs / ports couldn't be listened on
|
||||
* new option `--ign-ebind-all` to run even if copyparty can't receieve any connections at all
|
||||
* new option `--ign-ebind-all` to run even if copyparty can't receive any connections at all
|
||||
* maybe useful for monitoring folders and hashing new files on a timer or something
|
||||
|
||||
## bugfixes
|
||||
|
|
@ -5562,7 +5562,7 @@ thx to @Bevinsky and @icxes for the ux suggestions
|
|||
|
||||
## bugfixes
|
||||
* race-condition initializing the up2k-client when dropping files into the browser and you're not using https
|
||||
* hilight active folder in the navpane even when the browser and copyparty disagrees on how to urlencode
|
||||
* highlight active folder in the navpane even when the browser and copyparty disagrees on how to urlencode
|
||||
* hide prologue/epilogue while search results are open
|
||||
* toasts could redefine css
|
||||
|
||||
|
|
@ -5668,10 +5668,10 @@ thx to @Bevinsky and @icxes for the ux suggestions
|
|||
* loss of access to anon-read/write folders after logging in
|
||||
* affected filesearch, regular searching, and volume listings
|
||||
* more aggressively `no-cache`, preventing cloudflare from eating api calls
|
||||
* after deleteing all files inside a folder, don't delete the folder itself
|
||||
* after deleting all files inside a folder, don't delete the folder itself
|
||||
* was intended behavior but fairly confusing
|
||||
* don't reshow tooltips when alt-tabbing
|
||||
* accessibility: always hilight focused things
|
||||
* accessibility: always highlight focused things
|
||||
* markdown-editor modification poller doesn't cause performance issues after having a document open for several months
|
||||
* mtp plugins [audio-bpm.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/audio-bpm.py) and [audio-key.py](https://github.com/9001/copyparty/blob/hovudstraum/bin/mtag/audio-key.py) explicitly asks for just the first audio stream, which prevents ffmpeg from transcoding video (nice)
|
||||
|
||||
|
|
@ -6006,7 +6006,7 @@ note: `copyparty-sfx.py` is https://github.com/9001/copyparty/commit/5955940b wh
|
|||
* image-thumbnails: apply rotation hints from exif
|
||||
* image-thumbnails: higher quality AND slightly smaller
|
||||
* fix loss of detail on resize
|
||||
* argument `--th-mt` specifices number of cores to use for thumbnailing
|
||||
* argument `--th-mt` specifies number of cores to use for thumbnailing
|
||||
* default is 0 which means all cores
|
||||
|
||||
## bugfixes
|
||||
|
|
@ -6616,7 +6616,7 @@ all these changelogs are sorted by importance btw so here's the least important
|
|||
|
||||
## new features
|
||||
* video player -- click a webm/mp4 in the grid-view to play it
|
||||
* only does formats/codecs supported by your browser for now (thats the foreshadowing part)
|
||||
* only does formats/codecs supported by your browser for now (that's the foreshadowing part)
|
||||
* `--th-clean 0` disables periodic cleanup of the thumbnail cache
|
||||
|
||||
## bugfixes
|
||||
|
|
@ -6793,7 +6793,7 @@ unless the upload was paused for 6 hours or more, it can probably be resumed by
|
|||
|
||||
## new features suggested by kipu
|
||||
* pause uploads by setting `parallel uploads` to `0`
|
||||
* increase max `parallel uploads` to 16 (using +/- buttons) and 64 (by manual text entry) to accomodate sad american internet connections
|
||||
* increase max `parallel uploads` to 16 (using +/- buttons) and 64 (by manual text entry) to accommodate sad american internet connections
|
||||
* also look for `cover.jpg` and `cover.png` as folder thumbnails by default, adjustable with `--th-covers`
|
||||
* change the description in the sfx so the corruption warning is the first plaintext you see
|
||||
|
||||
|
|
@ -6947,7 +6947,7 @@ reason: [v0.11.12](https://github.com/9001/copyparty/releases/tag/v0.11.12) chan
|
|||
|
||||
## new features
|
||||
* much faster filesearch in chrome
|
||||
* skip hidden colums in the /np text
|
||||
* skip hidden columns in the /np text
|
||||
* support cygpaths when pointing to mtag tools
|
||||
|
||||
## bugfixes
|
||||
|
|
@ -7009,10 +7009,10 @@ this release includes [copyparty-sfx-gz.py](https://github.com/9001/copyparty/re
|
|||
* hotkey `b` to toggle breadcrumbs / directory tree sidebar
|
||||
* hotkey `p` is now play/pause
|
||||
* hotkey `m` is now parent-directory
|
||||
* hilight the playing track in gallery mode too
|
||||
* highlight the playing track in gallery mode too
|
||||
* toggle to disable the now-playing clipboard buttons
|
||||
* added lots of tooltips
|
||||
* threw aray the competing tooltip implementations and did a single ok one
|
||||
* threw array the competing tooltip implementations and did a single ok one
|
||||
* more accurate error-messages on upload failures due to filesystem permissions
|
||||
* add another output to the sfx repacker (gzip-compressed python sfx)
|
||||
|
||||
|
|
@ -7060,7 +7060,7 @@ this release includes [copyparty-sfx-gz.py](https://github.com/9001/copyparty/re
|
|||
## new features
|
||||
* media player can now continue into the next folder
|
||||
* eq curve supports both positive and negative values (and scales down to avoid clipping)
|
||||
* browser columns now fully hide when hidden; reenable them in the settings tab
|
||||
* browser columns now fully hide when hidden; re-enable them in the settings tab
|
||||
* other ux tweaks
|
||||
* add some icons
|
||||
* tree control buttons remain visible when scrolling
|
||||
|
|
@ -7184,7 +7184,7 @@ nothing really important happened since [v0.11.6](https://github.com/9001/copypa
|
|||
|
||||
|
||||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
# 2021-0608-0741 `v0.11.10` dont leave me hangin
|
||||
# 2021-0608-0741 `v0.11.10` dont leave me hanging
|
||||
|
||||
* drop-in upgrade, no additional steps since [v0.11.1](https://github.com/9001/copyparty/releases/tag/v0.11.1)
|
||||
* nothing really important since [v0.11.6](https://github.com/9001/copyparty/releases/tag/v0.11.6)
|
||||
|
|
@ -7676,7 +7676,7 @@ not so strong anymore
|
|||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
# 2021-0315-0013 `v0.9.8` the strongest for a while
|
||||
|
||||
nothing more to add or fix for now (barely avoided adding bpm/tempo detection using keyfinder and vamp+qm since thats just too ridiculous)
|
||||
nothing more to add or fix for now (barely avoided adding bpm/tempo detection using keyfinder and vamp+qm since that's just too ridiculous)
|
||||
|
||||
* browser: correct music playback order after sorting
|
||||
* browser: no more glitching on resize in non-tree-mode
|
||||
|
|
@ -7958,7 +7958,7 @@ valvrave-stop.jpg
|
|||
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
||||
# 2020-1117-2258 `v0.5.4` edovprim
|
||||
|
||||
(get it? becasue reverse proxy haha)
|
||||
(get it? because reverse proxy haha)
|
||||
|
||||
* reverse-proxy support
|
||||
* filetype column in the browser
|
||||
|
|
|
|||
|
|
@ -1248,7 +1248,7 @@
|
|||
# if the directory-sizes in the UI are bonkers, use this along with -e2dsa to rebuild the index from scratch
|
||||
re-dirsz
|
||||
|
||||
# disable rescan acceleration; do full database integrity check -- makes the db ~5% smaller and bootup/rescans 3~10x slower
|
||||
# disable rescan acceleration; do full database integrity check -- makes the db ~5% smaller and boot-up/rescans 3~10x slower
|
||||
no-dhash
|
||||
|
||||
# force a cache rebuild on startup; enable this once if it gets out of sync (should never be necessary)
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ hls.on(Hls.Events.MEDIA_ATTACHED, function() {
|
|||
general good news:
|
||||
- doesn't need fixed-length segments; ok to let x264 pick optimal keyframes and slice on those
|
||||
- hls.js polls the m3u8 for new segments, scales the duration accordingly, seeking works great
|
||||
- the sfx will grow by 66 KiB since that's how small hls.js can get, wait thats not good
|
||||
- the sfx will grow by 66 KiB since that's how small hls.js can get, wait that's not good
|
||||
|
||||
# vod, creates m3u8 at the end, fixed keyframes, v bad
|
||||
ffmpeg -hide_banner -threads 0 -flags -global_header -i ..\CowboyBebopMovie-OP1.webm -vf scale=1280:-4,format=yuv420p -ac 2 -c:a libopus -b:a 128k -c:v libx264 -preset slow -crf 24 -maxrate:v 5M -bufsize:v 10M -g 120 -keyint_min 120 -sc_threshold 0 -hls_time 4 -hls_playlist_type vod -hls_segment_filename v%05d.ts v.m3u8
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ grep '"name": "2021-07-18 02-17-59.mkv"' fug.log | head -n 1 | sed -r 's/.*"hash
|
|||
|
||||
|
||||
##
|
||||
## js oneliners
|
||||
## js one-liners
|
||||
|
||||
# get all up2k search result URLs
|
||||
var t=[]; var b=document.location.href.split('#')[0].slice(0, -1); document.querySelectorAll('#u2tab .prog a').forEach((x) => {t.push(b+encodeURI(x.getAttribute("href")))}); console.log(t.join("\n"));
|
||||
|
|
@ -133,7 +133,7 @@ var s=mknod('style');s.innerHTML='*[data-ln]:before {content:attr(data-ln)!impor
|
|||
|
||||
|
||||
##
|
||||
## bash oneliners
|
||||
## bash one-liners
|
||||
|
||||
# get the size and video-id of all youtube vids in folder, assuming filename ends with -id.ext, and create a copyparty search query
|
||||
find -maxdepth 1 -printf '%s %p\n' | sort -n | awk '!/-([0-9a-zA-Z_-]{11})\.(mkv|mp4|webm)$/{next} {sub(/\.[^\.]+$/,"");n=length($0);v=substr($0,n-10);print $1, v}' | tee /dev/stderr | awk 'BEGIN {p="("} {printf("%s name like *-%s.* ",p,$2);p="or"} END {print ")\n"}' | cat >&2
|
||||
|
|
@ -271,7 +271,7 @@ brew install python@2
|
|||
pip install virtualenv
|
||||
|
||||
# fix firefox phantom breakpoints,
|
||||
# suggestions from bugtracker, doesnt work (debugger is not attachable)
|
||||
# suggestions from bugtracker, does not work (debugger is not attachable)
|
||||
devtools settings >> advanced >> enable browser chrome debugging + enable remote debugging
|
||||
burger > developer >> browser toolbox (ctrl-alt-shift-i)
|
||||
iframe btn topright >> chrome://devtools/content/debugger/index.html
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ okay now continue with one of these:
|
|||
* open the `Package Center` and install the [Container Manager package](https://ocv.me/copyparty/doc/pics/dsm72-01.png) by `Docker Inc.`
|
||||
* open the `Container Manager` app
|
||||
* go to the `Registry` tab and search for `copyparty`
|
||||
* [doubleclick copyparty/ac](https://ocv.me/copyparty/doc/pics/dsm72-02.png) and keep the [default `latest`](https://ocv.me/copyparty/doc/pics/dsm72-03.png) when it asks you which tag to use
|
||||
* [double-click copyparty/ac](https://ocv.me/copyparty/doc/pics/dsm72-02.png) and keep the [default `latest`](https://ocv.me/copyparty/doc/pics/dsm72-03.png) when it asks you which tag to use
|
||||
* switch to the `Container` tab and click `Create`
|
||||
* [choose `copyparty/ac:latest`](https://ocv.me/copyparty/doc/pics/dsm72-04.png) and click `Next`
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ if you're using DSM 7.1 or older, then you don't have [Container Manager](https:
|
|||
* open the `Package Center` and install the [Docker package](https://ocv.me/copyparty/doc/pics/dsm71-01.png) by `Docker Inc.`
|
||||
* open the `Docker` app
|
||||
* go to the `Registry` tab and search for `copyparty`
|
||||
* [doubleclick copyparty/ac](https://ocv.me/copyparty/doc/pics/dsm71-02.png) and keep the [default `latest`](https://ocv.me/copyparty/doc/pics/dsm71-03.png) when it asks you which tag to use
|
||||
* [double-click copyparty/ac](https://ocv.me/copyparty/doc/pics/dsm71-02.png) and keep the [default `latest`](https://ocv.me/copyparty/doc/pics/dsm71-03.png) when it asks you which tag to use
|
||||
* switch to the `Container` tab and click `Create`
|
||||
* [choose `copyparty/ac:latest`](https://ocv.me/copyparty/doc/pics/dsm71-04.png) and `Next`
|
||||
* in the [Network](https://ocv.me/copyparty/doc/pics/dsm71-05.png) window, keep the default `Use the selected networks: [x] bridge`
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ server creates session id and replies with the same json:
|
|||
secretsalt, name, size, *hash
|
||||
]))[:32].replace('+','-').replace('/','_')
|
||||
|
||||
cilent uploads each chunk:
|
||||
client uploads each chunk:
|
||||
POST application/octet-stream
|
||||
X-Up2k-Hash: fUGShzwcSAmw5IbQ3y_2TUrI8a89LYQO-kW0o0rRcU0
|
||||
X-Up2k-Wark: CVNt9EYhgTFHU3xiK6gL-0ciJFopshvo
|
||||
|
|
|
|||
|
|
@ -82,9 +82,9 @@ currently up to date with [awesome-selfhosted](https://github.com/awesome-selfho
|
|||
<&Kethsar> copyparty is very much bloat ed, so yeah
|
||||
```
|
||||
|
||||
the table headers in the matrixes below are the different softwares, with a quick review of each software in the next section
|
||||
the table headers in the matrixes below are the different software, with a quick review of each software in the next section
|
||||
|
||||
the softwares,
|
||||
the software,
|
||||
|
||||
[a]: https://github.com/9001/copyparty "copyparty"
|
||||
[b]: https://github.com/rejetto/hfs2/ "hfs2"
|
||||
|
|
@ -114,7 +114,7 @@ the softwares,
|
|||
* `l` = [sftpgo][l]
|
||||
* `m` = [arozos][m]
|
||||
|
||||
some softwares not in the matrixes,
|
||||
some software not in the matrixes,
|
||||
* [updog](#updog)
|
||||
* [goshs](#goshs)
|
||||
* [gimme-that](#gimmethat)
|
||||
|
|
@ -259,7 +259,7 @@ symbol legend,
|
|||
* you can successfully play `$'\355\221'` with mpv through mounting a remote copyparty server with rclone, pog
|
||||
* `a`/copyparty remarks:
|
||||
* extremely minimal samba/cifs server
|
||||
* netscape 4 / ie6 support is mostly listed as a joke altho some people have actually found it useful ([ie4 tho](https://user-images.githubusercontent.com/241032/118192791-fb31fe00-b446-11eb-9647-898ea8efc1f7.png))
|
||||
* netscape 4 / ie6 support is mostly listed as a joke although some people have actually found it useful ([ie4 tho](https://user-images.githubusercontent.com/241032/118192791-fb31fe00-b446-11eb-9647-898ea8efc1f7.png))
|
||||
* `l`/sftpgo translates mojibake filenames into valid utf-8 (information loss)
|
||||
* `m`/arozos has readonly-support for older browsers; no uploading
|
||||
|
||||
|
|
|
|||
|
|
@ -163,3 +163,11 @@ follow_imports = "silent"
|
|||
|
||||
[[tool.mypy.overrides]]
|
||||
no_implicit_reexport = false
|
||||
|
||||
[tool.codespell]
|
||||
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
|
||||
skip = '.git*,*.svg,*.lock,*.css,*.min.*,tl,pyproject.toml,*.patch'
|
||||
check-hidden = true
|
||||
# ignore camelcase
|
||||
ignore-regex = '(\b[a-z]+[A-Z][A-Za-z0-9]*\b|\[[a-z]\][a-z]+\b)'
|
||||
ignore-words-list = 'caf,cips,ans,ded,wark,warks,halp,ser,oen,datas,slin,nd,te,pres,ths,wast,clen,fo,nin,fils,tre,tred,tread,noice,unick,memers,idel'
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ set -e
|
|||
# 270004 copyparty-extras/sfx-lite/copyparty-sfx.py
|
||||
# 293159 copyparty-extras/sfx-lite/copyparty-sfx-gz.py
|
||||
# `- also removed the codemirror markdown editor
|
||||
# and the text-viewer syntax hilighting,
|
||||
# and the text-viewer syntax highlighting,
|
||||
# only essential features remaining
|
||||
#
|
||||
# 646297 copyparty-extras/copyparty-1.0.14.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
copyparty is availabe in these repos:
|
||||
copyparty is available in these repos:
|
||||
* https://hub.docker.com/u/copyparty
|
||||
* https://github.com/9001?tab=packages&repo_name=copyparty
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ smoketest() {
|
|||
# two-for-one:
|
||||
# 1) smoketest copyparty even starts
|
||||
# 2) build any bytecode we missed
|
||||
# this tends to race other builders (alle gode ting er tre)
|
||||
# this tends to race other builders (alle gode ting er tre) # codespell:ignore
|
||||
cd /z
|
||||
python3 -m copyparty \
|
||||
--ign-ebind -p$((1024+RANDOM)),$((1024+RANDOM)),$((1024+RANDOM)) \
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ filt=
|
|||
) 2> >(tee $a.err | sed "s/^/$aa:/" >&2) > >(tee $a.out | sed "s/^/$aa:/") &
|
||||
done
|
||||
[ -e err ] && {
|
||||
echo somethign died,
|
||||
echo something died,
|
||||
cat err
|
||||
pkill -P $$
|
||||
exit 1
|
||||
|
|
@ -144,7 +144,7 @@ filt=
|
|||
done
|
||||
wait
|
||||
[ -e err ] && {
|
||||
echo somethign died,
|
||||
echo something died,
|
||||
cat err
|
||||
pkill -P $$
|
||||
exit 1
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ necho() {
|
|||
rm -rf pyftpdlib-* pyftpdlib/test
|
||||
patch -s -p1 <../scripts/patches/pyftpdlib-win313.patch
|
||||
patch -s -p1 <../scripts/patches/pyftpdlib-fe80.patch
|
||||
for f in pyftpdlib/_async{hat,ore}.py; do
|
||||
for f in pyftpdlib/_async{hat,ore}.py; do # codespell:ignore
|
||||
[ -e "$f" ] || continue;
|
||||
iawk 'NR<4||NR>27||!/^#/;NR==4{print"# license: https://opensource.org/licenses/ISC\n"}' $f
|
||||
done
|
||||
|
|
|
|||
|
|
@ -137,10 +137,10 @@ dist/copyparty.exe --version
|
|||
|
||||
csum=$(sha512sum <dist/copyparty.exe | cut -c-56)
|
||||
|
||||
curl -fkT dist/copyparty.exe -HPW:wark https://192.168.123.1:3923/copyparty$esuf.exe >uplod.log
|
||||
cat uplod.log
|
||||
curl -fkT dist/copyparty.exe -HPW:wark https://192.168.123.1:3923/copyparty$esuf.exe >upload.log
|
||||
cat upload.log
|
||||
|
||||
grep -q $csum uplod.log && echo upload OK || {
|
||||
grep -q $csum upload.log && echo upload OK || {
|
||||
echo UPLOAD FAILED
|
||||
exit 1
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@ https://pypi.org/project/pywin32-ctypes/#files
|
|||
https://github.com/git-for-windows/git/releases/latest
|
||||
https://github.com/upx/upx/releases/latest
|
||||
|
||||
# win10 additionals
|
||||
# win10 additional
|
||||
https://pypi.org/project/Jinja2/#files
|
||||
https://pypi.org/project/MarkupSafe/#files
|
||||
https://pypi.org/project/mutagen/#files
|
||||
https://pypi.org/project/Pillow/#files
|
||||
|
||||
# win7 additionals
|
||||
# win7 additional
|
||||
https://pypi.org/project/future/#files
|
||||
https://pypi.org/project/importlib-metadata/#files
|
||||
https://pypi.org/project/pip/#files
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@ $APPDATA/python/python37/scripts/pyinstaller -y --clean --upx-dir=. up2k.spec
|
|||
|
||||
csum=$(sha512sum <dist/u2c.exe | cut -c-56)
|
||||
|
||||
curl -fkT dist/u2c.exe -HPW:wark https://192.168.123.1:3923/ >uplod.log
|
||||
cat uplod.log
|
||||
curl -fkT dist/u2c.exe -HPW:wark https://192.168.123.1:3923/ >upload.log
|
||||
cat upload.log
|
||||
|
||||
grep -q $csum uplod.log && echo upload OK || {
|
||||
grep -q $csum upload.log && echo upload OK || {
|
||||
echo UPLOAD FAILED
|
||||
exit 1
|
||||
}
|
||||
|
|
|
|||
|
|
@ -490,7 +490,7 @@ Ls.hmn = {
|
|||
"m3u_clip": "m3u playlist now copied to clipboard\n\nyou should create a new textfile named something.m3u and paste the playlist in that document; this will make it playable",
|
||||
|
||||
"gt_vau": "don't show videos, just play the audio\">🎧",
|
||||
"gt_msel": "enable file selection; ctrl-click a file to override$N$N<em>when active: doubleclick a file / folder to open it</em>$N$NHotkey: S\">multiselect",
|
||||
"gt_msel": "enable file selection; ctrl-click a file to override$N$N<em>when active: double-click a file / folder to open it</em>$N$NHotkey: S\">multiselect",
|
||||
"gt_crop": "center-crop thumbnails\">crop",
|
||||
"gt_3x": "hi-res thumbnails\">3x",
|
||||
"gt_zoom": "zoom",
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ finally ./except/these/ones.md
|
|||
|
||||
|
||||
### also-this.md
|
||||
whic hshoud be ./except/also-this.md
|
||||
which should be ./except/also-this.md
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue