plugin XEP-0384: Fully reworked to adjust to the reworked python-omemo:

- support for both (modern) OMEMO under the `urn:xmpp:omemo:2` namespace and (legacy) OMEMO under the `eu.siacs.conversations.axolotl` namespace
- maintains one identity across both versions of OMEMO
- migrates data from the old plugin
- includes more features for protocol stability
- uses SCE for modern OMEMO
- fully type-checked, linted and format-checked
- added type hints to various pieces of backend code used by the plugin
- added stubs for some Twisted APIs used by the plugin under stubs/ (use `export MYPYPATH=stubs/` before running mypy)
- core (xmpp): enabled `send` trigger and made it an asyncPoint

fix 375
This commit is contained in:
Syndace 2022-08-23 21:06:24 +02:00
commit 75ae8160ae

View file

@ -18,6 +18,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from typing import Optional
import uuid
from zope.interface import implementer
from twisted.words.protocols.jabber import xmlstream
@ -26,6 +27,7 @@ from sat.core.constants import Const as C
from sat.core import exceptions
from sat.core.i18n import _
from sat.core.log import getLogger
from twisted.words.xish import domish
log = getLogger(__name__)
@ -101,11 +103,11 @@ class XEP_0359(object):
sid_elt["by"] = client.jid.userhost() if by is None else by.userhost()
sid_elt["id"] = stanza_id
def getOriginId(self, element):
def getOriginId(self, element: domish.Element) -> Optional[str]:
"""Return origin-id if found in element
@param element(domish.Element): element to parse
@return (unicode, None): origin-id if found
@param element: element to parse
@return: origin-id if found
"""
try:
origin_elt = next(element.elements(NS_SID, "origin-id"))