diff --git a/README.md b/README.md index ce35c88..0cc6ee2 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,10 @@ Background worker to sync an imap mailbox. Generate a timesheet for a given month by manipulating the output from `zeit` +### zdconvert + +Breakdown weekly data from `zeit` into by-day/by-project buckets for easy transferral to daptiv + ### riosh Shell script to loosley emulate `rio` behavior in a EWMH-compliant WM @@ -54,6 +58,10 @@ tint2 system load/memory, battery, and network info displays either regular or arvelie clock in a tint2 executor, with an action to switch them as well +### podlist + +Parse podcast `rss` feeds into `m3u` playlists to drag-n-drop into `audacious` or any other audio player; uses `xmllint` from [libxml2](https://github.com/GNOME/libxml2) + ## License This collection is released permissively under the MIT License. You can do whatever you want with it, as long as you leave my name on it. diff --git a/podlist.sh b/podlist.sh new file mode 100755 index 0000000..3ab760e --- /dev/null +++ b/podlist.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# Derek Stevens +# MIT license + +# export PODLIST_DATA_DIR=/wherever/you/want in your shell startup +# and keep a .feeds file in it where each line looks like: +# podcast_name https://domain.com/path/to/rss/feed + +while read l; do + set -- ${l} + tmpfile=$(mktemp) + wget -O ${tmpfile} $2 + xmllint --xpath '/rss/channel/item/enclosure/@url' ${tmpfile} | sed -e 's/url=//g' -e 's/"//g' > ${PODLIST_DATA_DIR:-~}/${1}.m3u + rm ${tmpfile} +done < ${PODLIST_DATA_DIR:-~}/.feeds diff --git a/zdconvert.sh b/zdconvert.sh new file mode 100755 index 0000000..724963b --- /dev/null +++ b/zdconvert.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +# format zeit data for easy transferrence to daptiv +# Derek Stevens +# MIT License + +if [ "$1" = "--help" ]; then + echo "usage:" + echo " $0 WEEKS_AGO_START=1 WEEKS_AGO_END=1" + echo " Print report of tracked time for the given weeks to stdout" + exit 1 +fi + +weeks_start=${1:-1} +weeks_end=${2:-1} + +while [ ${weeks_start} -ge ${weeks_end} ]; do + start=$(date -Is --date="0:00 Sat ${weeks_start} weeks ago") + end=$(date -Is --date="23:59 Fri $((weeks_start - 1)) weeks ago") + + echo "week starting ${start}" + zeit list --since ${start} --until ${end} --total --no-colors --decimal | tail -n2 + + i=${weeks_start} + oldifs=${IFS} + for d in Sat Sun Mon Tue Wed Thu Fri; do + echo "${d}" + [ "${d}" = $(date +"%a") ] && [ ${weeks_start} -eq 1 ] && i=$((i-1)) + dayStart=$(date -Is --date="00:00 ${d} ${i} weeks ago") + dayEnd=$(date -Is --date="23:59 ${d} ${i} weeks ago") + IFS=" +" + for p in $(zeit list --since ${dayStart} --until ${dayEnd} --only-projects-and-tasks --no-colors | grep ◆ | awk '{for (i=2; i