Jason R. Coombs avatar Jason R. Coombs committed cba8f5d

Added PeriodicCommandFixedDelay

Comments (0)

Files changed (2)

+1.1
+===
+
+* Added irc.client.PeriodicCommandFixedDelay. Schedule this command
+  to have a function executed at a specific time and then at periodic
+  intervals thereafter.
+
 1.0
 ===
 
         cmd.arguments = arguments
         return cmd
 
+    @classmethod
     def at_time(cls, at, function, arguments):
         """
         Construct a DelayedCommand to come due at `at`, where `at` may be
             at = datetime.datetime.utcfromtimestamp(at)
         delay = at - datetime.datetime.utcnow()
         return cls(delay, function, arguments)
-    at_time = classmethod(at_time)
 
     def due(self):
         return datetime.datetime.utcnow() >= self
         return PeriodicCommand(self.delay, self.function,
             self.arguments)
 
+class PeriodicCommandFixedDelay(PeriodicCommand):
+    """
+    Like a periodic command, but don't calculate the delay based on
+    the current time. Instead use a fixed delay following the initial
+    run.
+    """
+    @classmethod
+    def at_time(cls, at, delay, function, arguments):
+        cmd = cls.at_time(at, function, arguments)
+        cmd.delay = delay
+        return cmd
+
 _rfc_1459_command_regexp = re.compile("^(:(?P<prefix>[^ ]+) +)?(?P<command>[^ ]+)( *(?P<argument> .+))?")
 
 class Connection(object):
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.