Exemple #1
0
 def run(self, event):
     if event.command_args.count(" ") == 0:
         number = event.command_args
         lang = "american"
     elif event.command_args.split()[1].lower() in ["british", "english"]:
         number = event.command_args.split()[0]
         lang = "english"
     elif event.command_args.split()[1].lower() in ["european", "french"]:
         number = event.command_args.split()[0]
         lang = "european"
     else:
         number = event.command_args.split()[0]
         lang = "american"
     if Commons.check_numbers(number):
         number = number
     elif Commons.check_calculation(number):
         function_dispatcher = event.server.hallo.function_dispatcher
         calc_func = function_dispatcher.get_function_by_name("calc")
         calc_obj = function_dispatcher.get_function_object(
             calc_func)  # type: Calculate
         number = calc_obj.process_calculation(number)
     else:
         return event.create_response(
             "Error, you must enter a valid number or calculation.")
     return event.create_response(self.number_word(number, lang) + ".")
Exemple #2
0
 def passive_run(self, event, hallo_obj):
     """Replies to an event not directly addressed to the bot."""
     if not isinstance(event, EventMessage):
         return
     # Check if fullLine is a calculation, and is not just numbers, and contains numbers.
     if not Commons.check_calculation(event.text):
         return None
     if Commons.check_numbers(event.text.replace(".", "")):
         return None
     if not any([
             char in event.text
             for char in [str(x) for x in range(10)] + ["e", "pi"]
     ]):
         return None
     # Clean up the line and feed to the calculator.
     calc = event.text.replace(" ", "").lower()
     try:
         self.preflight_checks(calc)
         answer = self.process_calculation(calc)
         return event.create_response(answer)
     except Exception as e:
         logger.error("Passive calc failed: ", exc_info=e)
         return None
Exemple #3
0
def test_check_numbers__invalid(calculation):
    assert not Commons.check_numbers(calculation), (
        "Invalid string judged to be calculation, " + calculation)
Exemple #4
0
def test_check_numbers__valid(calculation):
    assert Commons.check_numbers(calculation), (
        "Valid string judged to be not calculation, " + calculation)