list_item(){
name="$(HTML "$1")"
path="$(HTML "$ITEM/$1")"
+ meta="$_DATA/$ITEM/.index/meta"
if [ -d "$_DATA/$ITEM/$1" ]; then
printf '[a .list .dir href="%s" %s]' \
"$path" "$name"
+ elif [ -f "$meta" ]; then
+ read -r length width height tags comment n <<-EOF
+ $(grep -m1 -F " $1" "$meta")
+ EOF
+ printf '[div .list .file
+ [a href="%s" [img src="%s?a=thumbnail"] %s]
+ [span .time %i:%imin] [span .dim %ix%i] %s
+ ]' \
+ "$path" "$path" "$name" \
+ "$((length / 60))" "$((length % 60))" \
+ "$width" "$height" \
+ "$(printf %s\\n "${tags#tags=}" |tr , ' ' |xargs printf '[span .tag %s]')"
else
printf '[div .list .file [a href="%s" [img src="%s?a=thumbnail"] %s]]' \
"$path" "$path" "$name"
[ "$mode" = browse -a "$ITEM" ] && printf '..\n'
if [ "$mode" = browse ]; then
- [ -d "$_DATA/$ITEM/.index" -a "$_DATA/$ITEM" -nt "$_DATA/$ITEM/.index/meta" ] \
- && . "$_EXEC/update_meta.sh"
+ [ -d "$_DATA/$ITEM/.index" -a \! "$_DATA/$ITEM" -ot "$_DATA/$ITEM/.index/meta" ] \
+ && dir="$_DATA/$ITEM" . "$_EXEC/update_meta.sh"
(cd "$_DATA/$ITEM";
find ./ -type d \! -name .index -mindepth 1 -maxdepth 1 \
-exec stat -c '%Y %n' '{}' +
-exec stat -c '%Y %n' '{}' +
)
elif [ "$mode" = index ]; then
+ find "$_DATA/$ITEM" -type d -name .index \
+ | while d="$(line)"; do
+ [ ! "${d%/.index}" -ot "$d/meta" ] \
+ && dir="${d%/.index}" . "$_EXEC/update_meta.sh"
+ done
(cd "$_DATA/$ITEM";
find ./ -type f \
-exec stat -c '%Y %n' '{}' +