#!/bin/bash
cmd="$1"
shift

if [ "$cmd" = userspeeda ]; then
    while [ $# -gt 0 ]; do
	peerfile="$(tr / _ <<<"$1")"
	if [ -r "$HOME/dc/users/$peerfile" ]; then
	    speed="$((read num; read max; read nent; avg=0; for i in $(seq 1 $nent); do read ent; let avg+=$ent; done; let avg/=$nent; echo $avg) < "$HOME/dc/users/$peerfile")"
	    echo $speed
	else
	    echo -1
	fi
	shift
    done
fi

if [ "$cmd" = userspeedm ]; then
    while [ $# -gt 0 ]; do
	peerfile="$(tr / _ <<<"$1")"
	if [ -r "$HOME/dc/users/$peerfile" ]; then
	    speed="$((read num; read max; echo $max) < "$HOME/dc/users/$peerfile")"
	    echo $speed
	else
	    echo -1
	fi
	shift
    done
fi

if [ "$cmd" = rmtag ]; then
    for f in "$HOME"/dc/resume/*.info; do
	if [ ! -e "${f%.info}.lock" ]; then
	    unset dcarg_tag
	    . "$f"
	    if [ "$dcarg_tag" = "$1" ]; then
		base="${f%.info}"
		rm -f "$base" "${base}.info" "${base}.tthstate"
	    fi
	fi
    done
fi

if [ "$cmd" = remain ]; then
    for f in "$HOME"/dc/resume/*.info; do
	if [ ! -r "$f" ]; then
	    continue
	fi
	unset "${!dcarg_@}"
	. "$f"
	resfile="${f%.info}"
	for id in "$@"; do
	    idt="${id%%:*}"
	    idd="${id#*:}"
	    match=n
	    if [ "$idt" = size ]; then
		if [ "$idd" -eq "$filesize" ]; then
		    match=y
		fi
	    elif [ "$idt" = hash ]; then
		if [ "$idd" = "$dcarg_hash" ]; then
		    match=y
		fi
	    elif [ "$idt" = all ]; then
		match=y
	    fi
	    if [ "$match" = y ]; then
		rfrem="$(wc -c <"$resfile" | sed 's/ //g')"
		echo "size:$filesize"
		echo "prog:$rfrem"
		echo "name:$origname"
		if [ -n "$dcarg_hash" ]; then
		    echo "hash:$dcarg_hash"
		fi
	    fi
	done
    done
fi

if [ "$cmd" = lsres ]; then
    for f in "$HOME"/dc/resume/*.info; do
	if [ ! -r "$f" ]; then
	    continue
	fi
	. "$f"
	resfile="${f%.info}"
	rfrem="$(wc -c <"$resfile" | sed 's/ //g')"
	echo "id:${resfile##*/}"
	echo "size:$filesize"
	echo "prog:$rfrem"
	echo "name:$origname"
	if [ -e "${resfile}.lock" ]; then
	    echo "lock:yes"
	else
	    echo "lock:no"
	fi
	if [ -n "$dcarg_hash" ]; then
	    echo "hash:$dcarg_hash"
	fi
    done
fi

if [ "$cmd" = rmres ]; then
    resfile="$HOME/dc/resume/$1"
    if [ ! -r "${resfile}.info" ]; then
	echo "err:notfound"
	exit
    fi
    if [ -e "${resfile}.lock" ]; then
	echo "err:locked"
	exit
    fi
    rm -f "$resfile" "${resfile}.info" "${resfile}.tthstate"
    echo "ok"
fi
