diff options
author | Florian Diebold <flodiebold@gmail.com> | 2012-08-20 17:46:21 +0200 |
---|---|---|
committer | Florian Diebold <flodiebold@gmail.com> | 2012-08-20 17:46:41 +0200 |
commit | 729cd84f8eb340b9d721962b5ab57866c319d2f8 (patch) | |
tree | db0ad2b7b3e44e84e6cdc2ca825e9f3589b4bfed /crawl-ref/source/webserver/process_handler.py | |
parent | 5e8d5c42d31ec5848c21af7bad94d71a101d2e33 (diff) | |
download | crawl-ref-729cd84f8eb340b9d721962b5ab57866c319d2f8.tar.gz crawl-ref-729cd84f8eb340b9d721962b5ab57866c319d2f8.zip |
Show the player in the chat if they're using Webtiles.
Diffstat (limited to 'crawl-ref/source/webserver/process_handler.py')
-rw-r--r-- | crawl-ref/source/webserver/process_handler.py | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/crawl-ref/source/webserver/process_handler.py b/crawl-ref/source/webserver/process_handler.py index 470a5855f6..3ddd500df7 100644 --- a/crawl-ref/source/webserver/process_handler.py +++ b/crawl-ref/source/webserver/process_handler.py @@ -95,7 +95,6 @@ class CrawlProcessHandlerBase(object): self.lock_basename = self.formatted_time + ".ttyrec" self.end_callback = None - self._watchers = set() self._receivers = set() self.last_activity_time = time.time() self.idle_checker = PeriodicCallback(self.check_idle, 10000, @@ -149,45 +148,46 @@ class CrawlProcessHandlerBase(object): self.idle_checker.stop() - for watcher in list(self._watchers): - watcher.stop_watching() + for watcher in list(self._receivers): + if watcher.watched_game == self: + watcher.stop_watching() if self.end_callback: self.end_callback() def update_watcher_description(self): - watcher_names = [watcher.username for watcher in self._watchers - if watcher.username] - anon_count = len(self._watchers) - len(watcher_names) + def wrap_name(watcher): + if watcher.watched_game: + return "<span class='watcher'>" + watcher.username + "</span>" + else: + return "<span class='player'>" + watcher.username + "</span>" + watcher_names = [wrap_name(w) for w in self._receivers + if w.username] + anon_count = len(self._receivers) - len(watcher_names) s = ", ".join(watcher_names) if len(watcher_names) > 0 and anon_count > 0: s = s + ", and %i Anon" % anon_count elif anon_count > 0: s = "%i Anon" % anon_count self.send_to_all("update_spectators", - count = len(self._watchers), + count = self.watcher_count(), names = s) update_all_lobbys(self) - def add_watcher(self, watcher, hide = False): + def add_watcher(self, watcher): self.last_watcher_join = time.time() - if not hide: - self._watchers.add(watcher) self._receivers.add(watcher) if self.client_path: self._send_client(watcher) - if not hide: - self.update_watcher_description() + self.update_watcher_description() def remove_watcher(self, watcher): - if watcher in self._watchers: - self._watchers.remove(watcher) self._receivers.remove(watcher) self.update_watcher_description() def watcher_count(self): - return len(self._watchers) + return len([w for w in self._receivers if w.watched_game]) def send_client_to_all(self): for receiver in self._receivers: @@ -253,7 +253,7 @@ class CrawlProcessHandlerBase(object): entry = { "id": self.id, "username": self.username, - "spectator_count": len(self._watchers), + "spectator_count": self.watcher_count(), "idle_time": (self.idle_time() if self.is_idle() else 0), "game_id": self.game_params["id"], } @@ -530,8 +530,8 @@ class CrawlProcessHandler(CrawlProcessHandlerBase): super(CrawlProcessHandler, self).handle_process_end() - def add_watcher(self, watcher, hide = False): - super(CrawlProcessHandler, self).add_watcher(watcher, hide) + def add_watcher(self, watcher): + super(CrawlProcessHandler, self).add_watcher(watcher) if self.conn and self.conn.open: self.conn.send_message('{"msg":"spectator_joined"}') |