Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
b7d1e581 by Philipp Hörist at 2019-07-30T19:36:50Z
MUC: Add callback for send_captcha()
- - - - -
1 changed file:
- nbxmpp/modules/muc.py
Changes:
=====================================
nbxmpp/modules/muc.py
=====================================
@@ -488,11 +488,12 @@ class MUC:
muc_user.setTagData('password', password)
return message
+ @call_on_response('_default_response')
def send_captcha(self, room_jid, form_node):
iq = Iq(typ='set', to=room_jid)
captcha = iq.addChild(name='captcha', namespace=NS_CAPTCHA)
captcha.addChild(node=form_node)
- self._client.send(iq)
+ return iq
@callback
def _default_response(self, stanza):
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/b7d1e581951218731711385697…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/b7d1e581951218731711385697…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
6f9c28ec by Philipp Hörist at 2019-07-26T09:24:51Z
MUC: Add a dedicated muc-joined event
- - - - -
2 changed files:
- gajim/common/modules/muc.py
- gajim/groupchat_control.py
Changes:
=====================================
gajim/common/modules/muc.py
=====================================
@@ -544,6 +544,12 @@ class MUC(BaseModule):
if muc_data.state == MUCJoinedState.JOINING:
self._remove_join_timeout(room_jid)
self._set_muc_state(room_jid, MUCJoinedState.JOINED)
+
+ app.nec.push_incoming_event(
+ NetworkEvent('muc-joined',
+ account=self._account,
+ room_jid=room_jid))
+
# We successfully joined a MUC, set autojoin bookmark
self._con.get_module('Bookmarks').add_bookmark(None,
muc_data.jid,
=====================================
gajim/groupchat_control.py
=====================================
@@ -312,6 +312,7 @@ class GroupchatControl(ChatControlBase):
settings_menu.set_menu_model(self.control_menu)
self._event_handlers = [
+ ('muc-joined', ged.GUI1, self._on_joined),
('muc-user-joined', ged.GUI1, self._on_user_joined),
('muc-user-left', ged.GUI1, self._on_user_left),
('muc-nickname-changed', ged.GUI1, self._on_nickname_changed),
@@ -1648,7 +1649,6 @@ class GroupchatControl(ChatControlBase):
# We just joined the room
self.add_info_message(_('You (%s) joined the group chat') % nick)
self.add_contact_to_roster(nick)
- self.got_connected()
if StatusCode.NON_ANONYMOUS in status_codes:
self.add_info_message(
@@ -1896,6 +1896,10 @@ class GroupchatControl(ChatControlBase):
self.remove_contact(nick)
self.draw_all_roles()
+ @event_filter(['account', 'room_jid'])
+ def _on_joined(self, _event):
+ self.got_connected()
+
@event_filter(['account', 'room_jid'])
def _on_user_joined(self, event):
nick = event.properties.muc_nickname
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6f9c28ec75bbfa29fcb15de5ade6d087a3…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6f9c28ec75bbfa29fcb15de5ade6d087a3…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
de372729 by Philipp Hörist at 2019-07-26T08:28:12Z
DataForms: Don't remove empty values
Old ejabberd servers dont accept missing value elements in text fields.
This now does not delete the value element anymore if it's empty.
- - - - -
1 changed file:
- nbxmpp/modules/dataforms.py
Changes:
=====================================
nbxmpp/modules/dataforms.py
=====================================
@@ -342,10 +342,8 @@ class StringField(DataField):
@value.setter
def value(self, value):
- assert isinstance(value, str)
- if value == '' and not self.required:
- del self.value
- return
+ if value is None:
+ value = ''
self.setTagData('value', value)
@value.deleter
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/de3727290a8c22c5a8aa165531…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/de3727290a8c22c5a8aa165531…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
f650f51a by Philipp Hörist at 2019-07-23T22:19:31Z
NickCompletion: Simplify nickname change
- - - - -
1 changed file:
- gajim/groupchat_control.py
Changes:
=====================================
gajim/groupchat_control.py
=====================================
@@ -1640,10 +1640,6 @@ class GroupchatControl(ChatControlBase):
for role in (Role.VISITOR, Role.PARTICIPANT, Role.MODERATOR):
self.draw_role(role)
- def _change_nick(self, new_nick: str) -> None:
- self.nick = new_nick
- self._nick_completion.change_nick(new_nick)
-
@event_filter(['account', 'room_jid'])
def _on_self_presence(self, event):
nick = event.properties.muc_nickname
@@ -1680,7 +1676,7 @@ class GroupchatControl(ChatControlBase):
nick = event.properties.muc_nickname
new_nick = event.properties.muc_user.nick
if event.properties.is_muc_self_presence:
- self._change_nick(new_nick)
+ self._nick_completion.change_nick(new_nick)
message = _('You are now known as %s') % new_nick
else:
message = _('{nick} is now known '
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/f650f51aa6ab71b778209897f1c2007bde…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/f650f51aa6ab71b778209897f1c2007bde…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
f4f7f1d1 by Andrey Gursky at 2019-07-22T02:03:27Z
Fix typo
Closes #9766
- - - - -
23d0bfcf by Andrey Gursky at 2019-07-22T02:55:30Z
Make exception message more informative
- - - - -
3 changed files:
- gajim/common/modules/base.py
- gajim/common/modules/message.py
- gajim/session.py
Changes:
=====================================
gajim/common/modules/base.py
=====================================
@@ -50,7 +50,7 @@ class BaseModule:
def __getattr__(self, key):
if key not in self._nbxmpp_methods:
- raise AttributeError
+ raise AttributeError("attribute '%s' is neither part of object '%s' nor declared in '_nbxmpp_methods'" % (key, self.__class__.__name__))
if not app.account_is_connected(self._account):
self._log.warning('Account not connected, cant use %s', key)
return
=====================================
gajim/common/modules/message.py
=====================================
@@ -294,7 +294,7 @@ class Message(BaseModule):
message_id=event.message_id)
if muc_caps_cache.has_mam(event.room_jid):
- finished = self._con.get_module('MAM').is_catchup_finished(
+ finished = self._con.get_module('MAM').is_catch_up_finished(
event.room_jid)
if not finished:
return
=====================================
gajim/session.py
=====================================
@@ -140,7 +140,7 @@ class ChatControlSession:
message_id=obj.message_id)
jid = self.conn.get_own_jid().getStripped()
- if self.conn.get_module('MAM').is_catchup_finished(jid):
+ if self.conn.get_module('MAM').is_catch_up_finished(jid):
app.logger.set_archive_infos(jid,
last_mam_id=obj.stanza_id,
last_muc_timestamp=obj.timestamp)
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/623960beb212af053b5ffa7967010e4ad…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/623960beb212af053b5ffa7967010e4ad…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch master at gajim / gajim
Commits:
623960be by Philipp Hörist at 2019-07-21T21:13:27Z
StartChat: Only show GroupchatInfo when not already joined
When we are already in a group chat just show the GroupChatControl
instead of GroupchatInfo
- - - - -
2 changed files:
- gajim/gtk/start_chat.py
- gajim/gui_interface.py
Changes:
=====================================
gajim/gtk/start_chat.py
=====================================
@@ -259,7 +259,14 @@ class StartChatDialog(Gtk.ApplicationWindow):
self._show_error_page(_('You can not join a group chat '
'unless you are connected.'))
return
+
+ self.ready_to_destroy = True
+ if app.interface.show_groupchat(row.account, row.jid):
+ return
+
+ self.ready_to_destroy = False
self._disco_muc(row.account, row.jid)
+
else:
app.interface.new_chat_from_jid(row.account, row.jid)
self.ready_to_destroy = True
=====================================
gajim/gui_interface.py
=====================================
@@ -1553,6 +1553,19 @@ class Interface:
### Methods for opening new messages controls
################################################################################
+ def show_groupchat(self, account, room_jid):
+ minimized_control = self.minimized_controls[account].get(room_jid)
+ if minimized_control is not None:
+ self.roster.on_groupchat_maximized(None, room_jid, account)
+ return True
+
+ if self.msg_win_mgr.has_window(room_jid, account):
+ gc_ctrl = self.msg_win_mgr.get_gc_control(room_jid, account)
+ # FIXME: Access message window directly
+ gc_ctrl.parent_win.set_active_tab(gc_ctrl)
+ return True
+ return False
+
def join_gc_room(self, account, room_jid, nick, password, minimize=False,
is_continued=False, config=None):
"""
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/623960beb212af053b5ffa7967010e4ad4…
--
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/623960beb212af053b5ffa7967010e4ad4…
You're receiving this email because of your account on dev.gajim.org.