diff options
-rwxr-xr-x | bin/ii-answer | 13 | ||||
-rwxr-xr-x | lib/common-functions | 14 |
2 files changed, 25 insertions, 2 deletions
diff --git a/bin/ii-answer b/bin/ii-answer index 06bc3c0..779e1e9 100755 --- a/bin/ii-answer +++ b/bin/ii-answer @@ -115,4 +115,17 @@ find "${irc_dir}" \ printf 'np\n' | \ irc_say "${channel}" 'copy' fi + if [ -z "${channel%%#*}" ]; then + # answer "Shut up!" + regex='^\S\+ <\S\+> .* [Ss][Hh][Uu][Tt] \?[Uu][Pp]' + if grep "${regex}" "${out_file}" | \ + grep -q "${sloppy_salutation}"; then + sed -i "/${regex}/d" "${out_file}" + printf '%s\n' "$(( + $(date '+%s') + 3600 + ))" > "${work_dir}/irc-shut-up" + printf 'Sorry, I will do.\n' | \ + irc_say "${channel}" 'copy' + fi + fi done diff --git a/lib/common-functions b/lib/common-functions index 4c852ac..be35144 100755 --- a/lib/common-functions +++ b/lib/common-functions @@ -708,16 +708,26 @@ extract_pkgname_epoch_pkgver_pkgrel_sub_pkgrel_arch_from_package_name() { # shellcheck disable=SC2120 irc_say() { local channel + local channel_in_pipe if [ -z "$1" ]; then channel='#archlinux32' else channel="$1" fi + if [ -s "${work_dir}/irc-shut-up" ] && \ + [ "$(date '+%s')" -gt "$(cat "${work_dir}/irc-shut-up")" ]; then + rm "${work_dir}/irc-shut-up" + fi + if [ -s "${work_dir}/irc-shut-up" ]; then + channel_in_pipe='/dev/null' + else + channel_in_pipe="${irc_dir}/${channel}/in" + fi if [ -p "${irc_dir}/${channel}/in" ]; then if [ "$2" = 'copy' ]; then - pee cat 'sponge '"${irc_dir}/${channel}/in" + pee cat 'sponge '"${channel_in_pipe}" else - sponge "${irc_dir}/${channel}/in" + sponge "${channel_in_pipe}" fi fi } |