From b58cd3fc68856263a253a6197755189cc849af03 Mon Sep 17 00:00:00 2001 From: Herb Miller Jr Date: Tue, 29 Nov 2016 21:00:21 -0500 Subject: [PATCH 1/2] Added extensions.rb which monkey patch's Chinch's Chinch::User::send to check for environment variable SILENT_MODE before private messaging the user. Included SILENT_MODE in .env.example --- .env.example | 2 ++ extensions.rb | 13 +++++++++++++ showbot_irc.rb | 1 + 3 files changed, 16 insertions(+) create mode 100644 extensions.rb diff --git a/.env.example b/.env.example index c09d40b..99add8f 100644 --- a/.env.example +++ b/.env.example @@ -39,6 +39,8 @@ LIVE_MODE=true # Digital Ocean Droplet Admin # DO_API_KEY=xxxxxxxxx +SILENT_MODE=false + ############################################################ # SOCKET_KEY_ID # Default: false, websocket cx will be ID'd by request.ip diff --git a/extensions.rb b/extensions.rb new file mode 100644 index 0000000..7fd41c7 --- /dev/null +++ b/extensions.rb @@ -0,0 +1,13 @@ +require 'cinchize' + +SILENT_MODE="SILENT_MODE" + +class Cinch::User + def send(text) + if ENV[SILENT_MODE].downcase == 'true' + puts "%s: Private message to %s = %s" % [SILENT_MODE, nick, text] + else + super text + end + end +end diff --git a/showbot_irc.rb b/showbot_irc.rb index e50d510..b61dc88 100644 --- a/showbot_irc.rb +++ b/showbot_irc.rb @@ -2,6 +2,7 @@ require 'optparse' require 'cinchize' +require './extensions.rb' require 'droplet_kit' require 'auth/admin_plugin' From 2f9d7e754b0024270b3870f18723a9a0938043a7 Mon Sep 17 00:00:00 2001 From: Herb Miller Jr Date: Tue, 29 Nov 2016 21:24:57 -0500 Subject: [PATCH 2/2] Applied SILENT_MODE monkey patch to reply and action_reply as well. --- extensions.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/extensions.rb b/extensions.rb index 7fd41c7..4cf1bd1 100644 --- a/extensions.rb +++ b/extensions.rb @@ -11,3 +11,29 @@ def send(text) end end end + +class Cinch::Message + def reply(text) + if ENV[SILENT_MODE].downcase == 'true' + puts "%s: Reply to %s = %s" % [SILENT_MODE, user.nick, text] + else + text = text.to_s + if @channel && prefix + text = text.split("\n").map {|l| "#{user.nick}: #{l}"}.join("\n") + end + reply_target.send(text) + end + end +end + +class Cinch::Message + def action_reply(text) + if ENV[SILENT_MODE].downcase == 'true' + puts "%s: Action reply to %s = %s" % [SILENT_MODE, user.nick, text] + else + text = text.to_s + reply_target.action(text) + end + end +end +