summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2018-09-26 23:13:34 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2018-10-02 19:02:25 -0400
commit9b4143cbd11ee5dc03d235b1fe289a83ebab512a (patch)
tree879a31d57707a841f0250038a47786f6564ce00d
parent1f4e3fb9013b8e65db7be06df6b91995e7b56156 (diff)
housekeeping
-rw-r--r--modules/m_spamfilter.sh37
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}" ; }