zulip_bots: Clean gyphy bot code.
This commit is contained in:
		
							parent
							
								
									6542f8c867
								
							
						
					
					
						commit
						be5a7a8c4a
					
				
					 1 changed files with 5 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -1,10 +1,6 @@
 | 
			
		|||
from configparser import SafeConfigParser
 | 
			
		||||
from typing import Dict, Any, Union
 | 
			
		||||
import requests
 | 
			
		||||
import logging
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
import re
 | 
			
		||||
from requests.exceptions import HTTPError, ConnectionError
 | 
			
		||||
 | 
			
		||||
from zulip_bots.custom_exceptions import ConfigValidationError
 | 
			
		||||
| 
						 | 
				
			
			@ -12,14 +8,15 @@ from zulip_bots.custom_exceptions import ConfigValidationError
 | 
			
		|||
GIPHY_TRANSLATE_API = 'http://api.giphy.com/v1/gifs/translate'
 | 
			
		||||
GIPHY_RANDOM_API = 'http://api.giphy.com/v1/gifs/random'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GiphyHandler(object):
 | 
			
		||||
    '''
 | 
			
		||||
    """
 | 
			
		||||
    This plugin posts a GIF in response to the keywords provided by the user.
 | 
			
		||||
    Images are provided by Giphy, through the public API.
 | 
			
		||||
    The bot looks for messages starting with @mention of the bot
 | 
			
		||||
    and responds with a message with the GIF based on provided keywords.
 | 
			
		||||
    It also responds to private messages.
 | 
			
		||||
    '''
 | 
			
		||||
    """
 | 
			
		||||
    def usage(self) -> str:
 | 
			
		||||
        return '''
 | 
			
		||||
            This plugin allows users to post GIFs provided by Giphy.
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +35,7 @@ class GiphyHandler(object):
 | 
			
		|||
            raise ConfigValidationError(str(e))
 | 
			
		||||
        except HTTPError as e:
 | 
			
		||||
            error_message = str(e)
 | 
			
		||||
            if (data.status_code == 403):
 | 
			
		||||
            if data.status_code == 403:
 | 
			
		||||
                error_message += ('This is likely due to an invalid key.\n'
 | 
			
		||||
                                  'Follow the instructions in doc.md for setting an API key.')
 | 
			
		||||
            raise ConfigValidationError(error_message)
 | 
			
		||||
| 
						 | 
				
			
			@ -83,6 +80,7 @@ def get_url_gif_giphy(keyword: str, api_key: str) -> Union[int, str]:
 | 
			
		|||
        raise GiphyNoResultException()
 | 
			
		||||
    return gif_url
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_bot_giphy_response(message: Dict[str, str], bot_handler: Any, config_info: Dict[str, str]) -> str:
 | 
			
		||||
    # Each exception has a specific reply should "gif_url" return a number.
 | 
			
		||||
    # The bot will post the appropriate message for the error.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue