until now, volumes with whitespace and such would fail to unmount also adds a sanchk that the directory to unmount is still below the expected parent after absreal; the path was already passed to gio in a safe manner (assuming gio doesn't have any vulns) but why risk it |
||
---|---|---|
.. | ||
discord-announce.py | ||
image-noexif.py | ||
into-the-cache-it-goes.py | ||
msg-log.py | ||
notify.py | ||
notify2.py | ||
podcast-normalizer.py | ||
qbittorrent-magnet.py | ||
README.md | ||
reject-extension.py | ||
reject-mimetype.py | ||
reloc-by-ext.py | ||
usb-eject.js | ||
usb-eject.py | ||
wget.py | ||
xiu-sha.py | ||
xiu.py |
standalone programs which are executed by copyparty when an event happens (upload, file rename, delete, ...)
these programs either take zero arguments, or a filepath (the affected file), or a json message with filepath + additional info
run copyparty with --help-hooks
for usage details / hook type explanations (xm/xbu/xau/xiu/xbc/xac/xbr/xar/xbd/xad/xban)
note: in addition to event hooks (the stuff described here), copyparty has another api to run your programs/scripts while providing way more information such as audio tags / video codecs / etc and optionally daisychaining data between scripts in a processing pipeline; if that's what you want then see mtp plugins instead
after upload
- notify.py shows a desktop notification (example)
- notify2.py uses the json API to show more context
- image-noexif.py removes image exif by overwriting / directly editing the uploaded file
- discord-announce.py announces new uploads on discord using webhooks (example)
- reject-mimetype.py rejects uploads unless the mimetype is acceptable
- into-the-cache-it-goes.py avoids bugs in caching proxies by immediately downloading each file that is uploaded
- podcast-normalizer.py creates a second file with dynamic-range-compression whenever an audio file is uploaded
- good example of the
idx
hook effect to tell copyparty about additional files to scan/index
- good example of the
upload batches
these are --xiu
hooks; unlike xbu
and xau
(which get executed on every single file), xiu
hooks are given a list of recent uploads on STDIN after the server has gone idle for N seconds, reducing server load + providing more context
- xiu.py is a "minimal" example showing a list of filenames + total filesize
- xiu-sha.py produces a sha512 checksum list in the volume root
before upload
- reject-extension.py rejects uploads if they match a list of file extensions
- reloc-by-ext.py redirects an upload to another destination based on the file extension
- good example of the
reloc
hook effect
- good example of the
on message
- wget.py lets you download files by POSTing URLs to copyparty
- qbittorrent-magnet.py starts downloading a torrent if you post a magnet url
- usb-eject.py adds web-UI buttons to safe-remove usb flashdrives shared through copyparty
- msg-log.py is a guestbook; logs messages to a doc in the same folder