]> git.cworth.org Git - turbot/blobdiff - turbot_lambda/lambda_function.py
Share the rot() implementation between both Lambda and Flask implementations
[turbot] / turbot_lambda / lambda_function.py
index fe545b8eed418176f9f877877991144eeb8de825..53251d29b71baa5779a1be054bc7fa1797661daf 100644 (file)
@@ -1,60 +1,4 @@
-import re
-
-def rot_string(str, n=13):
-    """Return a rotated version of a string
-
-    Specifically, this functions returns a version of the input string
-    where each uppercase letter has been advanced 'n' positions in the
-    alphabet (wrapping around). Lowercase letters and any non-alphabetic
-    characters will be unchanged."""
-
-    result = ''
-    for letter in str:
-        if letter.isupper():
-            result += chr(ord("A") + (ord(letter) - ord("A") + n) % 26)
-        else:
-            result += letter
-    return result
-
-def rot(args):
-    """Implements logic for /rot slash command in Slack, returning a string
-
-    This implements the /rot command of our Slack bot. The format of this
-    command is as follows:
-
-        /rot [count|*] String to be rotated
-
-    The optional count indicates an amount to rotate each character in the
-    string. If the count is '*' or is not present, then the string will
-    be rotated through all possible 25 values.
-
-    The result of the rotation is returned as a string (with Slack
-    formatting)."""
-
-    match = re.match(r'^([0-9]+|\*) (.*)$', args)
-    if (match):
-        try:
-            count = int(match.group(1))
-        except ValueError:
-            count = None
-        text = match.group(2)
-    else:
-        count = None
-        text = args
-
-    text = text.upper()
-
-    reply = "```/rot {} {}\n".format(count if count else '*', text)
-
-    if count:
-        reply += rot_string(text, count)
-    else:
-        reply += "\n".join(["{:02d} ".format(count) + rot_string(text, count)
-                            for count in range(1, 26)])
-
-    reply += "```"
-
-    return reply
+from turbot.rot import rot
 
 def lambda_handler(event, context):
     """Top-level entry point for our lambda function.