Make markov chain-enabled channels reloadable
This commit is contained in:
parent
d05d0e7cb6
commit
89dddd00e4
1 changed files with 33 additions and 2 deletions
35
rowbot
35
rowbot
|
@ -210,6 +210,14 @@ if [[ $markov_seed ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $reload = yes ]]; then
|
if [[ $reload = yes ]]; then
|
||||||
|
if [[ -v RECORDING ]]; then
|
||||||
|
IFS=, read -ra recording <<< "$RECORDING"
|
||||||
|
|
||||||
|
for pair in "${recording[@]}"; do
|
||||||
|
enabled[${pair%=*}]=${pair##*=}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
reload_vars=(
|
reload_vars=(
|
||||||
nick ident host level log log_fd alarm_pid tls_pid in_sock
|
nick ident host level log log_fd alarm_pid tls_pid in_sock
|
||||||
out_sock sock_dir sys_root fact_root dev trigger registered
|
out_sock sock_dir sys_root fact_root dev trigger registered
|
||||||
|
@ -291,10 +299,18 @@ config-reload() {
|
||||||
exec {log_fd}>"$log"
|
exec {log_fd}>"$log"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -v markov_chains[@] ]]; then
|
||||||
|
for key in "${!enabled[@]}"; do
|
||||||
|
recording+=",%s=%s" "$key" "${enabled[$key]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
export RECORDING=${recording#,}
|
||||||
|
fi
|
||||||
|
|
||||||
reload_vars=(
|
reload_vars=(
|
||||||
nick ident host level log log_fd alarm_pid tls_pid in_sock
|
nick ident host level log log_fd alarm_pid tls_pid in_sock
|
||||||
out_sock sock_dir sys_root fact_root dev trigger registered
|
out_sock sock_dir sys_root fact_root dev trigger registered
|
||||||
keep_trying desired_nick
|
keep_trying desired_nick
|
||||||
)
|
)
|
||||||
|
|
||||||
for env_var in "${reload_vars[@]}"; do
|
for env_var in "${reload_vars[@]}"; do
|
||||||
|
@ -722,6 +738,13 @@ hook_cmd_markov() {
|
||||||
enabled[$to]=no
|
enabled[$to]=no
|
||||||
privmsg "$to" "no longer recording $to"
|
privmsg "$to" "no longer recording $to"
|
||||||
;;
|
;;
|
||||||
|
enabled\?)
|
||||||
|
if [[ ${to:0:1} != \# || ${enabled[$to]} = yes ]]; then
|
||||||
|
privmsg "$to" "yes, I am recording $to for markov chains."
|
||||||
|
else
|
||||||
|
privmsg "$to" "no, I am not recording $to for markov chains"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
markov)
|
markov)
|
||||||
keys=("${!markov_chains[@]}")
|
keys=("${!markov_chains[@]}")
|
||||||
(( idx = RANDOM % ${#keys[@]} ))
|
(( idx = RANDOM % ${#keys[@]} ))
|
||||||
|
@ -804,7 +827,7 @@ hook_cmd_control_panel() {
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local channel env_var reload_vars recipient msg
|
local channel key recording env_var reload_vars recipient msg
|
||||||
|
|
||||||
case $action in
|
case $action in
|
||||||
raw)
|
raw)
|
||||||
|
@ -818,6 +841,14 @@ hook_cmd_control_panel() {
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
reload)
|
reload)
|
||||||
|
if [[ -v markov_chains[@] ]]; then
|
||||||
|
for key in "${!enabled[@]}"; do
|
||||||
|
recording+=",$key=${enabled[$key]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
export RECORDING=${recording#,}
|
||||||
|
fi
|
||||||
|
|
||||||
reload_vars=(
|
reload_vars=(
|
||||||
nick ident host level log log_fd alarm_pid tls_pid in_sock
|
nick ident host level log log_fd alarm_pid tls_pid in_sock
|
||||||
out_sock sock_dir sys_root fact_root dev trigger registered
|
out_sock sock_dir sys_root fact_root dev trigger registered
|
||||||
|
|
Loading…
Reference in a new issue