changeset 931969111a91 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=931969111a91
description: merge with default

diffstat:

 src/command_system/__init__.py                  |   2 +-
 src/command_system/dispatching.py               |   2 +-
 src/command_system/errors.py                    |   8 +-
 src/command_system/framework.py                 |   8 +-
 src/command_system/implementation/__init__.py   |   2 +-
 src/command_system/implementation/custom.py     |   6 +-
 src/command_system/implementation/hosts.py      |   2 +-
 src/command_system/implementation/middleware.py |  31 +++++---
 src/command_system/implementation/standard.py   |  88 ++++++++++++++----------
 src/command_system/mapping.py                   |   2 +-
 src/common/multimedia_helpers.py                |   4 +-
 src/common/xmpp/auth_nb.py                      |  27 +++---
 src/dataforms_widget.py                         |   2 +-
 src/gajim-remote.py                             |   2 +
 14 files changed, 107 insertions(+), 79 deletions(-)

diffs (truncated from 566 to 300 lines):

diff -r 18254a32fdd7 -r 931969111a91 src/command_system/__init__.py
--- a/src/command_system/__init__.py    Fri Mar 19 08:21:57 2010 +0100
+++ b/src/command_system/__init__.py    Fri Mar 19 08:23:24 2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -r 18254a32fdd7 -r 931969111a91 src/command_system/dispatching.py
--- a/src/command_system/dispatching.py Fri Mar 19 08:21:57 2010 +0100
+++ b/src/command_system/dispatching.py Fri Mar 19 08:23:24 2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -r 18254a32fdd7 -r 931969111a91 src/command_system/errors.py
--- a/src/command_system/errors.py      Fri Mar 19 08:21:57 2010 +0100
+++ b/src/command_system/errors.py      Fri Mar 19 08:23:24 2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -45,3 +45,9 @@
     Used to indicate errors occured during command execution.
     """
     pass
+
+class NoCommandError(BaseError):
+    """
+    Used to indicate an inability to find the specified command.
+    """
+    pass
diff -r 18254a32fdd7 -r 931969111a91 src/command_system/framework.py
--- a/src/command_system/framework.py   Fri Mar 19 08:21:57 2010 +0100
+++ b/src/command_system/framework.py   Fri Mar 19 08:23:24 2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 
 from dispatching import Dispatcher, HostDispatcher, ContainerDispatcher
 from mapping import parse_arguments, adapt_arguments
-from errors import DefinitionError, CommandError
+from errors import DefinitionError, CommandError, NoCommandError
 
 class CommandHost(object):
     """
@@ -128,7 +128,7 @@
     def get_command(self, name):
         command = Dispatcher.get_command(self.COMMAND_HOST, name)
         if not command:
-            raise CommandError("Command does not exist", name=name)
+            raise NoCommandError("Command does not exist", name=name)
         return command
 
     def list_commands(self):
@@ -330,7 +330,7 @@
 
     return decorator
 
-def documentation(text):
+def doc(text):
     """
     This decorator is used to bind a documentation (a help) to a
     command.
diff -r 18254a32fdd7 -r 931969111a91 
src/command_system/implementation/__init__.py
--- a/src/command_system/implementation/__init__.py     Fri Mar 19 08:21:57 
2010 +0100
+++ b/src/command_system/implementation/__init__.py     Fri Mar 19 08:23:24 
2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -r 18254a32fdd7 -r 931969111a91 src/command_system/implementation/custom.py
--- a/src/command_system/implementation/custom.py       Fri Mar 19 08:21:57 
2010 +0100
+++ b/src/command_system/implementation/custom.py       Fri Mar 19 08:23:24 
2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
 be executed and commands defined here will not be detected.
 """
 
-from ..framework import CommandContainer, command, documentation
+from ..framework import CommandContainer, command, doc
 from hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
 
 class CustomCommonCommands(CommandContainer):
@@ -58,7 +58,7 @@
 
     HOSTS = (ChatCommands,)
 
-    @documentation(_("The same as using a doc-string, except it supports 
translation"))
+    @doc(_("The same as using a doc-string, except it supports translation"))
     @command
     def sing(self):
         return "Are you phreaking kidding me? Buy yourself a damn stereo..."
diff -r 18254a32fdd7 -r 931969111a91 src/command_system/implementation/hosts.py
--- a/src/command_system/implementation/hosts.py        Fri Mar 19 08:21:57 
2010 +0100
+++ b/src/command_system/implementation/hosts.py        Fri Mar 19 08:23:24 
2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -r 18254a32fdd7 -r 931969111a91 
src/command_system/implementation/middleware.py
--- a/src/command_system/implementation/middleware.py   Fri Mar 19 08:21:57 
2010 +0100
+++ b/src/command_system/implementation/middleware.py   Fri Mar 19 08:23:24 
2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,7 +26,7 @@
 from common import gajim
 
 from ..framework import CommandProcessor
-from ..errors import CommandError
+from ..errors import CommandError, NoCommandError
 
 class ChatCommandProcessor(CommandProcessor):
     """
@@ -44,33 +44,40 @@
     def execute_command(self, name, arguments):
         try:
             super(ChatCommandProcessor, self).execute_command(name, arguments)
+        except NoCommandError, error:
+            details = dict(name=error.name, message=error.message)
+            message = "%(name)s: %(message)s\n" % details
+            message += "Try using the //%(name)s or /say /%(name)s " % details
+            message += "construct if you intended to send it as a text."
+            self.echo(message, 'error')
         except CommandError, error:
-            self.echo("%s: %s" %(error.name, error.message), 'error')
+            self.echo("%s: %s" % (error.name, error.message), 'error')
         except Exception:
             self.echo("An error occured while trying to execute the command", 
'error')
             print_exc()
 
     def looks_like_command(self, text, body, name, arguments):
-        # Command escape stuff ggoes here. If text was prepended by the command
-        # prefix twice, like //not_a_command (if prefix is set to /) then it
-        # will be escaped, that is sent just as a regular message with one 
(only
-        # one) prefix removed, so message will be /not_a_command.
+        # Command escape stuff ggoes here. If text was prepended by the
+        # command prefix twice, like //not_a_command (if prefix is set
+        # to /) then it will be escaped, that is sent just as a regular
+        # message with one (only one) prefix removed, so message will be
+        # /not_a_command.
         if body.startswith(self.COMMAND_PREFIX):
             self.send(body)
             return True
 
     def command_preprocessor(self, command, name, arguments, args, kwargs):
-        # If command argument contain h or help option - forward it to the 
/help
-        # command. Dont forget to pass self, as all commands are unbound. And
-        # also don't forget to print output.
+        # If command argument contain h or help option - forward it to
+        # the /help command. Dont forget to pass self, as all commands
+        # are unbound. And also don't forget to print output.
         if 'h' in kwargs or 'help' in kwargs:
             help = self.get_command('help')
             self.echo(help(self, name))
             return True
 
     def command_postprocessor(self, command, name, arguments, args, kwargs, 
value):
-        # If command returns a string - print it to a user. A convenient and
-        # sufficient in most simple cases shortcut to a using echo.
+        # If command returns a string - print it to a user. A convenient
+        # and sufficient in most simple cases shortcut to a using echo.
         if value and isinstance(value, StringTypes):
             self.echo(value)
 
diff -r 18254a32fdd7 -r 931969111a91 
src/command_system/implementation/standard.py
--- a/src/command_system/implementation/standard.py     Fri Mar 19 08:21:57 
2010 +0100
+++ b/src/command_system/implementation/standard.py     Fri Mar 19 08:23:24 
2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2009  Alexander Cherniuk <[email protected]>
+# Copyright (C) 2009-2010  Alexander Cherniuk <[email protected]>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 from common.logger import Constants
 
 from ..errors import CommandError
-from ..framework import CommandContainer, command, documentation
+from ..framework import CommandContainer, command, doc
 from ..mapping import generate_usage
 
 from hosts import ChatCommands, PrivateChatCommands, GroupChatCommands
@@ -45,18 +45,18 @@
     HOSTS = (ChatCommands, PrivateChatCommands, GroupChatCommands)
 
     @command
-    @documentation(_("Clear the text window"))
+    @doc(_("Clear the text window"))
     def clear(self):
         self.conv_textview.clear()
 
     @command
-    @documentation(_("Hide the chat buttons"))
+    @doc(_("Hide the chat buttons"))
     def compact(self):
         new_status = not self.hide_chat_buttons
         self.chat_buttons_set_visible(new_status)
 
     @command(overlap=True)
-    @documentation(_("Show help on a given command or a list of available 
commands if -(-a)ll is given"))
+    @doc(_("Show help on a given command or a list of available commands if 
-(-a)ll is given"))
     def help(self, command=None, all=False):
         if command:
             command = self.get_command(command)
@@ -83,17 +83,17 @@
             self.echo(help(self, 'help'))
 
     @command(raw=True)
-    @documentation(_("Send a message to the contact"))
+    @doc(_("Send a message to the contact"))
     def say(self, message):
         self.send(message)
 
     @command(raw=True)
-    @documentation(_("Send action (in the third person) to the current chat"))
+    @doc(_("Send action (in the third person) to the current chat"))
     def me(self, action):
         self.send("/me %s" % action)
 
     @command('lastlog', overlap=True)
-    @documentation(_("Show logged messages which mention given text"))
+    @doc(_("Show logged messages which mention given text"))
     def grep(self, text, limit=None):
         results = gajim.logger.get_search_results_for_query(self.contact.jid,
                 text, self.account)
@@ -129,7 +129,7 @@
             self.echo(formatted)
 
     @command(raw=True, empty=True)
-    @documentation(_("""
+    @doc(_("""
     Set current the status
 
     Status can be given as one of the following values: online, away,
@@ -142,7 +142,7 @@
             connection.change_status(status, message)
 
     @command(raw=True, empty=True)
-    @documentation(_("Set the current status to away"))
+    @doc(_("Set the current status to away"))
     def away(self, message):
         if not message:
             message = _("Away")
@@ -150,36 +150,40 @@
             connection.change_status('away', message)
 
     @command('back', raw=True, empty=True)
-    @documentation(_("Set the current status to online"))
+    @doc(_("Set the current status to online"))
     def online(self, message):
         if not message:
             message = _("Available")
         for connection in gajim.connections.itervalues():
             connection.change_status('online', message)
 
-class StandardChatCommands(CommandContainer):
+class StandardCommonChatCommands(CommandContainer):
     """
-    This command container contains standard command which are unique to
-    a chat.
+    This command container contans standard commands, which are common
+    to a chat and a private chat only.
     """
 
-    HOSTS = (ChatCommands,)
+    HOSTS = (ChatCommands, PrivateChatCommands)
 
     @command
-    @documentation(_("Send a ping to the contact"))
+    @doc(_("Toggle the GPG encryption"))
+    def gpg(self):
+        self._toggle_gpg()
+
+    @command
+    @doc(_("Send a ping to the contact"))
     def ping(self):
         if self.account == gajim.ZEROCONF_ACC_NAME:
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to