[Dropbox as picture share service] update --- https://www.pld-linux.org/people/glen?rev=1396966793 +++ https://www.pld-linux.org/people/glen?rev=1406040485 @@ -254,30 +254,50 @@ Requirements: [[https://www.dropbox.com/install?os=lnx|dropboxd]] running, [[http://ftp.gnome.org/pub/GNOME/sources/libnotify/0.7/|libnotify]], [[https://github.com/rvoicilas/inotify-tools/wiki|inotify-tools]] You should start the script at startup of your X session. - <code bash ~/.local/bin/dropbox-watch.sh> - #!/bin/sh + <code bash ~/.local/bin/dropbox-watch.sh>#!/bin/sh # A script that watches ~/Pictures/Screenshots dir, and any new file is added there, it # is renamed so it would contain filename modify timestamp (uses safe # characters not to require urlencode) and moved to dropbox dir. Additionally # dropbox url is copied to clipboard and image viewer is opened to show that # screenshot. # # Author: Elan Ruusamäe <[email protected]> # Date: 2012-11-09 + # Updated: 2014-07-22 (test all tools, more filename filters) watchdir=$HOME/Pictures/Screenshots # i'd use xdg-open here, but somewhy in GNOME 3.4 it opens dir containing the image viewer=gpicview # Config - dropdir=$HOME/Dropbox/Public - dropuser=YOUR_DROPBOX_NUMERIC_USER_ID - dropurl=https://dl.dropbox.com/u/$dropuser/ss + dropdir=$HOME/Dropbox/Public/ss + dropuser=YOUR_DROPBOX_NUMERIC_USER_ID + dropurl=https://dl.dropboxusercontent.com/u/$dropuser/ss if [ ! -d $dropdir ]; then echo >&2 "Dropbox dir $dropdir missing!" + exit 1 + fi + + if [ ! -d $watchdir ]; then + echo >&2 "Watch dir $watchdir missing!" + exit 1 + fi + + if ! which $viewer 2>/dev/null; then + echo >&2 "Can't find viewer: $viewer" + exit 1 + fi + + if ! which inotifywait 2>/dev/null; then + echo >&2 "Can't find tool: inotifywait, install inotify-tools" + exit 1 + fi + + if ! which notify-send 2>/dev/null; then + echo >&2 "Can't find tool: notify-send, install libnotify" exit 1 fi inotifywait -m -e moved_to -e close_write $watchdir | while read path change filename; do @@ -290,9 +310,21 @@ esac # reformat filename so it woult be nice url mtime=$(stat -c "%y" "$file") - filename=$(date -d "$mtime" '+%Y-%m-%d_%H.%M.%S').png + # Strip 'Screenshot - 04062013 - 11:30:49 AM.png' + # strip 'Screenshot - 14.01.2013 - 15:04:02', and leave everything else part of the filename + fn=$(echo "$filename" | sed -e 's,^Screenshot - [ .:0-9-]*[AP]M,,') + # Strip 'Screenshot from 2013-02-13 23:49:07' + # Strip 'Screenshot - 30.05.2013 - 11:48:58.png' + fn=$(echo "$fn" | sed -re 's,^Screenshot( from)? [ .:0-9-]*,,') + + # sanitize exts + fn=$(echo "$fn" | sed -re 's/\.?(jpe?g|png)$//' -e 'y/ /_/') + filename=$(date -d "$mtime" '+%Y-%m-%d_%H.%M.%S')${fn:+-$fn}.png + + # bugfixes + fn=$(echo "$fn" | sed -re 's/\.png\.png$/.png/') url="$dropurl/$filename" mv "$file" "$dropdir/$filename"
Diff URL: https://www.pld-linux.org/people/glen?do=diff&r1=1396966793&r2=1406040485 -- This mail was generated by DokuWiki at https://www.pld-linux.org/ _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
