 f2f4a2f8bd
			
		
	
	
		f2f4a2f8bd
		
	
	
	
	
		
			
			Previously, if users of our code put the API folder in their pyshared they would have to import it as "humbug.humbug". By moving Humbug's API into a directory named "humbug" and moving the API into __init__, you can just "import humbug". (imported from commit 1d2654ae57f8ecbbfe76559de267ec4889708ee8)
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			58 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)
 |