summaryrefslogtreecommitdiff
path: root/poezio/core
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2021-04-12 20:43:42 +0200
committermathieui <mathieui@mathieui.net>2021-04-12 20:43:51 +0200
commitfc1eca7ac39bfc0dc82b2809b19b3d1c7b64a2c7 (patch)
tree43c1e991617df5d981f2c9a704ae0732818c0a16 /poezio/core
parente6510792b4d4dcb0d9e7746fff0dd891cba33e3a (diff)
downloadpoezio-fc1eca7ac39bfc0dc82b2809b19b3d1c7b64a2c7.tar.gz
poezio-fc1eca7ac39bfc0dc82b2809b19b3d1c7b64a2c7.tar.bz2
poezio-fc1eca7ac39bfc0dc82b2809b19b3d1c7b64a2c7.tar.xz
poezio-fc1eca7ac39bfc0dc82b2809b19b3d1c7b64a2c7.zip
fix: remove all remaining safejids (fix #3457)
Diffstat (limited to 'poezio/core')
-rw-r--r--poezio/core/completions.py38
-rw-r--r--poezio/core/handlers.py10
2 files changed, 28 insertions, 20 deletions
diff --git a/poezio/core/completions.py b/poezio/core/completions.py
index 9b218c9a..af71de66 100644
--- a/poezio/core/completions.py
+++ b/poezio/core/completions.py
@@ -2,25 +2,23 @@
Completions for the global commands
"""
import logging
-from typing import List, Optional
-
-log = logging.getLogger(__name__)
-
import os
-from pathlib import Path
from functools import reduce
+from pathlib import Path
+from typing import List, Optional
-from slixmpp import JID
+from slixmpp import JID, InvalidJID
from poezio import common
from poezio import tabs
from poezio import xdg
-from poezio.common import safeJID
from poezio.config import config
from poezio.roster import roster
from poezio.core.structs import POSSIBLE_SHOW, Completion
+log = logging.getLogger(__name__)
+
class CompletionCore:
def __init__(self, core):
@@ -124,9 +122,12 @@ class CompletionCore:
return False
if len(args) == 1:
args.append('')
- jid = safeJID(args[1])
- if args[1].endswith('@') and not jid.user and not jid.server:
- jid.user = args[1][:-1]
+ try:
+ jid = JID(args[1])
+ except InvalidJID:
+ jid = JID('')
+ if args[1].endswith('@'):
+ jid.user = args[1][:-1]
relevant_rooms = []
relevant_rooms.extend(sorted(self.core.pending_invites.keys()))
@@ -149,7 +150,8 @@ class CompletionCore:
for tab in self.core.get_tabs(tabs.MucTab):
if tab.joined:
serv_list.append(
- '%s@%s' % (jid.user, safeJID(tab.name).host))
+ '%s@%s' % (jid.user, tab.general_jid.server)
+ )
serv_list.extend(relevant_rooms)
return Completion(
the_input.new_completion, serv_list, 1, quotify=True)
@@ -213,9 +215,8 @@ class CompletionCore:
if len(args) == 1:
args.append('')
- jid = safeJID(args[1])
-
- if jid.server and (jid.resource or jid.full.endswith('/')):
+ try:
+ jid = JID(args[1])
tab = self.core.tabs.by_name_and_class(jid.bare, tabs.MucTab)
nicks = [tab.own_nick] if tab else []
default = os.environ.get('USER') if os.environ.get(
@@ -230,6 +231,8 @@ class CompletionCore:
jids_list = ['%s/%s' % (jid.bare, nick) for nick in nicks]
return Completion(
the_input.new_completion, jids_list, 1, quotify=True)
+ except InvalidJID:
+ pass
muc_list = [tab.name for tab in self.core.get_tabs(tabs.MucTab)]
muc_list.sort()
muc_list.append('*')
@@ -429,9 +432,8 @@ class CompletionCore:
return False
if len(args) == 1:
args.append('')
- jid = safeJID(args[1])
-
- if jid.server and (jid.resource or jid.full.endswith('/')):
+ try:
+ jid = JID(args[1])
tab = self.core.tabs.by_name_and_class(jid.bare, tabs.MucTab)
nicks = [tab.own_nick] if tab else []
default = os.environ.get('USER') if os.environ.get(
@@ -446,6 +448,8 @@ class CompletionCore:
jids_list = ['%s/%s' % (jid.bare, nick) for nick in nicks]
return Completion(
the_input.new_completion, jids_list, 1, quotify=True)
+ except InvalidJID:
+ pass
muc_list = [tab.name for tab in self.core.get_tabs(tabs.MucTab)]
muc_list.append('*')
return Completion(the_input.new_completion, muc_list, 1, quotify=True)
diff --git a/poezio/core/handlers.py b/poezio/core/handlers.py
index 25639eed..980c5822 100644
--- a/poezio/core/handlers.py
+++ b/poezio/core/handlers.py
@@ -3,7 +3,6 @@ XMPP-related handlers for the Core class
"""
import logging
-log = logging.getLogger(__name__)
from typing import Optional
@@ -30,7 +29,7 @@ from poezio import fixes
from poezio import tabs
from poezio import xhtml
from poezio import multiuserchat as muc
-from poezio.common import safeJID, get_error_message
+from poezio.common import get_error_message
from poezio.config import config, get_image_cache
from poezio.core.structs import Status
from poezio.contact import Resource
@@ -58,6 +57,8 @@ try:
except ImportError:
PYGMENTS = False
+log = logging.getLogger(__name__)
+
CERT_WARNING_TEXT = """
WARNING: CERTIFICATE FOR %s CHANGED
@@ -249,7 +250,10 @@ class HandlerCore:
"""
Direct invitation received
"""
- room = safeJID(message['groupchat_invite']['jid'])
+ try:
+ room = JID(message['groupchat_invite']['jid'])
+ except InvalidJID:
+ return
if room.bare in self.core.pending_invites:
return