diff options
-rw-r--r-- | doc/source/commands.rst | 1 | ||||
-rw-r--r-- | src/tabs/muctab.py | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/doc/source/commands.rst b/doc/source/commands.rst index 0dd0241f..f1713a86 100644 --- a/doc/source/commands.rst +++ b/doc/source/commands.rst @@ -327,6 +327,7 @@ MultiUserChat tab commands Use the completion to get a list of all the available color values. Use the special color **unset** to remove the attributed color on this nick. + You can also use **random** to attribute a random color. /clear [MUCTab version] **Usage:** ``/clear`` diff --git a/src/tabs/muctab.py b/src/tabs/muctab.py index ed2b4f85..1f202dd0 100644 --- a/src/tabs/muctab.py +++ b/src/tabs/muctab.py @@ -279,6 +279,7 @@ class MucTab(ChatTab): colors = [i for i in xhtml.colors if i] colors.sort() colors.append('unset') + colors.append('random') return the_input.new_completion(colors, 2, '', quotify=False) def completion_ignore(self, the_input): @@ -466,14 +467,15 @@ class MucTab(ChatTab): """ /color <nick> <color> Fix a color for a nick. - Use "unset" instead of a color to remove the attribution + Use "unset" instead of a color to remove the attribution. + User "random" to attribute a random color. """ if args is None: return self.core.command_help('color') nick = args[0] color = args[1].lower() user = self.get_user_by_name(nick) - if not color in xhtml.colors and color != 'unset': + if not color in xhtml.colors and color not in ('unset', 'random'): return self.core.information(_("Unknown color: %s") % color, 'Error') if user and user.nick == self.own_nick: return self.core.information(_("You cannot change the color of your" @@ -482,6 +484,8 @@ class MucTab(ChatTab): if config.remove_and_save(nick, 'muc_colors'): self.core.information(_('Color for nick %s unset') % (nick)) else: + if color == 'random': + color = random.choice(list(xhtml.colors)) if user: user.change_color(color) config.set_and_save(nick, color, 'muc_colors') |