d8f13837d9
Bots are not part of what we distribute, so put them in the repo root. We also updated some of the bots to use relative path names. (imported from commit 0471d863450712fd0cdb651f39f32e9041df52ba)
59 lines
1.8 KiB
Python
Executable file
59 lines
1.8 KiB
Python
Executable file
#!/usr/bin/python
|
|
import sys
|
|
from os import path
|
|
import logging
|
|
|
|
sys.path.append(path.join(path.dirname(__file__), '..'))
|
|
import humbug
|
|
|
|
class StreamLogger(object):
|
|
"""
|
|
Give a file-like interface to a logger instance.
|
|
"""
|
|
def __init__(self, logger, log_level=logging.INFO):
|
|
self.logger = logger
|
|
self.log_level = log_level
|
|
self.buffer = ""
|
|
|
|
def write(self, message):
|
|
self.buffer += message
|
|
|
|
if message[-1] == "\n":
|
|
self.logger.log(self.log_level, self.buffer.rstrip())
|
|
self.buffer = ""
|
|
|
|
logging.basicConfig(filename="/var/log/humbug/feedback-bot.log",
|
|
level=logging.DEBUG, format="%(asctime)s %(levelname)s\t%(message)s")
|
|
|
|
# The API prints to stdout, so capture and format those messages as well.
|
|
stdout_logger = StreamLogger(logging.getLogger("stdout"), logging.INFO)
|
|
sys.stdout = stdout_logger
|
|
|
|
stderr_logger = StreamLogger(logging.getLogger("stderr"), logging.ERROR)
|
|
sys.stderr = stderr_logger
|
|
|
|
prod_client = humbug.Client(
|
|
email="feedback@humbughq.com",
|
|
api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
verbose=True,
|
|
site="https://humbughq.com")
|
|
staging_client = humbug.Client(
|
|
email="feedback@humbughq.com",
|
|
api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
verbose=True,
|
|
site="https://staging.humbughq.com")
|
|
|
|
def forward_message(message):
|
|
if message["type"] != "private" or len(message["display_recipient"]) != 2:
|
|
return
|
|
forwarded_message = {
|
|
"type": "stream",
|
|
"to": "support",
|
|
"subject": "feedback from %s" % message["sender_email"],
|
|
"content": message["content"],
|
|
}
|
|
staging_client.send_message(forwarded_message)
|
|
logging.info("Forwarded feedback from %s" % (message["sender_email"],))
|
|
|
|
prod_client.call_on_each_message(forward_message)
|