Beispiel #1
0
    def watch(self, username):
        if self.is_running():
            self.process.stop()

        from webtiles.process_handler import processes
        procs = [
            process for process in list(processes.values())
            if process.username.lower() == username.lower()
        ]
        if len(procs) >= 1:
            process = procs[0]
            if self.watched_game:
                if self.watched_game == process:
                    return
                self.stop_watching()
            self.logger.info("%s started watching %s (%s).",
                             self.username and self.username or "[Anon]",
                             process.username, process.id)

            self.watched_game = process
            process.add_watcher(self)
            self.send_message("watching_started", username=process.username)
        else:
            if self.watched_game:
                self.stop_watching()
            self.go_lobby()
Beispiel #2
0
 def send_lobby(self):
     self.queue_message("lobby_clear")
     from webtiles.process_handler import processes
     for process in list(processes.values()):
         self.queue_message("lobby_entry", **process.lobby_entry())
     self.send_message("lobby_complete")
     self.send_lobby_html()
Beispiel #3
0
def find_running_game(charname, start):
    from webtiles.process_handler import processes
    for process in list(processes.values()):
        if (process.where.get("name") == charname
                and process.where.get("start") == start):
            return process
    return None
Beispiel #4
0
 def send_lobby_data(self):
     self.queue_message("lobby_clear")
     from webtiles.process_handler import processes
     for process in list(processes.values()):
         if process.account_restricted() and not self.is_admin():
             continue
         self.queue_message("lobby_entry", **process.lobby_entry())
     self.send_message("lobby_complete")
    def watch(self, username):
        if self.is_running():
            self.process.stop()

        if not self.update_db_info():
            self.go_lobby()
            return

        if self.username and self.account_restricted():
            self.send_message(
                "auth_error",
                reason="Account restricted; spectating unavailable")
            self.go_lobby()
            return

        from webtiles.process_handler import processes
        procs = [
            process for process in list(processes.values())
            if process.username.lower() == username.lower()
        ]
        if len(procs) >= 1:
            process = procs[0]
            r = process.get_primary_receiver()
            if r and r.account_restricted():
                self.go_lobby()
                return
            if self.watched_game:
                if self.watched_game == process:
                    return
                self.stop_watching()
            self.logger.info("%s started watching %s (%s).",
                             self.username and self.username or "[Anon]",
                             process.username, process.id)

            self.watched_game = process
            process.add_watcher(self)
            self.send_message("watching_started", username=process.username)
        else:
            if self.watched_game:
                self.stop_watching()
            self.go_lobby()