prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Add time to crontab log message
  When the cron parser is triggered it emits a debug log saying `Running crontab skills`.
  
  It would be more useful if it included the time that opsdroid thinks it is. This would help when trying to debug issues where skills are triggered at the wrong time due to opsdroid having the wrong timezone.
  
  The line which needs updating is [here](https://github.com/opsdroid/opsdroid/blob/master/opsdroid/parsers/crontab.py#L17). 
  
  </issue>
  <code>
  [start of opsdroid/parsers/crontab.py]
  1 """A helper function for parsing and executing crontab skills."""
  2 
  3 import asyncio
  4 import logging
  5 
  6 import arrow
  7 import pycron
  8 
  9 
  10 _LOGGER = logging.getLogger(__name__)
  11 
  12 
  13 async def parse_crontab(opsdroid):
  14     """Parse all crontab skills against the current time."""
  15     while opsdroid.eventloop.is_running():
  16         await asyncio.sleep(60 - arrow.now().time().second)
  17         _LOGGER.debug(_("Running crontab skills"))
  18         for skill in opsdroid.skills:
  19             for matcher in skill.matchers:
  20                 if "crontab" in matcher:
  21                     if matcher["timezone"] is not None:
  22                         timezone = matcher["timezone"]
  23                     else:
  24                         timezone = opsdroid.config.get("timezone", "UTC")
  25                     if pycron.is_now(matcher["crontab"],
  26                                      arrow.now(tz=timezone)):
  27                         await opsdroid.run_skill(skill,
  28                                                  skill.config,
  29                                                  None)
  30
  [end of opsdroid/parsers/crontab.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/opsdroid/parsers/crontab.py b/opsdroid/parsers/crontab.py
  --- a/opsdroid/parsers/crontab.py
  +++ b/opsdroid/parsers/crontab.py
  @@ -1,5 +1,5 @@
   """A helper function for parsing and executing crontab skills."""
  -
  +import time
   import asyncio
   import logging
   
  @@ -14,7 +14,7 @@
       """Parse all crontab skills against the current time."""
       while opsdroid.eventloop.is_running():
           await asyncio.sleep(60 - arrow.now().time().second)
  -        _LOGGER.debug(_("Running crontab skills"))
  +        _LOGGER.debug(_("Running crontab skills at %s "), time.asctime())
           for skill in opsdroid.skills:
               for matcher in skill.matchers:
                   if "crontab" in matcher:
  
verification_info: {"golden_diff": "diff --git a/opsdroid/parsers/crontab.py b/opsdroid/parsers/crontab.py\n--- a/opsdroid/parsers/crontab.py\n+++ b/opsdroid/parsers/crontab.py\n@@ -1,5 +1,5 @@\n \"\"\"A helper function for parsing and executing crontab skills.\"\"\"\n-\n+import time\n import asyncio\n import logging\n \n@@ -14,7 +14,7 @@\n     \"\"\"Parse all crontab skills against the current time.\"\"\"\n     while opsdroid.eventloop.is_running():\n         await asyncio.sleep(60 - arrow.now().time().second)\n-        _LOGGER.debug(_(\"Running crontab skills\"))\n+        _LOGGER.debug(_(\"Running crontab skills at %s \"), time.asctime())\n         for skill in opsdroid.skills:\n             for matcher in skill.matchers:\n                 if \"crontab\" in matcher:\n", "issue": "Add time to crontab log message\nWhen the cron parser is triggered it emits a debug log saying `Running crontab skills`.\r\n\r\nIt would be more useful if it included the time that opsdroid thinks it is. This would help when trying to debug issues where skills are triggered at the wrong time due to opsdroid having the wrong timezone.\r\n\r\nThe line which needs updating is [here](https://github.com/opsdroid/opsdroid/blob/master/opsdroid/parsers/crontab.py#L17). \n", "before_files": [{"content": "\"\"\"A helper function for parsing and executing crontab skills.\"\"\"\n\nimport asyncio\nimport logging\n\nimport arrow\nimport pycron\n\n\n_LOGGER = logging.getLogger(__name__)\n\n\nasync def parse_crontab(opsdroid):\n    \"\"\"Parse all crontab skills against the current time.\"\"\"\n    while opsdroid.eventloop.is_running():\n        await asyncio.sleep(60 - arrow.now().time().second)\n        _LOGGER.debug(_(\"Running crontab skills\"))\n        for skill in opsdroid.skills:\n            for matcher in skill.matchers:\n                if \"crontab\" in matcher:\n                    if matcher[\"timezone\"] is not None:\n                        timezone = matcher[\"timezone\"]\n                    else:\n                        timezone = opsdroid.config.get(\"timezone\", \"UTC\")\n                    if pycron.is_now(matcher[\"crontab\"],\n                                     arrow.now(tz=timezone)):\n                        await opsdroid.run_skill(skill,\n                                                 skill.config,\n                                                 None)\n", "path": "opsdroid/parsers/crontab.py"}]}