#! /bin/sh

set -e

# Pull in user-dirs.dirs if it exists
userdirs="${XDG_CONFIG_DIR:-$HOME/.config}"/user-dirs.dirs
[ -f "$userdirs" ] && . "$userdirs"
# Obtain download directory from there, otherwise use default
downloaddir="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}"
documentsdir="${XDG_DOCUMENTS_DIR:-$HOME/Documents}"
picturesdir="${XDG_PICTURES_DIR:-$HOME/Pictures}"
videosdir="${XDG_VIDEOS_DIR:-$HOME/Videos}"

# Take loose crap out of the home folder
echo "Sorting away videos from homedir..."
find "$HOME" \
	-maxdepth 1 \
	-type f \
	\( \
	-iname "*.mov" -or \
	-iname "*.webm" -or \
	-iname "*.mkv" -or \
	-iname "*.mp4" \
	\) \
	-print \
	-exec mv {} "$videosdir" \;
echo "Sorting away pictures from homedir..."
find "$HOME" \
	-maxdepth 1 \
	-type f \
	\( \
	-iname "*.jpg" -or \
	-iname "*.jpeg" -or \
	-iname "*.gif" -or \
	-iname "*.png" -or \
	-iname "*.webp" \
	\) \
	-print \
	-exec mv {} "$picturesdir" \;

# Sort out downloads
[ -e "$downloaddir" ] && {
	# Sort out epubs
	if [ -d ~/Books ]; then
		echo "Sorting out books..."
		find "$downloaddir" \
			-type f \
			\( \
			-iname "*.epub" -or \
			-iname "*.mobi" \
			\) \
			-print \
			-exec mv {} ~/Books \;
	fi
	# Remove anything that's wicked old
	echo "Removing ancient downloads..."
	find "$downloaddir" \
		-mtime +180 \
		-print -delete
	# Remove anything kinda old but really big
	echo "Removing large downloads..."
	find "$downloaddir" \
		-mtime +30 -size 10M \
		-print -delete
	# Remove zips, but at a lower tolerance
	echo "Removing old zips..."
	find "$downloaddir" \
		-mtime +30 -type f -iname "*.zip" \
		-print -delete
}