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)
This commit is contained in:
parent
2a47fc4777
commit
d8f13837d9
23 changed files with 5 additions and 4 deletions
58
bots/feedback-bot
Executable file
58
bots/feedback-bot
Executable file
|
@ -0,0 +1,58 @@
|
|||
#!/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)
|
Loading…
Add table
Add a link
Reference in a new issue