Mercurial > libervia-backend
annotate libervia/backend/plugins/plugin_xep_0092.py @ 4309:b56b1eae7994
component email gateway: add multicasting:
XEP-0033 multicasting is now supported both for incoming and outgoing messages. XEP-0033
metadata are converted to suitable Email headers and vice versa.
Email address and JID are both supported, and delivery is done by the gateway when
suitable on incoming messages.
rel 450
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 26 Sep 2024 16:12:01 +0200 |
parents | 4b842c1fb686 |
children |
rev | line source |
---|---|
3028 | 1 #!/usr/bin/env python3 |
3137 | 2 |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # SàT plugin for Software Version (XEP-0092) |
3479 | 5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
20 from typing import Tuple |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
21 |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
22 from twisted.internet import defer, reactor |
971
8ca5c990ed92
jp: "disco" subcommand, moved into a new "info" subcommand + added "version" subcommand which get software version
Goffi <goffi@goffi.org>
parents:
952
diff
changeset
|
23 from twisted.words.protocols.jabber import jid |
945
899dc9cd0f35
plugin XEP-0092: feature check before requesting version
Goffi <goffi@goffi.org>
parents:
941
diff
changeset
|
24 from wokkel import compat |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
25 |
4071
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4066
diff
changeset
|
26 from libervia.backend.core import exceptions |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4066
diff
changeset
|
27 from libervia.backend.core.constants import Const as C |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4066
diff
changeset
|
28 from libervia.backend.core.core_types import SatXMPPEntity |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4066
diff
changeset
|
29 from libervia.backend.core.i18n import _ |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4066
diff
changeset
|
30 from libervia.backend.core.log import getLogger |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
31 |
993
301b342c697a
core: use of the new core.log module:
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
32 log = getLogger(__name__) |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 NS_VERSION = "jabber:iq:version" |
952
91836a647515
plugin XEP-0092: use of checkFeature instead of hasFeature + timeout + message adapted to failure if software version is not available
Goffi <goffi@goffi.org>
parents:
945
diff
changeset
|
35 TIMEOUT = 10 |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 PLUGIN_INFO = { |
2145
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
38 C.PI_NAME: "Software Version Plugin", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
39 C.PI_IMPORT_NAME: "XEP-0092", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
40 C.PI_TYPE: "XEP", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
41 C.PI_PROTOCOLS: ["XEP-0092"], |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
42 C.PI_DEPENDENCIES: [], |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
43 C.PI_RECOMMENDATIONS: [C.TEXT_CMDS], |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
1963
diff
changeset
|
44 C.PI_MAIN: "XEP_0092", |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
45 C.PI_HANDLER: "no", # version is already handler in core.xmpp module |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
46 C.PI_DESCRIPTION: _("""Implementation of Software Version"""), |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
47 } |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 class XEP_0092(object): |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
51 def __init__(self, host): |
993
301b342c697a
core: use of the new core.log module:
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
52 log.info(_("Plugin XEP_0092 initialization")) |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
53 self.host = host |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
54 host.bridge.add_method( |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
55 "software_version_get", |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
56 ".plugin", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
57 in_sign="ss", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
58 out_sign="(sss)", |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
59 method=self._get_version, |
3028 | 60 async_=True, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
61 ) |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
62 try: |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
63 self.host.plugins[C.TEXT_CMDS].add_who_is_cb(self._whois, 50) |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
64 except KeyError: |
993
301b342c697a
core: use of the new core.log module:
Goffi <goffi@goffi.org>
parents:
971
diff
changeset
|
65 log.info(_("Text commands not available")) |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
66 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
67 def _get_version(self, entity_jid_s, profile_key): |
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
68 def prepare_for_bridge(data): |
971
8ca5c990ed92
jp: "disco" subcommand, moved into a new "info" subcommand + added "version" subcommand which get software version
Goffi <goffi@goffi.org>
parents:
952
diff
changeset
|
69 name, version, os = data |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
70 return (name or "", version or "", os or "") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
71 |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
72 client = self.host.get_client(profile_key) |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
73 d = self.version_get(client, jid.JID(entity_jid_s)) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
74 d.addCallback(prepare_for_bridge) |
971
8ca5c990ed92
jp: "disco" subcommand, moved into a new "info" subcommand + added "version" subcommand which get software version
Goffi <goffi@goffi.org>
parents:
952
diff
changeset
|
75 return d |
8ca5c990ed92
jp: "disco" subcommand, moved into a new "info" subcommand + added "version" subcommand which get software version
Goffi <goffi@goffi.org>
parents:
952
diff
changeset
|
76 |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
77 def version_get( |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
78 self, |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
79 client: SatXMPPEntity, |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
80 jid_: jid.JID, |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
81 ) -> Tuple[str, str, str]: |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
82 """Ask version of the client that jid_ is running |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
83 |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
84 @param jid_: jid from who we want to know client's version |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
85 @return: a defered which fire a tuple with the following data (None if not available): |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
86 - name: Natural language name of the software |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
87 - version: specific version of the software |
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
88 - os: operating system of the queried entity |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
89 """ |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
90 |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
91 def do_version_get(__): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
92 iq_elt = compat.IQ(client.xmlstream, "get") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
93 iq_elt["to"] = jid_.full() |
945
899dc9cd0f35
plugin XEP-0092: feature check before requesting version
Goffi <goffi@goffi.org>
parents:
941
diff
changeset
|
94 iq_elt.addElement("query", NS_VERSION) |
899dc9cd0f35
plugin XEP-0092: feature check before requesting version
Goffi <goffi@goffi.org>
parents:
941
diff
changeset
|
95 d = iq_elt.send() |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
96 d.addCallback(self._got_version) |
945
899dc9cd0f35
plugin XEP-0092: feature check before requesting version
Goffi <goffi@goffi.org>
parents:
941
diff
changeset
|
97 return d |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
98 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
99 d = self.host.check_feature(client, NS_VERSION, jid_) |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
100 d.addCallback(do_version_get) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
101 reactor.callLater( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
102 TIMEOUT, d.cancel |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
103 ) # XXX: timeout needed because some clients don't answer the IQ |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
104 return d |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
105 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
106 def _got_version(self, iq_elt): |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
107 try: |
3028 | 108 query_elt = next(iq_elt.elements(NS_VERSION, "query")) |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
109 except StopIteration: |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
110 raise exceptions.DataError |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
111 ret = [] |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
112 for name in ("name", "version", "os"): |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
113 try: |
3028 | 114 data_elt = next(query_elt.elements(NS_VERSION, name)) |
115 ret.append(str(data_elt)) | |
920
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
116 except StopIteration: |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
117 ret.append(None) |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
118 |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
119 return tuple(ret) |
45dffd67a18a
plugin XEP-0092: new plugin (software version)
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
120 |
1963
a2bc5089c2eb
backend, frontends: message refactoring (huge commit):
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
121 def _whois(self, client, whois_msg, mess_data, target_jid): |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
122 """Add software/OS information to whois""" |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
123 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
124 def version_cb(version_data): |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
125 name, version, os = version_data |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
126 if name: |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
127 whois_msg.append(_("Client name: %s") % name) |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
128 if version: |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
129 whois_msg.append(_("Client version: %s") % version) |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
130 if os: |
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
131 whois_msg.append(_("Operating system: %s") % os) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
132 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
133 def version_eb(failure): |
952
91836a647515
plugin XEP-0092: use of checkFeature instead of hasFeature + timeout + message adapted to failure if software version is not available
Goffi <goffi@goffi.org>
parents:
945
diff
changeset
|
134 failure.trap(exceptions.FeatureNotFound, defer.CancelledError) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
135 if failure.check(failure, exceptions.FeatureNotFound): |
952
91836a647515
plugin XEP-0092: use of checkFeature instead of hasFeature + timeout + message adapted to failure if software version is not available
Goffi <goffi@goffi.org>
parents:
945
diff
changeset
|
136 whois_msg.append(_("Software version not available")) |
91836a647515
plugin XEP-0092: use of checkFeature instead of hasFeature + timeout + message adapted to failure if software version is not available
Goffi <goffi@goffi.org>
parents:
945
diff
changeset
|
137 else: |
91836a647515
plugin XEP-0092: use of checkFeature instead of hasFeature + timeout + message adapted to failure if software version is not available
Goffi <goffi@goffi.org>
parents:
945
diff
changeset
|
138 whois_msg.append(_("Client software version request timeout")) |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
139 |
4066
e75827204fe0
plugin XEP-0092: use `client` instead of `profile_key` in `version_get`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
140 d = self.version_get(client, target_jid) |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
141 d.addCallbacks(version_cb, version_eb) |
926
d609581bf74a
plugin text commands: refactoring, text now only contain main commands, and other plugin can add commands themselve:
Goffi <goffi@goffi.org>
parents:
920
diff
changeset
|
142 return d |