diff options
Diffstat (limited to 'bin/ii-answer')
-rwxr-xr-x | bin/ii-answer | 56 |
1 files changed, 37 insertions, 19 deletions
diff --git a/bin/ii-answer b/bin/ii-answer index ffaa08b..16fbb78 100755 --- a/bin/ii-answer +++ b/bin/ii-answer @@ -7,25 +7,43 @@ # shellcheck source=../lib/load-configuration . "${0%/*}/../lib/load-configuration" -# welcome devs (in #archlinux32 only) -welcome_user_regex='^\S\+ -!- \(abaumann\|buildmaster\|deep42thought\|girls\|nit-picker\|tyzoid\)(.* has joined \S\+$' -new_users=$( - sed -i ' - s/'"${welcome_user_regex}"'/\1/ - T - w /dev/stdout - d - ' "${irc_dir}/#archlinux32/out" | \ - sort -u -) -if [ -n "${new_users}" ]; then - printf '%s\n' "${new_users}" | \ - sed ' - s/^.*$/Hi \0!\n!rq \0/ - s/Hi buildmaster!\n// - ' | \ - irc_say '' 'copy' -fi +# welcome devs (in #archlinux32 and #archlinux32-devops only) +welcome_user_regex='^\S\+ -!- \(abaumann\|deep42thought\)(.* has joined \S\+$' +for channel in '#archlinux32:Hi \0!\n!rq \0' '#archlinux32-devops:Hi \0!'; do + new_users=$( + sed -i ' + s/'"${welcome_user_regex}"'/\1/ + T + w /dev/stdout + d + ' "${irc_dir}/${channel%%:*}/out" \ + | grep -vxF "$( + { + printf '%s SNIP\n' $(($(date +%s)-5*60)) + cat "${irc_dir}/out" + cat "${irc_dir}/${channel%%:*}/out" + } \ + | sort -k1nr,1 \ + | sed ' + /^\S\+ SNIP$/q + ' \ + | sed ' + s/^\S\+\s\+-!- \([^([:space:]]\+\)\((\S\+\)\? has quit.*$/\1/ + t + d + ' \ + | sort -u + )" \ + | sort -u + ) + if [ -n "${new_users}" ]; then + printf '%s\n' "${new_users}" | \ + sed ' + s/^.*$/'"${channel#*:}"'/ + ' | \ + irc_say "${channel%%:*}" 'copy' + fi +done find "${irc_dir}" \ -type f \ |