switch to day view

This commit is contained in:
2025-06-05 22:56:03 +02:00
parent 08adcd2f98
commit 558f8330ca
3 changed files with 83 additions and 13 deletions

View File

@@ -79,6 +79,13 @@ EOF
EOF
)
export AWK_WEEKVIEW
AWK_DAYVIEW=$(
cat <<'EOF'
@@include src/awk/dayview.awk
EOF
)
export AWK_DAYVIEW
### END OF AWK SCRIPTS
FZF_VJOUR_USE_EXPORTED="yes"
export FZF_VJOUR_USE_EXPORTED
@@ -100,6 +107,62 @@ __load_weeks() {
rm "$file_dates"
}
__show_day() {
weeknr=$(date -d "$DISPLAY_DATE" +"%s")
weeknr=$(((weeknr - 259200) / 604800)) # shift, because epoch origin is a Thursday
files=$(grep "^$weeknr " "$WEEKLY_DATA_FILE" | cut -d " " -f 2-)
# Find relevant files in list of week files
sef=$({
set -- $files
for file in "$@"; do
file="$ROOT/$file"
awk \
-v collection_labels="$COLLECTION_LABELS" \
"$AWK_PARSE" "$file"
done
})
if [ -n "$sef" ]; then
today=$(date -d "$DISPLAY_DATE" +"%D")
sef=$(echo "$sef" | while IFS= read -r line; do
set -- $line
starttime="$1"
shift
endtime="$1"
shift
fpath="$1"
shift
description=$(echo "$*" | sed 's/|/:/g') # we will use | as delimiter
#
daystart=$(date -d "$today 00:00:00" +"%s")
dayend=$(date -d "$today 23:59:59" +"%s")
line=""
if [ "$starttime" -gt "$daystart" ] && [ "$starttime" -lt "$dayend" ]; then
s=$(date -d "@$starttime" +"%H:%M")
elif [ "$starttime" -le "$daystart" ] && [ "$endtime" -gt "$daystart" ]; then
s="00:00"
else
continue
fi
if [ "$endtime" -gt "$daystart" ] && [ "$endtime" -lt "$dayend" ]; then
e=$(date -d "@$endtime" +"%H:%M")
elif [ "$endtime" -ge "$dayend" ] && [ "$starttime" -lt "$dayend" ]; then
e="00:00"
else
continue
fi
echo "$s|$e|$fpath|$description"
done)
fi
GREEN="\033[1;32m"
OFF="\033[m"
echo "|🗓️ $GREEN $(date -d "$DISPLAY_DATE" +"%a %e %b %Y")$OFF"
echo ""
(
echo "$sef"
seq 8 18 | sort -n
) | awk "$AWK_DAYVIEW"
}
__list() {
weeknr=$(date -d "$DISPLAY_DATE" +"%s")
weeknr=$(((weeknr - 259200) / 604800)) # shift, because epoch origin is a Thursday
@@ -124,6 +187,8 @@ __list() {
shift
endtime="$1"
shift
#fpath="$1"
shift
description="$*"
for i in $(seq 0 7); do
daystart=$(date -d "$startofweek +$i days 00:00:00" +"%s")
@@ -169,16 +234,26 @@ if [ -z "${WEEKLY_DATA_FILE:-}" ]; then
fi
if [ "${1:-}" = "--day" ]; then
DISPLAY_DAY="$2"
echo "Jumping to day $DISPLAY_DAY!"
exit
DISPLAY_DATE="$2"
echo "Jumping to day $DISPLAY_DATE!"
selection=$(__show_day |
$FZF \
--reverse \
--ansi \
--no-sort \
--no-input \
--delimiter='|' \
--with-nth='{2}' \
--accept-nth='{1}')
fpath="$ROOT/$selection"
echo "$fpath"
fi
DISPLAY_DATE="today"
if [ "${1:-}" = "--date" ]; then
DISPLAY_DATE="$2"
echo "Jumping to date $2!"
fi
DISPLAY_DATE=${DISPLAY_DATE:-today}
DISPLAY_DATE=$(date -d "$DISPLAY_DATE" +"%D")
DISPLAY_DATE_PREV=$(date -d "$DISPLAY_DATE -1 week" +"%D")
DISPLAY_DATE_NEXT=$(date -d "$DISPLAY_DATE +1 week" +"%D")