add podlist, zdconvert; update README
This commit is contained in:
parent
21666c992a
commit
4f05f8a6e4
3 changed files with 74 additions and 0 deletions
|
@ -34,6 +34,10 @@ Background worker to sync an imap mailbox.
|
||||||
|
|
||||||
Generate a timesheet for a given month by manipulating the output from `zeit`
|
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
|
### riosh
|
||||||
|
|
||||||
Shell script to loosley emulate `rio` behavior in a EWMH-compliant WM
|
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
|
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
|
## 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.
|
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.
|
||||||
|
|
16
podlist.sh
Executable file
16
podlist.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Derek Stevens <nilix@nilfm.cc>
|
||||||
|
# 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
|
50
zdconvert.sh
Executable file
50
zdconvert.sh
Executable file
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# format zeit data for easy transferrence to daptiv
|
||||||
|
# Derek Stevens <nilix@nilfm.cc>
|
||||||
|
# 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<NF; i++) printf $i " "; print $NF;}'); do
|
||||||
|
echo "\t${p}:"
|
||||||
|
|
||||||
|
|
||||||
|
ntasks=1
|
||||||
|
while read task; do
|
||||||
|
echo "\t\t${task} $(zeit list --since ${dayStart} --until ${dayEnd} --project ${p} --decimal | awk '{print $(NF-1) "\n";}' | head -n${ntasks} | tail -n1)"
|
||||||
|
ntasks=$((ntasks+1))
|
||||||
|
done << EOF
|
||||||
|
$(zeit list --since ${dayStart} --until ${dayEnd} --project ${p} --decimal | awk '{for (i=2; i<NF; i++) printf $i " "; print $NF;}' | awk -F' on' '{print $1 "\n"}')
|
||||||
|
EOF
|
||||||
|
echo "\t\t$(zeit list --since ${dayStart} --until ${dayEnd} --project ${p} --total --decimal | tail -n2 | cut -f2- -d ' ')"
|
||||||
|
done
|
||||||
|
|
||||||
|
IFS=${oldifs}
|
||||||
|
done
|
||||||
|
weeks_start=$((weeks_start-1))
|
||||||
|
done
|
Loading…
Reference in a new issue