diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2018-09-26 23:13:34 -0400 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2018-10-02 19:02:25 -0400 |
commit | 9b4143cbd11ee5dc03d235b1fe289a83ebab512a (patch) | |
tree | 879a31d57707a841f0250038a47786f6564ce00d | |
parent | 1f4e3fb9013b8e65db7be06df6b91995e7b56156 (diff) |
housekeeping
-rw-r--r-- | modules/m_spamfilter.sh | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/modules/m_spamfilter.sh b/modules/m_spamfilter.sh index 3b62f0e..97f6018 100644 --- a/modules/m_spamfilter.sh +++ b/modules/m_spamfilter.sh @@ -29,12 +29,10 @@ #-------------------------------------------------------------------------# +# relay configuration readonly RELAY_NICK='a-user' -readonly FILTER_CHANNELS="${config_module_spamfilter_channels}" readonly II_DIR=/home/pbot/irc/${config_server} -readonly II_LOG_REGEX='[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2} ' readonly IS_RELAY_BOT_REGISTERED=0 -readonly BOT_PASS="${config_server_passwd}" # generic spam-like regexes readonly ASCII_SET_REGEX='[^ -~]' @@ -72,6 +70,13 @@ readonly SPAM=( 'LRH OFFICIAL:' ) +# static constants +readonly II_LOG_REGEX='[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2} ' + +# runtime constants +readonly FILTER_CHANNELS="${config_module_spamfilter_channels}" +readonly BOT_PASS="${config_server_passwd}" + ## setup/teardown ## @@ -169,18 +174,18 @@ DBG_SPAMFILTER_RELAY_CHAT ## helpers ## -is_internal_user() # (sender) +is_filtered_channel() # (target) { - local sender=$1 + local target=$1 - [[ " ${RELAY_NICK} ${INJECT_NICK} " =~ " ${sender} " ]] + [[ " ${FILTER_CHANNELS} " =~ " ${target} " ]] } -is_filtered_channel() # (target) +is_internal_user() # (sender) { - local target=$1 + local sender=$1 - [[ " ${FILTER_CHANNELS} " =~ " ${target} " ]] + [[ " ${RELAY_NICK} ${INJECT_NICK} " =~ " ${sender} " ]] } is_public_chat() # (sender , query) @@ -234,12 +239,14 @@ DBG_SPAMFILTER_CRITERIA() { (( ${DEBUG} )) || return - echo -n "[SPAMFILTER]: target='${target}'" ; ! is_filtered_channel "${target}" && echo -n " => wrong channel - returning" ; echo ; - echo -n "[SPAMFILTER]: sender='${sender}'" ; is_internal_user "${sender}" && echo -n " => from internal user - returning" ; echo ; - echo -n "[SPAMFILTER]: query='${query}'" ; is_public_chat "${sender}" "${query}" && echo -n " => from registered user - returning" ; - is_nonsense "${query}" && echo -n " => is nonsense - returning" ; - is_shared_lib_error "${query}" && echo -n " => is shared lib error - returning" ; - is_spam "${query}" && echo -n " => is known spam - returning" ; echo ; + echo -n "[SPAMFILTER]: target='${target}'" ; ! is_filtered_channel "${target}" && echo " => wrong channel - ignoring" && return ; + echo -n "[SPAMFILTER]: sender='${sender}'" ; is_internal_user "${sender}" && echo " => from internal user - ignoring" && return ; + echo -n "[SPAMFILTER]: query='${query}'" ; is_public_chat "${sender}" "${query}" && echo " => from registered user - ignoring" && return ; + is_nonsense "${query}" && echo -n " => is nonsense" ; + ! is_shared_lib_error "${query}" && echo -n " => is not shared lib error" ; + (is_nonsense "${query}" && \ + ! is_shared_lib_error "${query}" ) && echo " - suppressing" && return ; + is_spam "${query}" && echo " => is known spam - suppressing" && return ; } DBG_SPAMFILTER() { (( ${DEBUG} )) && echo "[SPAMFILTER]: !!!triggered!!! sender=${sender}" ; } DBG_SPAMFILTER_RELAY_CHAT() { (( ${DEBUG} )) && echo "[SPAMFILTER]: relaying chat from unregistered user sender=${sender}" ; } |