def sendMessage(self, message): if not isinstance(message, unicode): message = message.decode('utf-8') print '%s %r' % (time.strftime('%Y-%m-%d %H:%M:%S'), message) if message == self.lastMessage: if time.time() - self.lastTime < 5: print 'Suppressing duplicate message' self.dupeMessages += 1 return elif self.dupeMessages > 1: message = '%s (repeated %s times)' % (message, self.dupeMessages) # Otherwise, drop any outstanding dupes for now self.lastMessage = message self.lastTime = time.time() self.dupeMessages = 0 try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) server = config.get('irccat', 'server') port = config.getint('irccat', 'port') s.connect((server, port)) s.send(message.encode('utf-8')) s.close() except Exception, e: print 'Exception in main loop: %s' % repr(e)
def sendMessage(self, message): if not isinstance(message, unicode): message = message.decode('utf-8') print repr(message) try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) server = config.get('irccat', 'server') port = config.getint('irccat', 'port') s.connect((server, port)) s.send(message.encode('utf-8')) s.close() except Exception, e: print 'Exception in main loop: %s' % repr(e)
def doorOpened(self, serial, name): # To stop a race condition between us and the irc announce bot time.sleep(2) print "%s opened the front door, logging" % name lastseen = {} picklefile = config.get('lastseen', 'picklefile') if os.path.exists(picklefile): lastseen = pickle.load(open(picklefile)) lastseen[name.lower()] = datetime.datetime.now() pickle.dump(lastseen, open(picklefile, 'wb'))
def reload_lastseen(): global lastseen lastseen = {} lastseenfile = config.get('lastseen', 'picklefile') if os.path.exists(lastseenfile): lastseen = pickle.load(open(lastseenfile))