Uploading files to chibisafe via fswatch
Not all screenshot utilities allow you to upload images directly to alternative providers like chibisafe. That being said, you can use a file change monitor to watch a folder and upload any new images to your chibisafe instance.
Pre-requisites
- The fswatch binary.
Project Page: emcrisostomo/fswatch - Your Request URL.
Example: https://foo.bar/api/upload - Your API Key.
Example: GI4nAlK6gwy8T2BvmP31ZwaNbtgxACbXxQZb3nUiLcpPanl03f6WKxuaBkMfMy1C - The directory where you want to watch for changes
Example: /home/catbox/screenshots/ - [OPTIONAL] Your Album UUID.
Example: NAiMaDpR-5xwR-LcEX-niWc-3e4N8Zp60zJe
Bootstrap Setup
COMING SOON
Manual Setup
Method 1: Using crontab
# Create a directory in which the script and the environment file will reside mkdir -p "${HOME}/.chibisafe_watcher" # Travel to the directory cd "${HOME}/.chibisafe_watcher" # Create script file and make it executable touch chibisafe_watcher.sh chmod +x chibisafe_watcher.sh # Create environment file touch chibisafe_watcher.env
Open chibisafe_watcher.env with your favorite editor and paste the following content, and replace the values with your own:
CHIBISAFE_REQUEST_URL=https://chibisafe.moe/api/upload CHIBISAFE_API_KEY=GI4nAlK6gwy8T2BvmP31ZwaNbtgxACbXxQZb3nUiLcpPanl03f6WKxuaBkMfMy1C CHIBISAFE_WATCH_DIR=/home/catbox/screenshots/ # OPTIONAL CHIBISAFE_ALBUM_UUID=NAiMaDpR-5xwR-LcEX-niWc-3e4N8Zp60zJe
Open chibisafe_watcher.sh with your favorite editor and paste the following content:
#!/usr/bin/env sh setup_environment() { script_dir="$(dirname "$0")" script_dir="$(realpath "${script_dir}")" env_file="${script_dir}/chibisafe_watcher.env" if [ -f "${env_file}" ]; then source "${env_file}" else echo "No environment file found." exit 1 fi } upload() { filename=$1 dump_file="${CHIBISAFE_WATCH_DIR}/headers.dump" echo "${filename}" >> "${dump_file}" stat -f "%m" "${filename}" > "${dump_file}" curl -D "${dump_file}" -H "x-api-key: ${CHIBISAFE_API_KEY}" -H "albumuuid: ${CHIBISAFE_ALBUM_UUID}" -F "file[]=@${filename}" -s "${CHIBISAFE_REQUEST_URL}" } start_watch() { fswatch -0 "${WATCH_DIR}" | while read -d "" new_file do if [ -f "${new_file}" ]; then upload "${new_file}" fi done } setup_environment start_watch
Open your crontab with crontab -e and add the following line, then save and exit the editor:
@reboot "~/.chibisafe_watcher/chibisafe_watcher.sh"
Upon your next reboot, the file change monitor will start watching the directory for changes. It will keep running and uploading new images until you terminate it.
Method 2: Using screen
COMING SOON
Method 3: Using systemd or launchd
COMING SOON