#!/bin/bash

# A script that updates existing Komorebi wallpapers
# and add us to the start up with the new updated syntax

echo "[INFO]: Removing old Komorebi properties file.."
users="$(ls -d -1 /home/*/ | xargs -n 1 basename)"

for user in $users; do

	rm -rf "/home/$user/.Komorebi.prop"

	mkdir -p "/home/$user/.config/autostart"
	cp "/usr/share/applications/org.komorebiteam.komorebi.desktop" "/home/$user/.config/autostart/komorebi.desktop"
	chown  "$user:$user" "/home/$user/.config/autostart" -R

done

echo "[INFO]: Updating existing Komorebi Wallpapers.."

wallpapers=$(ls -d -1 /usr/share/komorebi/*/)

for wallpaper in $wallpapers; do

	configtemplate="[Info]
WallpaperType=image

[DateTime]
Visible=true
Parallax=DATETIMEPARALLAX

MarginLeft=MARGINLEFT
MarginTop=MARGINTOP
MarginBottom=MARGINBOTTOM
MarginRight=MARGINRIGHT

RotationX=0
RotationY=0
RotationZ=0

Position=POSITION
Alignment=ALIGNMENT
AlwaysOnTop=DATETIMEALWAYSONTOP

Color=TIMECOLOR
Alpha=255

ShadowColor=black
ShadowAlpha=190

TimeFont=TIMEFONT
DateFont=DATEFONT

[Wallpaper]
Parallax=WALLPAPERPARALLAX

[Asset]
Visible=ASSETVISIBLE
AnimationMode=ANIMATIONMODE
AnimationSpeed=ANIMATIONSPEED

Width=0
Height=0
"


	# Skip wallpapers with videos (cause they're new)
	if [ -e $wallpaper"video.mp4" ]; then
		continue
	fi

	if [ -e $wallpaper"wallpaper.jpg" ]; then
		continue
	fi

	# Remove incompatible wallpapers
	if [ "$wallpaper" == "blue_pink_gradient" ]; then
		continue
	fi

	if [ "$wallpaper" == "dark_night_gradient" ]; then
		continue
	fi

	echo "Updating $wallpaper"
	oldfile=$wallpaper"bg.jpg"
	mv $oldfile $wallpaper"wallpaper.jpg" 2>/dev/null
	rm -rf $wallpaper"thumb.jpg"

	entirecontent=""

	halign=""
	valign=""


	while read -r line
	do
    	entirecontent+=$line


    	if [[ $line =~ "=" ]]; then

    		IFS='=' read -r -a array <<< "$line"

    		key="${array[0]}"
    		value="${array[1]}"

	    	if [ "$key" == "DateTimeBoxParallax" ]; then
	    		configtemplate=${configtemplate/DATETIMEPARALLAX/$value}

	    	elif [ "$key" == "AnimationMode" ]; then

	    		if [ "$value" == "parallax-bg" ]; then
	    			configtemplate=${configtemplate/WALLPAPERPARALLAX/"true"}
	    			configtemplate=${configtemplate/ANIMATIONMODE/"noanimation"}
	    		else
	    			configtemplate=${configtemplate/WALLPAPERPARALLAX/"false"}
	    			configtemplate=${configtemplate/ANIMATIONMODE/$value}
	    		fi

	    	elif [ "$key" == "AnimationSpeed" ]; then
	    		configtemplate=${configtemplate/ANIMATIONSPEED/$value}

	    	elif [ "$key" == "DateTimeBoxMarginLeft" ]; then
	    		configtemplate=${configtemplate/MARGINLEFT/$value}

	    	elif [ "$key" == "DateTimeBoxMarginTop" ]; then
	    		configtemplate=${configtemplate/MARGINTOP/$value}

	    	elif [ "$key" == "DateTimeBoxMarginBottom" ]; then
	    		configtemplate=${configtemplate/MARGINBOTTOM/$value}

	    	elif [ "$key" == "DateTimeBoxMarginRight" ]; then
	    		configtemplate=${configtemplate/MARGINRIGHT/$value}

	    	elif [ "$key" == "TimeLabelAlignment" ]; then
	    		configtemplate=${configtemplate/ALIGNMENT/$value}

	    	elif [ "$key" == "DateTimeBoxHAlign" ]; then
	    		halign=$value

	    	elif [ "$key" == "DateTimeBoxVAlign" ]; then
	    		valign=$value

	    	elif [ "$key" == "DateTimeColor" ]; then
	    		configtemplate=${configtemplate/TIMECOLOR/$value}

	    	elif [ "$key" == "TimeLabelFont" ]; then
	    		configtemplate=${configtemplate/TIMEFONT/$value}

	    	elif [ "$key" == "DateLabelFont" ]; then
	    		configtemplate=${configtemplate/DATEFONT/$value}

	    	elif [ "$key" == "DateTimeBoxOnTop" ]; then
	    		configtemplate=${configtemplate/DATETIMEALWAYSONTOP/$value}
	    	fi
    	fi
	done < $wallpaper"config"


	if [ -e $wallpaper"assets.png" ]; then
    	configtemplate=${configtemplate/ASSETVISIBLE/"true"}
	else
    	configtemplate=${configtemplate/ASSETVISIBLE/"false"}
   	fi


	if [[ $halign =~ "start" ]] && [[ $valign =~ "start" ]]; then
    	configtemplate=${configtemplate/POSITION/"top_left"}

    elif [[ $halign =~ "start" ]] && [[ $valign =~ "center" ]]; then
    	configtemplate=${configtemplate/POSITION/"center_left"}

    elif [[ $halign =~ "start" ]] && [[ $valign =~ "end" ]]; then
    	configtemplate=${configtemplate/POSITION/"bottom_left"}

    elif [[ $halign =~ "center" ]] && [[ $valign =~ "start" ]]; then
    	configtemplate=${configtemplate/POSITION/"top_center"}

    elif [[ $halign =~ "center" ]] && [[ $valign =~ "center" ]]; then
    	configtemplate=${configtemplate/POSITION/"center"}

    elif [[ $halign =~ "center" ]] && [[ $valign =~ "end" ]]; then
    	configtemplate=${configtemplate/POSITION/"bottom_center"}

    elif [[ $halign =~ "end" ]] && [[ $valign =~ "start" ]]; then
    	configtemplate=${configtemplate/POSITION/"top_right"}

    elif [[ $halign =~ "end" ]] && [[ $valign =~ "center" ]]; then
    	configtemplate=${configtemplate/POSITION/"center_right"}

    elif [[ $halign =~ "end" ]] && [[ $valign =~ "end" ]]; then
    	configtemplate=${configtemplate/POSITION/"bottom_right"}
    fi


    echo "$configtemplate" >$wallpaper"config"

done
