Mercurial > libervia-backend
comparison sat_frontends/jp/cmd_message.py @ 2663:32b5f68a23b4
jp (message): new encryption/algorithms command to retrieve available encryptions algorithms.
| author | Goffi <goffi@goffi.org> |
|---|---|
| date | Sat, 11 Aug 2018 18:24:55 +0200 |
| parents | 56f94936df1e |
| children | 0b5deb9a35fd |
comparison
equal
deleted
inserted
replaced
| 2662:0bef44f8e8ca | 2663:32b5f68a23b4 |
|---|---|
| 16 | 16 |
| 17 # You should have received a copy of the GNU Affero General Public License | 17 # You should have received a copy of the GNU Affero General Public License |
| 18 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 |
| 20 from sat_frontends.jp import base | 20 from sat_frontends.jp import base |
| 21 from sat_frontends.jp.constants import Const as C | |
| 21 import sys | 22 import sys |
| 22 from sat.core.i18n import _ | 23 from sat.core.i18n import _ |
| 23 from sat.core.constants import Const as C | |
| 24 from sat.tools.utils import clean_ustr | 24 from sat.tools.utils import clean_ustr |
| 25 from functools import partial | |
| 25 | 26 |
| 26 __commands__ = ["Message"] | 27 __commands__ = ["Message"] |
| 27 | 28 |
| 28 | 29 |
| 29 class Send(base.CommandBase): | 30 class Send(base.CommandBase): |
| 37 self.parser.add_argument( | 38 self.parser.add_argument( |
| 38 "-s", | 39 "-s", |
| 39 "--separate", | 40 "--separate", |
| 40 action="store_true", | 41 action="store_true", |
| 41 help=_( | 42 help=_( |
| 42 u"separate xmpp messages: send one message per line instead of one message alone." | 43 u"separate xmpp messages: send one message per line instead of one " |
| 44 u"message alone." | |
| 43 ), | 45 ), |
| 44 ) | 46 ) |
| 45 self.parser.add_argument( | 47 self.parser.add_argument( |
| 46 "-n", | 48 "-n", |
| 47 "--new-line", | 49 "--new-line", |
| 147 callback=lambda: None, | 149 callback=lambda: None, |
| 148 errback=lambda ignore: ignore, | 150 errback=lambda ignore: ignore, |
| 149 ) | 151 ) |
| 150 | 152 |
| 151 | 153 |
| 154 class EncryptionAlgorithms(base.CommandBase): | |
| 155 | |
| 156 def __init__(self, host): | |
| 157 extra_outputs = {"default": self.default_output} | |
| 158 super(EncryptionAlgorithms, self).__init__( | |
| 159 host, "algorithms", | |
| 160 use_output=C.OUTPUT_LIST_DICT, | |
| 161 extra_outputs=extra_outputs, | |
| 162 use_profile=False, | |
| 163 help=_("show available encryption algorithms")) | |
| 164 self.need_loop = True | |
| 165 | |
| 166 def add_parser_options(self): | |
| 167 pass | |
| 168 | |
| 169 def encryptionPluginsGetCb(self, plugins): | |
| 170 self.output(plugins) | |
| 171 self.host.quit() | |
| 172 | |
| 173 def default_output(self, plugins): | |
| 174 if not plugins: | |
| 175 self.disp(_(u"No encryption plugin registered!")) | |
| 176 self.host.quit(C.EXIT_NOT_FOUND) | |
| 177 else: | |
| 178 self.disp(_(u"Following encryption algorithms are available: {algos}").format( | |
| 179 algos=', '.join([p['name'] for p in plugins]))) | |
| 180 self.host.quit() | |
| 181 | |
| 182 def start(self): | |
| 183 self.host.bridge.encryptionPluginsGet( | |
| 184 callback=self.encryptionPluginsGetCb, | |
| 185 errback=partial( | |
| 186 self.errback, | |
| 187 msg=_(u"can't retrieve plugins: {}"), | |
| 188 exit_code=C.EXIT_BRIDGE_ERRBACK, | |
| 189 ), | |
| 190 ) | |
| 191 | |
| 192 | |
| 193 class Encryption(base.CommandBase): | |
| 194 subcommands = (EncryptionAlgorithms,) | |
| 195 | |
| 196 def __init__(self, host): | |
| 197 super(Encryption, self).__init__( | |
| 198 host, "encryption", use_profile=False, help=_("encryption sessions handling") | |
| 199 ) | |
| 200 | |
| 201 | |
| 152 class Message(base.CommandBase): | 202 class Message(base.CommandBase): |
| 153 subcommands = (Send,) | 203 subcommands = (Send, Encryption) |
| 154 | 204 |
| 155 def __init__(self, host): | 205 def __init__(self, host): |
| 156 super(Message, self).__init__( | 206 super(Message, self).__init__( |
| 157 host, "message", use_profile=False, help=_("messages handling") | 207 host, "message", use_profile=False, help=_("messages handling") |
| 158 ) | 208 ) |
