def display_boards(self, checker, viewer): message = list() message.append(viewer.render.header(self.name)) bbtable = viewer.render.make_table(["ID", "RWA", "Name", "Last Post", "#", "U"], width=[4, 4, 37, 23, 5, 5]) for board in self.visible_boards(checker=checker): bbtable.add_row(mxp(board.order, "+bbread %s" % board.order), board.display_permissions(checker), mxp(board, "+bbread %s" % board.order), board.last_post(checker), board.posts.all().count(), board.posts.exclude(read=viewer).count()) message.append(bbtable) message.append(viewer.render.footer()) return '\n'.join(unicode(line) for line in message)
def boards_list(self, checker, viewer): message = list() message.append(viewer.render.header(self.name, viewer=viewer)) bbtable = viewer.render.make_table(["ID", "RWA", "Name", "Locks", "On"], width=[4, 4, 23, 43, 4]) for board in self.usable_boards(checker=checker): if checker in board.ignore_list.all(): member = "No" else: member = "Yes" bbtable.add_row(mxp(board.order, "+bbread %s" % board.order), board.display_permissions(checker), mxp(board, "+bbread %s" % board.order), board.lock_storage, member) message.append(bbtable) message.append(viewer.render.footer()) return '\n'.join(unicode(line) for line in message)
def announce_post(self, post): postid = '%s/%s' % (self.order, post.order) if self.group: clickable = mxp(text=postid, command='+gbread %s=%s' % (postid, self.group.name)) text_message = "{cM<GROUP BB>{n New GB Message (%s) posted to '%s' '%s' by %s: %s" message = text_message % (clickable, self.group, self, post.owner if not self.anonymous else self.anonymous, post.subject) for character in self.listeners(): character.msg(message) else: clickable = mxp(text=postid, command='+bbread %s' % postid) text_message = "(New BB Message (%s) posted to '%s' by %s: %s)" message = text_message % (clickable, self, post.owner if not self.anonymous else self.anonymous, post.subject) for character in self.listeners(): character.msg(message)
def board_timeout_list(self, lhs, rhs): try: board_group = self.board_group except ValueError as err: self.error(unicode(err)) return message = list() message.append(self.board_header()) bbtable = self.player.render.make_table(["ID", "RWA", "Name", "Timeout"], width=[4, 4, 23, 47]) for board in board_group.visible_boards(checker=self.player): bbtable.add_row(mxp(board.order, "+bbread %s" % board.order), board.display_permissions(self.character), mxp(board, "+bbread %s" % board.order), time_format(board.timeout.total_seconds()) if board.timeout else '0 - Permanent') message.append(bbtable) message.append(self.player.render.footer()) self.msg_lines(message)
def format_output(self, viewer): namecolor = viewer.player.config['exitname_color'] aliascolor = viewer.player.config['exitalias_color'] alias = self.aliases.all()[0] or '' alias = alias.upper() if alias: color_alias = ANSIString('{%s%s{n' % (aliascolor, alias)) border_alias = ANSIString('<%s>' % color_alias).ljust(6) name = ANSIString('{%s%s{n' % (namecolor, self.key)) length = 36 if alias: length -= 6 length -= len(self.key) if length: destination_text = " to %s" % self.destination.key destination_text = destination_text[:length].ljust(length) else: destination_text = '' if alias: main = mxp(text=border_alias + name, command=self.key) else: main = mxp(text=name, command=self.key) return ANSIString(main + destination_text)
def mxp_name(self, commands=None): if not commands: commands = ['+finger'] send_commands = '|'.join(['%s %s' % (command, self.key) for command in commands]) return mxp(text=self.key, command=send_commands)