diff --git a/bin/bin/covidate b/bin/bin/covidate new file mode 100755 index 0000000..dbfb50c --- /dev/null +++ b/bin/bin/covidate @@ -0,0 +1,18 @@ +#!/bin/bash + +# covidate version 2024.01 +# Copyright (C) 2024 anelki +# +# this is free software licensed under the anelki public license +# +# See the README and LICENSE files for further information. +# +# with thanks/apologies to jwz: https://www.jwz.org/blog/2020/08/the-date-is-now-tuesday-march-178th-2020/ +# shows the date as the number of days since 2020-03-01 +# and earlier version included 2020-03-11 in the calc (so 296 total days). +# corrected, as jwz pointed out: https://twitter.com/jwz/status/1366475255976398848 + +LC_TIME=C.UTF-8 +echo -e "\n\a Today is...$(date +"%A"), March $(expr 1401 + $(date +"%j")), 2020 at $(date +"%T") \n Let's make it a \033[1m✨great✨\033[0m day! \n\n This year will be Different...in a good way I'm sure...\n" +exit 0 + diff --git a/bin/bin/jetpack2mf b/bin/bin/jetpack2mf new file mode 100755 index 0000000..bc157dd --- /dev/null +++ b/bin/bin/jetpack2mf @@ -0,0 +1,6 @@ +#!/bin/sh + +wp --path=/var/www/tcpinball.org post meta get $1 _publicize_shares --format=json \ + | jq -r '[.[] | .message?]' \ + | wp --path=/var/www/tcpinball.org post meta add $1 mf2_syndication --format=json + diff --git a/bin/bin/synlink2mf b/bin/bin/synlink2mf new file mode 100755 index 0000000..963f356 --- /dev/null +++ b/bin/bin/synlink2mf @@ -0,0 +1,6 @@ +#!/bin/sh + +wp --path=/var/www/benharri.org post meta get $1 syndication_log --format=json \ + | jq -r '[.[] | .data.url?]' \ + | wp --path=/var/www/benharri.org post meta add $1 mf2_syndication --format=json + diff --git a/bin/bin/tcpp b/bin/bin/tcpp new file mode 100755 index 0000000..fd20d60 --- /dev/null +++ b/bin/bin/tcpp @@ -0,0 +1,75 @@ +#!/bin/sh + +# get players + names +playersjson=$(curl -s "https://app.matchplay.events/api/tournaments/$1?includePlayers=1" \ + -H "Content-Type: application/json" \ + -H "Accept: application/json") + +# pull finals id from main tourney +finalsId=$(printf %s "$playersjson" | jq -r ".data.linkedTournamentId") + +# get standings for finals +standingsids=$(curl -s "https://app.matchplay.events/api/tournaments/$finalsId/standings" \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + | jq -r '.[] | .playerId') + +# look up ifpa tourneys in TC for the date from matchplay +d=$(printf %s "$playersjson" | jq -r ".data.startUtc") +shortdate=$(date --date "$d" +"%B %-d") +ifpa=$(curl -s 'https://api.ifpapinball.com/v1/calendar/search?api_key=GET_YOUR_OWN&address=Traverse%20City&m=3') +ifpatourney=$(printf %s "$ifpa" | jq -r ".calendar[] | select(.start_date == \"$(date --date "$d" +"%F")\").tournament_id") + +# set author, excerpt, and categories based on day-of-week +author=1 +excerpt="Results for $shortdate tourney" + +case $(date --date "$d" +"%a") in + Thu) + categories="58,54" + ;; + Mon) + categories="58,52" + ;; + Sun) + categories="58,51" + author=8 + excerpt="Results for the $shortdate Belles tourney" + ;; + *) + categories="4" + ;; +esac + +# pull names from original tournament json by ids from standings +# gotta be a better way to do this +player1=$(printf %s "$playersjson" | jq -r ".data.players | .[] | select(.playerId == $(printf %s "$standingsids" | head -n1 | tail -n1)).name") +player2=$(printf %s "$playersjson" | jq -r ".data.players | .[] | select(.playerId == $(printf %s "$standingsids" | head -n2 | tail -n1)).name") +player3=$(printf %s "$playersjson" | jq -r ".data.players | .[] | select(.playerId == $(printf %s "$standingsids" | head -n3 | tail -n1)).name") +player4=$(printf %s "$playersjson" | jq -r ".data.players | .[] | select(.playerId == $(printf %s "$standingsids" | head -n4 | tail -n1)).name") + +# create the post draft and save the id +postid=$(sudo -Hu www-data wp --path=/var/www/tcpinball.org \ + post create \ + --post_author="$author" \ + --post_category="$categories" \ + --post_title="$shortdate Results" \ + --post_excerpt="$excerpt" \ + --post_status=draft \ + --porcelain \ + --post_content=" +

Format: Group Match Play

+ + + +
PlacePlayer
1st$player1
2nd$player2
3rd$player3
4th$player4
+ + + +

See the full results on Match Play - Finals (IFPA).

+ +") + +# drop a link to the editor so i can attach the featured pic before publishing +printf "https://tcpinball.org/wp-admin/post.php?action=edit&post=%s\n" "$postid" + diff --git a/fish/.config/fish/functions/fzf_key_bindings.fish b/fish/.config/fish/functions/fzf_key_bindings.fish deleted file mode 100644 index ff922e0..0000000 --- a/fish/.config/fish/functions/fzf_key_bindings.fish +++ /dev/null @@ -1,161 +0,0 @@ -# ____ ____ -# / __/___ / __/ -# / /_/_ / / /_ -# / __/ / /_/ __/ -# /_/ /___/_/ key-bindings.fish -# -# - $FZF_TMUX_OPTS -# - $FZF_CTRL_T_COMMAND -# - $FZF_CTRL_T_OPTS -# - $FZF_CTRL_R_OPTS -# - $FZF_ALT_C_COMMAND -# - $FZF_ALT_C_OPTS - -# Key bindings -# ------------ -function fzf_key_bindings - - # Store current token in $dir as root for the 'find' command - function fzf-file-widget -d "List files and folders" - set -l commandline (__fzf_parse_commandline) - set -l dir $commandline[1] - set -l fzf_query $commandline[2] - - # "-path \$dir'*/\\.*'" matches hidden files/folders inside $dir but not - # $dir itself, even if hidden. - test -n "$FZF_CTRL_T_COMMAND"; or set -l FZF_CTRL_T_COMMAND " - command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ - -o -type f -print \ - -o -type d -print \ - -o -type l -print 2> /dev/null | sed 's@^\./@@'" - - test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40% - begin - set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT --reverse $FZF_DEFAULT_OPTS $FZF_CTRL_T_OPTS" - eval "$FZF_CTRL_T_COMMAND | "(__fzfcmd)' -m --query "'$fzf_query'"' | while read -l r; set result $result $r; end - end - if [ -z "$result" ] - commandline -f repaint - return - else - # Remove last token from commandline. - commandline -t "" - end - for i in $result - commandline -it -- (string escape $i) - commandline -it -- ' ' - end - commandline -f repaint - end - - function fzf-history-widget -d "Show command history" - test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40% - begin - set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m" - - set -l FISH_MAJOR (echo $version | cut -f1 -d.) - set -l FISH_MINOR (echo $version | cut -f2 -d.) - - # history's -z flag is needed for multi-line support. - # history's -z flag was added in fish 2.4.0, so don't use it for versions - # before 2.4.0. - if [ "$FISH_MAJOR" -gt 2 -o \( "$FISH_MAJOR" -eq 2 -a "$FISH_MINOR" -ge 4 \) ]; - history -z | eval (__fzfcmd) --read0 --print0 -q '(commandline)' | read -lz result - and commandline -- $result - else - history | eval (__fzfcmd) -q '(commandline)' | read -l result - and commandline -- $result - end - end - commandline -f repaint - end - - function fzf-cd-widget -d "Change directory" - set -l commandline (__fzf_parse_commandline) - set -l dir $commandline[1] - set -l fzf_query $commandline[2] - - test -n "$FZF_ALT_C_COMMAND"; or set -l FZF_ALT_C_COMMAND " - command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ - -o -type d -print 2> /dev/null | sed 's@^\./@@'" - test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40% - begin - set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT --reverse $FZF_DEFAULT_OPTS $FZF_ALT_C_OPTS" - eval "$FZF_ALT_C_COMMAND | "(__fzfcmd)' +m --query "'$fzf_query'"' | read -l result - - if [ -n "$result" ] - cd $result - - # Remove last token from commandline. - commandline -t "" - end - end - - commandline -f repaint - end - - function __fzfcmd - test -n "$FZF_TMUX"; or set FZF_TMUX 0 - test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40% - if [ -n "$FZF_TMUX_OPTS" ] - echo "fzf-tmux $FZF_TMUX_OPTS -- " - else if [ $FZF_TMUX -eq 1 ] - echo "fzf-tmux -d$FZF_TMUX_HEIGHT -- " - else - echo "fzf" - end - end - - bind \ct fzf-file-widget - bind \cr fzf-history-widget - bind \ec fzf-cd-widget - - if bind -M insert > /dev/null 2>&1 - bind -M insert \ct fzf-file-widget - bind -M insert \cr fzf-history-widget - bind -M insert \ec fzf-cd-widget - end - - function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath and rest of token' - # eval is used to do shell expansion on paths - set -l commandline (eval "printf '%s' "(commandline -t)) - - if [ -z $commandline ] - # Default to current directory with no --query - set dir '.' - set fzf_query '' - else - set dir (__fzf_get_dir $commandline) - - if [ "$dir" = "." -a (string sub -l 1 -- $commandline) != '.' ] - # if $dir is "." but commandline is not a relative path, this means no file path found - set fzf_query $commandline - else - # Also remove trailing slash after dir, to "split" input properly - set fzf_query (string replace -r "^$dir/?" -- '' "$commandline") - end - end - - echo $dir - echo $fzf_query - end - - function __fzf_get_dir -d 'Find the longest existing filepath from input string' - set dir $argv - - # Strip all trailing slashes. Ignore if $dir is root dir (/) - if [ (string length -- $dir) -gt 1 ] - set dir (string replace -r '/*$' -- '' $dir) - end - - # Iteratively check if dir exists and strip tail end of path - while [ ! -d "$dir" ] - # If path is absolute, this can keep going until ends up at / - # If path is relative, this can keep going until entire input is consumed, dirname returns "." - set dir (dirname -- "$dir") - end - - echo $dir - end - -end diff --git a/fish/.config/fish/functions/git_branch.fish b/fish/.config/fish/functions/git_branch.fish deleted file mode 100644 index af82dea..0000000 --- a/fish/.config/fish/functions/git_branch.fish +++ /dev/null @@ -1,6 +0,0 @@ -function git_branch - if is_git - echo (git rev-parse --abbrev-ref HEAD ^/dev/null) - end -end - diff --git a/fish/.config/fish/functions/is_git.fish b/fish/.config/fish/functions/is_git.fish deleted file mode 100644 index a8370f4..0000000 --- a/fish/.config/fish/functions/is_git.fish +++ /dev/null @@ -1,4 +0,0 @@ -function is_git - git rev-parse --verify HEAD >/dev/null 2>&1 -end - diff --git a/fish/.config/fish/functions/is_git_ahead.fish b/fish/.config/fish/functions/is_git_ahead.fish deleted file mode 100644 index 64622fd..0000000 --- a/fish/.config/fish/functions/is_git_ahead.fish +++ /dev/null @@ -1,5 +0,0 @@ -function is_git_ahead - set -l revs (git rev-list origin/(git_branch)..HEAD ^/dev/null) - [ "$revs" != "" ] -end - diff --git a/fish/.config/fish/functions/is_git_dirty.fish b/fish/.config/fish/functions/is_git_dirty.fish deleted file mode 100644 index e24045f..0000000 --- a/fish/.config/fish/functions/is_git_dirty.fish +++ /dev/null @@ -1,13 +0,0 @@ -function is_git_dirty - # based on https://github.com/git/git/blob/master/git-sh-setup.sh#L210 - - is_git; or return 1 - - if git diff-files --quiet --ignore-submodules; and git diff-index --cached --quiet --ignore-submodules HEAD -- - return 1 - else - # we're dirty - return 0 - end -end - diff --git a/fish/.config/fish/functions/ls.fish b/fish/.config/fish/functions/ls.fish deleted file mode 100644 index 1797a94..0000000 --- a/fish/.config/fish/functions/ls.fish +++ /dev/null @@ -1,4 +0,0 @@ -function ls - command ls --color=auto $argv -end - diff --git a/fish/.config/fish/functions/vz.fish b/fish/.config/fish/functions/vz.fish deleted file mode 100644 index 0c353a1..0000000 --- a/fish/.config/fish/functions/vz.fish +++ /dev/null @@ -1,7 +0,0 @@ -function vz - set file (fzf --height 40% --reverse) - if test -f $file - vim $file - end -end -