#!/usr/bin/sh
#
# Copyright (C) 2005,2006  Charles Bouveyron <charles.bouveyron@free.fr>
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
# MA  02110-1301, USA
#
# Author : 	Charles Bouveyron <charles.bouveyron@free.fr>
#
# Added localisation and dbus support in 2013 by Daniel Tartavel <contact@librepc.com>

export TEXTDOMAIN="kim"
export TEXTDOMAINDIR="/usr/share/locale"
. gettext.sh

FILE="";
DIR="$1"
let "nbfiles = $# - 1"

test -n "$KDEHOME" || KDEHOME="`kde4-config --localprefix`"; export KDEHOME
TMPDIR=`mktemp -d "$KDEHOME"/tmp-"$HOSTNAME"/kim.XXXXXXXX` || exit 1
title="`gettext "Kim - Rename with EXIF date"`"
kdialog --title "$title" --yesnocancel "`gettext "Do you want to replace existing files ?"`"
flag=$?
if [ $flag = 2 ]; then
	kdialog --title "$dtitle" --passivepopup "Operation cancelled" 5
	exit 1
fi;
    # flag=0  -->  Replace existing files !
    # flag=1  -->  Do not replace existing files !

init=`gettext "Initialising"`
dbusRef=`kdialog --title "$title" --progressbar "$init" "$nbfiles"`
qdbus $dbusRef showCancelButton true
compteur=0
	
for i in "$@";do
	if [ -f "$i" ];then 
		#test if cancel button has been pushed
		if test "true" = `qdbus $dbusRef wasCancelled`;then
			qdbus $dbusRef close
			exit 1
		fi
		let "compteur +=1"
		FILE=`basename "$i"`;
		qdbus $dbusRef setLabelText "`gettext "Renaming file: "` $FILE"
		DATE="`identify -format "%[EXIF:DateTimeOriginal]" "$DIR/$FILE"`";
		if [ "$DATE" ];then
			D1=`echo $DATE | sed 's/[^0-9]/ /g' | awk '{print $1}'`;
			D2=`echo $DATE | sed 's/[^0-9]/ /g' | awk '{print $2}'`;
			D3=`echo $DATE | sed 's/[^0-9]/ /g' | awk '{print $3}'`;
			D4=`echo $DATE | sed 's/[^0-9]/ /g' | awk '{print $4}'`;
			D5=`echo $DATE | sed 's/[^0-9]/ /g' | awk '{print $5}'`;
			D6=`echo $DATE | sed 's/[^0-9]/ /g' | awk '{print $6}'`;
			tmp=0;
			NAME="$D1$D2$D3"_"$D4$D5$D6"_"$FILE";
			NAME=${NAME%%.*}
			NEWNAME="$NAME.jpg";
			while [ -e "$DIR/$NEWNAME" ]; do 
				let "tmp += 1";
				NEWNAME="$NAME"_"$tmp.jpg"
			done
			case $flag in
				0)
					mv "$DIR/$FILE" "$DIR/$NEWNAME";;
				1)
					cp "$DIR/$FILE" "$DIR/$NEWNAME";;					
			esac;
			
		else
			kdialog --title "$title" --dontagain kim_sortbydate:sorry --msgbox "`gettext "Do not find a date in EXIF, so can't rename"` $FILE"
		fi;
		qdbus $dbusRef value "$compteur"
	fi;
done
rm -f $KDEHOME/share/config/kim_sortbydate
qdbus $dbusRef close