def decode(self, event, c): while True: # ID search if not self.btr: i = 0 for cc in self.rawdata: i += 1 if self.find_id(cc): self.rawdata = self.rawdata[i:] self.btr -= len(self.rawdata) break else: sys.stderr.write('Unknowed ID `0x%02X`\n' % ord(cc)) if not self.btr: if not self.find_id(c): sys.stderr.write('Unknowed ID `0x%02X`\n' % ord(c)) return # Data read self.rawdata += c self.btr -= 1 # Checksum check if self.btr < 1: checksum = self.checksum( chr(int(self.id, 0)) + self.rawdata[:struct.calcsize(self.format)]) if struct.unpack( '>H', self.rawdata[struct.calcsize(self.format):struct. calcsize(self.format) + 2])[0] == checksum: # Handling a = struct.unpack( self.format, self.rawdata[0:struct.calcsize(self.format)]) for i in xrange(len(a)): events.fire(IrisDecoder, self.names[i], (self.time, a[i] * self.scale[i])) self.rawdata = self.rawdata[struct.calcsize(self.format) + 2:] else: sys.stderr.write( 'Wrong checksum for a message of ID `%s` (%d != %d)\n' % (self.id, struct.unpack( '>H', self.rawdata[struct.calcsize( self.format):struct.calcsize(self.format) + 2])[0], checksum)) self.btr = 0 return
def application(env, start_response): response = [None] def callback(data, response_line="200 OK", headers=[("Content-Type", "text/plain")]): if response[0] is None: response[0] = data else: raise Exception("Already called.") start_response(response_line, headers) events.fire("http", {'callback': callback, 'irc': irc}, env) if response[0] is not None: return response[0] start_response("404 File Not Found", [("Content-Type", "text/plain")]) return "404 File Not Found"
def process_line(irc, type, obj): if type == "PING": irc.write("PONG " + obj["args"][0]) elif type == "PRIVMSG": source = to_source(obj["prefix"]) if obj["args"][0][0] == "#": events.fire( "chanmsg", irc, { "source": source, "channel": obj["args"][0], "message": obj["args"][1] }) else: events.fire("privmsg", irc, { "source": source, "message": obj["args"][1] }) elif type == "JOIN": events.fire("join", irc, { "source": to_source(obj["prefix"]), "channel": obj["args"][0] }) elif type == "001": for channel in config.BOT_CHANNELS.split(','): irc.write("JOIN %s" % channel.strip()) else: _log.warning("bad command type: %r: %r" % (type, obj))
def render(self, name, context=None): template = self.find(name) context = context if context else {} context.update({ 'template': { 'name': template.name, 'list': name, 'theme': self.theme } }) events.fire('before_template_render', name=name, context=context, env=self.environment) result = template.render(context, context=context) events.fire('after_template_render', result=result, name=name, context=context, env=self.environment) return result
def decode(self, event, c): while True: # ID search if not self.btr: i = 0 for cc in self.rawdata: i += 1 if self.find_id(cc): self.rawdata = self.rawdata[i:] self.btr -= len(self.rawdata) break else: sys.stderr.write('Unknowed ID `0x%02X`\n' % ord(cc)) if not self.btr: if not self.find_id(c): sys.stderr.write('Unknowed ID `0x%02X`\n' % ord(c)) return # Data read self.rawdata += c self.btr -= 1 # Checksum check if self.btr < 1: checksum = self.checksum(chr(int(self.id, 0)) + self.rawdata[:struct.calcsize(self.format)]) if struct.unpack('>H', self.rawdata[struct.calcsize(self.format):struct.calcsize(self.format)+2])[0] == checksum: # Handling a = struct.unpack(self.format, self.rawdata[0:struct.calcsize(self.format)]) for i in xrange(len(a)): events.fire(IrisDecoder, self.names[i], (self.time, a[i]*self.scale[i])) self.rawdata = self.rawdata[struct.calcsize(self.format)+2:] else: sys.stderr.write('Wrong checksum for a message of ID `%s` (%d != %d)\n' % (self.id, struct.unpack('>H', self.rawdata[struct.calcsize(self.format):struct.calcsize(self.format)+2])[0], checksum)) self.btr = 0 return
def process_line(irc, type, obj): if type == "chanmsg": obj["message"] = util.decode_irc(obj["message"]) events.fire("chanmsg", irc, obj) elif type == "privmsg": obj["message"] = util.decode_irc(obj["message"]) events.fire("privmsg", irc, obj) elif type == "join": events.fire("join", irc, obj) elif type == "startup": irc.write("join", {"channel": "#twilightzone"}) else: _log.warning("bad command type: %r: %r" % (type, obj))
def __init__(self, theme=None, extra_globals=None, extra_paths=None): self.theme = theme jinja2_env_kwargs = { 'loader': self._build_loader(extra_paths=extra_paths), 'auto_reload': False, 'cache_size': 0 if debug else 50, } events.fire('before_jinja2_environment_creation', engine=self, jinja2_env_kwargs=jinja2_env_kwargs) self.environment = jinja2.Environment(**jinja2_env_kwargs) events.fire('after_jinja2_environment_creation', engine=self) self._update_globals(extra_globals) events.fire("template_engine_created", self)
def process_line(irc, type, obj): if type == "PING": irc.write("PONG " + obj["args"][0]) elif type == "PRIVMSG": source = to_source(obj["prefix"]) if obj["args"][0][0] == "#": events.fire("chanmsg", irc, {"source": source, "channel": obj["args"][0], "message": obj["args"][1]}) else: events.fire("privmsg", irc, {"source": source, "message": obj["args"][1]}) elif type == "JOIN": events.fire("join", irc, {"source": to_source(obj["prefix"]), "channel": obj["args"][0]}) elif type == "001": for channel in config.BOT_CHANNELS.split(','): irc.write("JOIN %s" % channel.strip()) else: _log.warning("bad command type: %r: %r" % (type, obj))
def process_line(self, msgtype, obj): if msgtype == "PING": self.last_ping = time.time() self.write("PONG " + obj["args"][0]) elif msgtype == "PRIVMSG": source = self.to_source(obj["prefix"]) if obj["args"][0][0] == "#": events.fire("chanmsg", self, {"source": source, "channel": obj["args"][0], "message": obj["args"][1]}) else: events.fire("privmsg", self, {"source": source, "message": obj["args"][1]}) elif msgtype == "JOIN": events.fire("join", self, {"source": self.to_source(obj["prefix"]), "channel": obj["args"][0]}) elif msgtype == "001": for channel in config.BOT_CHANNELS.split(","): self.write("JOIN %s" % channel.strip()) else: _log.warning("bad command type: %r: %r" % (type, obj))
"Bullets": 10, "Whiskey": 1, "Medicine": 1, "Food": 10 } prices = { "Gold": 1, "Furs": 4, "Bullets": 2, "Whiskey": 6, "Medicine": 10, "Food": 2 } wholesale = {"Furs": 2, "Bullets": 1, "Whiskey": 3, "Medicine": 5, "Food": 1} events_list = { 0: events.noevent(), 1: events.competitor(), 2: events.noevent(), 3: events.robbed(), 4: events.noevent(), 5: events.find(), 6: events.noevent(), 7: events.indentured(), 8: events.noevent(), 9: events.fire(), 10: events.noevent(), 11: events.blizzard(), 12: events.noevent(), 13: events.competitor_gone() }
def loop(self): events.fire(IrisChannel, 'onReceive', self.serial.read(1))
def loop(self): byte = sys.stdin.read(1) if not byte: byte = '\x00' events.fire(IrisChannel, 'onReceive', byte)
def loop(self): msg, addr = self.sock.recvfrom(1024) for byte in msg: if not byte: byte = '\x00' events.fire(IrisChannel, 'onReceive', byte)