Mercurial > libervia-backend
annotate sat_frontends/jp/cmd_uri.py @ 2987:8990ed9aad31
quick_frontend (contact list): fixed `nick` use for groupchat:
during the profile connection workflow, joined rooms are retrieved, then presence are
filled, all asynchronously. In some cases, all rooms may not be joined when presence are
filled, resulting in cache being already filled with a `nick` when cache is set for the
room itself. Because of that, a `nick` may be displayed in contact list instead of MUC local
part. This patch fixes it by removing `nick` if it exists when cache a MUC room.
fix 305
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 05 Jul 2019 15:58:15 +0200 |
parents | 003b8b4b56a7 |
children | ab2696e34d29 |
rev | line source |
---|---|
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # jp: a SàT command line tool |
2771 | 5 # Copyright (C) 2009-2019 Jérôme Poisson (goffi@goffi.org) |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 import base |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 from sat.core.i18n import _ |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 from sat_frontends.jp.constants import Const as C |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 from sat.tools.common import uri |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 __commands__ = ["Uri"] |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 class Parse(base.CommandBase): |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
31 base.CommandBase.__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
32 self, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
33 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
34 "parse", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
35 use_profile=False, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
36 use_output=C.OUTPUT_DICT, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
37 help=_(u"parse URI"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
38 ) |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 def add_parser_options(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
41 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
42 "uri", type=base.unicode_decoder, help=_(u"XMPP URI to parse") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
43 ) |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 def start(self): |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
46 self.output(uri.parseXMPPUri(self.args.uri)) |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
47 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 class Build(base.CommandBase): |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
51 base.CommandBase.__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
52 self, host, "build", use_profile=False, help=_(u"build URI") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
53 ) |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
54 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
55 def add_parser_options(self): |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
56 self.parser.add_argument("type", type=base.unicode_decoder, help=_(u"URI type")) |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
57 self.parser.add_argument("path", type=base.unicode_decoder, help=_(u"URI path")) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
58 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
59 "-f", |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
60 "--field", |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
61 type=base.unicode_decoder, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
62 action="append", |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
63 nargs=2, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
64 dest="fields", |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
65 metavar=(u"KEY", u"VALUE"), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
66 help=_(u"URI fields"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
67 ) |
2240
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
68 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
69 def start(self): |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
70 fields = dict(self.args.fields) if self.args.fields else {} |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
71 self.disp(uri.buildXMPPUri(self.args.type, path=self.args.path, **fields)) |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
72 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
73 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
74 class Uri(base.CommandBase): |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
75 subcommands = (Parse, Build) |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
76 |
4b66f070cfbb
jp (uri): new command to parse or generate XMPP URIs
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
77 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
78 super(Uri, self).__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
79 host, "uri", use_profile=False, help=_("XMPP URI parsing/generation") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
80 ) |