diff --git a/highlightxmpp.py b/highlightxmpp.py index 768827c..8313616 100644 --- a/highlightxmpp.py +++ b/highlightxmpp.py @@ -40,6 +40,7 @@ # # /set plugins.var.python.highlightxmpp.debug off # +import os import subprocess import weechat @@ -63,6 +64,9 @@ def send_xmpp(data, signal, message): command = weechat.config_get_plugin('command').split(' ') debug = weechat.config_get_plugin('debug') == 'on' + if os.path.exists(os.path.expanduser("~/.dont_send_xmpp")): + return weechat.WEECHAT_RC_OK + if not jid: weechat.prnt('', 'You need to provide destination JID to use this ' 'plugin.') @@ -70,19 +74,26 @@ def send_xmpp(data, signal, message): command.append(jid) - pipe = subprocess.Popen(command, stdin=subprocess.PIPE, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) + try: + pipe = subprocess.Popen(command, stdin=subprocess.PIPE, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + except FileNotFoundError as ex: + if debug: + weechat.prnt('', 'Command %s cannot be find.' % ex.filename) + return weechat.WEECHAT_RC_OK + try: message = message.encode() except UnicodeDecodeError: pass - _, stderr = pipe.communicate(input=message) + # don't throw your output on the screen. + res = pipe.communicate(input=message) if pipe.returncode != 0 and debug: try: - stderr = stderr.decode() + stderr = res[1].decode() except UnicodeDecodeError: - pass + stderr = res[1] weechat.prnt('', 'Error sending message to %s:\n%s' % (jid, stderr)) return weechat.WEECHAT_RC_OK