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