[PLDWWW] page changed: people:glen

"Elan Ruusamäe (glen)" glen at pld-linux.org
Tue Jul 22 16:48:05 CEST 2014


[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 <glen at delfi.ee>
  # 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/


More information about the pld-cvs-commit mailing list