python-zulip-api/bots/feedback-bot
Luke Faraone d8f13837d9 Move files around in the API.
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)
2013-02-01 15:52:28 -05:00

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)