class ShortcutTracker: def __init__(self, replayScript): self.replayScript = replayScript self.unmatchedCommands = [] self.reset() def reset(self): self.replayScript = ReplayScript(self.replayScript.name) self.currCommand = self.replayScript.getCommand() def updateCompletes(self, line): if line == self.currCommand: self.currCommand = self.replayScript.getCommand() return not self.currCommand else: self.unmatchedCommands += self.replayScript.getCommandsSoFar() self.unmatchedCommands.append(line) self.reset() return False def getNewCommands(self): self.reset() self.unmatchedCommands.append(self.replayScript.getShortcutName().lower()) return self.unmatchedCommands def isLongerThan(self, otherTracker): return len(self.replayScript.commands) > len(otherTracker.replayScript.commands)
def runShortcutCommands(self, recordScript, shortcut, args): shortcutCopy = ReplayScript(shortcut.name, True) while not shortcutCopy.hasTerminated(): command = shortcutCopy.getCommand(args) self.recordShortcutCommand(recordScript, command)