bots: Move "EmbeddedBotHandler" class to "zerver/lib/bot_lib.py" file.
This would keep embedded classes for zulip at one place, that is, in "zerver" directory. This also fixes break in PyPI package for bindings.
This commit is contained in:
		
							parent
							
								
									3c41033d8c
								
							
						
					
					
						commit
						400d46a532
					
				
					 1 changed files with 0 additions and 39 deletions
				
			
		| 
						 | 
				
			
			@ -6,8 +6,6 @@ import signal
 | 
			
		|||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import re
 | 
			
		||||
from zerver.lib.actions import internal_send_message
 | 
			
		||||
from zerver.models import UserProfile
 | 
			
		||||
 | 
			
		||||
from six.moves import configparser
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -111,43 +109,6 @@ class ExternalBotHandler(object):
 | 
			
		|||
        config.readfp(open(conf_file_path))  # type: ignore
 | 
			
		||||
        return dict(config.items(section))
 | 
			
		||||
 | 
			
		||||
class EmbeddedBotHandler(object):
 | 
			
		||||
    def __init__(self, user_profile):
 | 
			
		||||
        # type: (UserProfile) -> None
 | 
			
		||||
        # Only expose a subset of our UserProfile's functionality
 | 
			
		||||
        self.user_profile = user_profile
 | 
			
		||||
        self._rate_limit = RateLimit(20, 5)
 | 
			
		||||
        try:
 | 
			
		||||
            self.full_name = user_profile['full_name']
 | 
			
		||||
            self.email = user_profile['email']
 | 
			
		||||
        except KeyError:
 | 
			
		||||
            logging.error('Cannot fetch user profile, make sure you have set'
 | 
			
		||||
                          ' up the zuliprc file correctly.')
 | 
			
		||||
            sys.exit(1)
 | 
			
		||||
 | 
			
		||||
    def send_message(self, message):
 | 
			
		||||
        # type: (Dict[str, Any]) -> None
 | 
			
		||||
        if self._rate_limit.is_legal():
 | 
			
		||||
            internal_send_message(realm=self.user_profile.realm, sender_email=message['sender'],
 | 
			
		||||
                                  recipient_type_name=message['type'], recipients=message['to'],
 | 
			
		||||
                                  subject=message['subject'], content=message['content'])
 | 
			
		||||
        else:
 | 
			
		||||
            self._rate_limit.show_error_and_exit()
 | 
			
		||||
 | 
			
		||||
    def send_reply(self, message, response):
 | 
			
		||||
        # type: (Dict[str, Any], str) -> None
 | 
			
		||||
        send_reply(message, response, self.email, self.send_message)
 | 
			
		||||
 | 
			
		||||
    def get_config_info(self, bot_name, section=None):
 | 
			
		||||
        # type: (str, Optional[str]) -> Dict[str, Any]
 | 
			
		||||
        conf_file_path = os.path.realpath(os.path.join(
 | 
			
		||||
            our_dir, '..', 'bots', bot_name, bot_name + '.conf'))
 | 
			
		||||
        section = section or bot_name
 | 
			
		||||
        config = configparser.ConfigParser()
 | 
			
		||||
        config.readfp(open(conf_file_path))  # type: ignore
 | 
			
		||||
        return dict(config.items(section))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class StateHandler(object):
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        # type: () -> None
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue