URI: 
       brcon-countdown - annna - Annna the nice friendly bot.
  HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
       ---
       brcon-countdown (1883B)
       ---
            1 #!/bin/sh
            2 
            3 PATH="$HOME/bin:$PATH"
            4 
            5 announcechannels="#bitreich-en #bitreich-con irc.libera.chat/#gopherproject"
            6 schedulebase="/br/gopher/con/%s/index.gph"
            7 
            8 function announce {
            9         announcechannels="$1"
           10         announcestr="$2"
           11 
           12         #echo "$announcestr"
           13         annna-say -c "${announcechannels}" "${announcestr}"
           14 }
           15 
           16 if [ $# -gt 0 ];
           17 then
           18         curdate="$1T00:00:00"
           19 else
           20         curdate="$(date +%Y-%m-%d -d "00:00:00")"
           21 fi
           22 
           23 year="$(date +%Y -d "${curdate}")"
           24 schedule="$(printf "${schedulebase}" "${year}")"
           25 
           26 days="$(grep -E "^${year}-[0-9]{2}-[0-9]{2} - " "${schedule}" | cut -d' ' -f 1)"
           27 fromdate="$(printf "%s\n" "${days}" | head -n 1)"
           28 todate="$(printf "%s\n" "${days}" | tail -n 1)"
           29 
           30 daysuntil=$((($(date +%s -d "${fromdate}T00:00:00") - $(date +%s -d "${curdate}")) / 3600 / 24))
           31 if [ $daysuntil -gt 0 ];
           32 then
           33         case "$daysuntil" in
           34         1)
           35                 daysstr="$(int2bit ${daysuntil}) day"
           36                 ;;
           37         *)
           38                 daysstr="$(int2bit ${daysuntil}) days"
           39                 ;;
           40         esac
           41         announce "${announcechannels}" \
           42                 "$(printf "%s until bitreichcon! gophers://bitreich.org/1/con/%s\n" \
           43                 "${daysstr}" "${year}")"
           44         exit 0
           45 fi
           46 
           47 dayssince=$((($(date +%s -d "${curdate}") - $(date +%s -d "${todate}T00:00:00")) / 3600 / 24))
           48 if [ $dayssince -gt 0 ];
           49 then
           50         [ $dayssince -gt 10 ] && exit 0
           51 
           52         case "$dayssince" in
           53         1)
           54                 daysstr="$(int2bit ${dayssince}) day"
           55                 ;;
           56         *)
           57                 daysstr="$(int2bit ${dayssince}) days"
           58                 ;;
           59         esac
           60 
           61         announce "${announcechannels}" \
           62                 "$(printf "It has been %s since bitreichcon. Are you still happy?\n" \
           63                 "${daysstr}")"
           64         exit 0
           65 fi
           66 
           67 conferenceday=$((($(date +%s -d "${curdate}") - $(date +%s -d "${fromdate}T00:00:00")) / 3600 / 24))
           68 daytopic="$(grep -E "^$(date +%Y-%m-%d -d"${curdate}") - " "${schedule}" | cut -d' ' -f 3-)"
           69 announce "${announcechannels}" \
           70         "$(printf "Welcome to bitreichcon %s day %s ( %s )! Schedule: gophers://bitreich.org/1/con/%s\n" \
           71         "${year}" "$(int2bit ${conferenceday})" "${daytopic}" "${year}")"
           72 
           73 exit 0
           74