Beispiel #1
0
    def listen(self):
        while self.isConnected:
            bunch = self.ircSock.recv(4096)
            if not bunch:
                continue
            try:
                msg = decode(bunch)
                msgs = msg.split("\r\n")
            except UnicodeDecodeError:
                msg = str(bunch)
                bounding = msg[1]
                msg = msg[2:len(msg) - 5].replace("\\" + bounding, bounding).replace("\\\\", "\\")
                msgs = msg.split("\\r\\n")
            # for each message within received bunch ...
            for m in msgs:
                if not m:
                    continue
                # ... generate Message-object, ...
                message = Message(self, m)
                self.logger.info("Received %s" % str(message))
                # ... run built-in commands and ...
                if len(message.cmd):
                    self.check_commands(message)
                # ... trigger events for plugins
                for event in message.get_events():
                    self.trigger(event, message)

        if self.shouldReconnect:
            self.connect()
Beispiel #2
0
def main():
    bot.connect()
    while True:
        try:
            data = bot.recv()
            if data:
                data = utils.decode(data)
            bot.handleresponse(data)
        except objects.EmptyResponse:
            print("EMPTY RESPONSE!!")
            bot.handledisconnection()
Beispiel #3
0
 def postproc(self, feature_maps, mode='train'):
     bbox_tensors = []
     
     if mode == 'train':
         for i, fm in enumerate(feature_maps):
             bbox_tensor = decode_train(fm, self.num_class, self.strides, self.anchors, i, self.xyscale)
             bbox_tensors.append(fm)
             bbox_tensors.append(bbox_tensor)
     else:
         for i, fm in enumerate(feature_maps):
             bbox_tensor = decode(fm, self.num_class, i)
             bbox_tensors.append(bbox_tensor)
     
     return bbox_tensors
Beispiel #4
0
    def pluginHandling(self, plugin):
        sent = 0
        lastsent = time.time()

        while True:
            send = plugin.queue_out.get()

            if time.time() - lastsent > 10:
                sent = 0

            self.logger.info("-> '{}'".format(decode(send)))
            self.send(send)
            lastsent = time.time()
            sent += 1

            if sent >= 5:
                time.sleep(1)
Beispiel #5
0
    def plus_one(self, o_index: int, user_id: int, server_id: int):
        """
        Adds a vote
        :return:
            -1 -> person already voted
            False -> no such option
            True -> everything is ok
        """
        if not self.in_progress(server_id):
            return False

        data = decode(self.redis.hgetall(server_id))
        voters, vote_counts, options = loads(data.get("voters")), loads(
            data.get("votes")), loads(data.get("choices"))

        # Missing option
        if o_index > len(options) - 1:
            return False
        # Negative number
        if o_index < 0:
            return False

        # Add the voter to the list
        if user_id in voters:
            # Error: That person has already voted
            return -1
        else:
            voters.append(user_id)

        # Add +1 to option at index
        vote_counts[o_index] += 1

        # Choice list doesn't change
        payload = {
            "votes": dumps(vote_counts),
            "voters": dumps(voters),
        }

        return self.redis.hmset(server_id, payload)
Beispiel #6
0
if input("Do you want to display every removed key? (y/n) ").lower() == "y":
    logging.basicConfig(level=logging.DEBUG)
else:
    logging.basicConfig(level=logging.INFO)

init = time.monotonic()

print("Verifying server data...")
red = ServerHandler.get_handler(asyncio.get_event_loop())

config_keys = list(server_defaults.keys())

c = 0

for server in red.redis.scan_iter(match="server:*"):
    server = decode(server)

    fields = decode(red.redis.hgetall(server))
    for key, value in fields.items():
        if key not in config_keys:
            log.debug("Clearing key: {}".format(key))
            red.redis.hdel(server, key)

            c += 1

if c != 0:
    print("Done, {} entries fixed.".format(c))
else:
    print("Done, no obsolete keys.")
Beispiel #7
0
trans = TranslationManager()

languages = [l for l in trans.meta.keys()]
print(f"Current languages: {', '.join(languages)}")

# Connect to redis db
print("Connecting to redis...")
red: StrictRedis = ServerHandler.get_handler(asyncio.get_event_loop()).redis

print("Iterating though servers...")

server_count: int = 0
language_use: dict = {a: 0 for a in languages}

for s in red.scan_iter(match="server:*"):
    raw_key: str = decode(s)
    server_id: int = int(raw_key.split(":")[1])

    server_lang: str = decode(red.hget(raw_key, "lang"))
    print(f"Found server: {server_id} with language: '{server_lang}'")

    if server_lang is None:
        language_use["en"] += 1
    else:
        if "-" in server_lang:
            l, r = server_lang.split("-", maxsplit=1)
            server_lang = f"{l}_{r.upper()}"

        language_use[server_lang.replace("-", "_")] += 1

    server_count += 1
Beispiel #8
0
 def plot(self):
     result = self.run_command()
     if result.returncode == 1: raise PlottingError('Unknown')
     return url(HOST, decode(result.stdout), no_cache_params())