Daniel Brötzmann pushed to branch master at gajim / gajim

Commits:

5 changed files:

Changes:

  • gajim/common/client.py
    ... ... @@ -494,8 +494,9 @@ def _send_message(self, message: OutgoingMessage) -> None:
    494 494
             message.set_sent_timestamp()
    
    495 495
             message.message_id = self.send_stanza(message.stanza)
    
    496 496
     
    
    497
    +        log_line_id = None
    
    497 498
             if not message.is_groupchat:
    
    498
    -            self.get_module('Message').log_message(message)
    
    499
    +            log_line_id = self.get_module('Message').log_message(message)
    
    499 500
     
    
    500 501
             app.ged.raise_event(
    
    501 502
                 MessageSent(jid=message.jid,
    
    ... ... @@ -507,6 +508,7 @@ def _send_message(self, message: OutgoingMessage) -> None:
    507 508
                             label=message.label,
    
    508 509
                             correct_id=message.correct_id,
    
    509 510
                             message_id=message.message_id,
    
    511
    +                        msg_log_id=log_line_id,
    
    510 512
                             play_sound=message.play_sound))
    
    511 513
     
    
    512 514
         def _prepare_for_connect(self) -> None:
    

  • gajim/common/events.py
    ... ... @@ -162,6 +162,7 @@ class MessageSent(ApplicationEvent):
    162 162
         jid: JID
    
    163 163
         message: str
    
    164 164
         message_id: str
    
    165
    +    msg_log_id: Optional[int]
    
    165 166
         chatstate: Optional[str]
    
    166 167
         timestamp: float
    
    167 168
         additional_data: AdditionalDataDict
    
    ... ... @@ -394,7 +395,7 @@ class MessageReceived(ApplicationEvent):
    394 395
         fjid: str
    
    395 396
         resource: str
    
    396 397
         delayed: Optional[float]
    
    397
    -    msg_log_id: int
    
    398
    +    msg_log_id: Optional[int]
    
    398 399
         displaymarking: Optional[Displaymarking]
    
    399 400
     
    
    400 401
     
    

  • gajim/common/modules/message.py
    ... ... @@ -197,18 +197,21 @@ def _message_received(self,
    197 197
                 event_attr.update({
    
    198 198
                     'room_jid': jid,
    
    199 199
                 })
    
    200
    +
    
    200 201
                 event = GcMessageReceived(**event_attr)
    
    201
    -            app.ged.raise_event(event)
    
    202
    +
    
    202 203
                 # TODO: Some plugins modify msgtxt in the GUI event
    
    203
    -            self._log_muc_message(event)
    
    204
    +            msg_log_id = self._log_muc_message(event)
    
    205
    +            event.msg_log_id = msg_log_id
    
    206
    +            app.ged.raise_event(event)
    
    204 207
                 return
    
    205 208
     
    
    206
    -        app.ged.raise_event(MessageReceived(**event_attr))
    
    207
    -
    
    209
    +        event = MessageReceived(**event_attr)
    
    208 210
             if not msgtxt:
    
    211
    +            app.ged.raise_event(event)
    
    209 212
                 return
    
    210 213
     
    
    211
    -        app.storage.archive.insert_into_logs(
    
    214
    +        msg_log_id = app.storage.archive.insert_into_logs(
    
    212 215
                 self._account,
    
    213 216
                 fjid if properties.is_muc_pm else jid,
    
    214 217
                 properties.timestamp,
    
    ... ... @@ -219,6 +222,9 @@ def _message_received(self,
    219 222
                 stanza_id=stanza_id or message_id,
    
    220 223
                 message_id=properties.id)
    
    221 224
     
    
    225
    +        event.msg_log_id = msg_log_id
    
    226
    +        app.ged.raise_event(event)
    
    227
    +
    
    222 228
         def _message_error_received(self,
    
    223 229
                                     _con: types.xmppClient,
    
    224 230
                                     _stanza: nbxmpp.Message,
    
    ... ... @@ -243,11 +249,11 @@ def _message_error_received(self,
    243 249
                              message_id=properties.id,
    
    244 250
                              error=properties.error))
    
    245 251
     
    
    246
    -    def _log_muc_message(self, event: GcMessageReceived) -> None:
    
    252
    +    def _log_muc_message(self, event: GcMessageReceived) -> Optional[int]:
    
    247 253
             self._check_for_mam_compliance(event.room_jid, event.stanza_id)
    
    248 254
     
    
    249 255
             if event.msgtxt and event.properties.muc_nickname:
    
    250
    -            app.storage.archive.insert_into_logs(
    
    256
    +            msg_log_id = app.storage.archive.insert_into_logs(
    
    251 257
                     self._account,
    
    252 258
                     event.jid,
    
    253 259
                     event.properties.timestamp,
    
    ... ... @@ -257,6 +263,9 @@ def _log_muc_message(self, event: GcMessageReceived) -> None:
    257 263
                     additional_data=event.additional_data,
    
    258 264
                     stanza_id=event.stanza_id,
    
    259 265
                     message_id=event.properties.id)
    
    266
    +            return msg_log_id
    
    267
    +
    
    268
    +        return None
    
    260 269
     
    
    261 270
         def _check_for_mam_compliance(self, room_jid: str, stanza_id: str) -> None:
    
    262 271
             disco_info = app.storage.cache.get_last_disco_info(room_jid)
    
    ... ... @@ -368,7 +377,7 @@ def build_message_stanza(self, message: OutgoingMessage) -> nbxmpp.Message:
    368 377
     
    
    369 378
             return stanza
    
    370 379
     
    
    371
    -    def log_message(self, message: OutgoingMessage) -> None:
    
    380
    +    def log_message(self, message: OutgoingMessage) -> Optional[int]:
    
    372 381
             if not message.is_loggable:
    
    373 382
                 return
    
    374 383
     
    
    ... ... @@ -384,9 +393,9 @@ def log_message(self, message: OutgoingMessage) -> None:
    384 393
                     message.correct_id,
    
    385 394
                     KindConstant.CHAT_MSG_SENT,
    
    386 395
                     message.timestamp)
    
    387
    -            return
    
    396
    +            return None
    
    388 397
     
    
    389
    -        app.storage.archive.insert_into_logs(
    
    398
    +        msg_log_id = app.storage.archive.insert_into_logs(
    
    390 399
                 self._account,
    
    391 400
                 message.jid,
    
    392 401
                 message.timestamp,
    
    ... ... @@ -396,3 +405,4 @@ def log_message(self, message: OutgoingMessage) -> None:
    396 405
                 additional_data=message.additional_data,
    
    397 406
                 message_id=message.message_id,
    
    398 407
                 stanza_id=message.message_id)
    
    408
    +        return msg_log_id

  • gajim/gtk/control.py
    ... ... @@ -286,6 +286,7 @@ def _on_message_sent(self, event: events.MessageSent) -> None:
    286 286
                              tim=event.timestamp,
    
    287 287
                              displaymarking=displaymarking,
    
    288 288
                              message_id=message_id,
    
    289
    +                         msg_log_id=event.msg_log_id,
    
    289 290
                              additional_data=event.additional_data)
    
    290 291
     
    
    291 292
         def _on_message_received(self, event: events.MessageReceived) -> None:
    
    ... ... @@ -367,6 +368,7 @@ def _on_gc_message_received(self, event: events.GcMessageReceived) -> None:
    367 368
                                      displaymarking=event.displaymarking,
    
    368 369
                                      message_id=event.properties.id,
    
    369 370
                                      stanza_id=event.stanza_id,
    
    371
    +                                 msg_log_id=event.msg_log_id,
    
    370 372
                                      additional_data=event.additional_data)
    
    371 373
     
    
    372 374
         def _on_message_updated(self, event: events.MessageUpdated) -> None:
    
    ... ... @@ -1156,6 +1158,7 @@ def add_muc_message(self,
    1156 1158
                             displaymarking: Optional[Displaymarking] = None,
    
    1157 1159
                             message_id: Optional[str] = None,
    
    1158 1160
                             stanza_id: Optional[str] = None,
    
    1161
    +                        msg_log_id: Optional[int] = None,
    
    1159 1162
                             additional_data: Optional[AdditionalDataDict] = None,
    
    1160 1163
                             ) -> None:
    
    1161 1164
     
    
    ... ... @@ -1174,6 +1177,7 @@ def add_muc_message(self,
    1174 1177
                               displaymarking=displaymarking,
    
    1175 1178
                               message_id=message_id,
    
    1176 1179
                               stanza_id=stanza_id,
    
    1180
    +                          msg_log_id=msg_log_id,
    
    1177 1181
                               additional_data=additional_data)
    
    1178 1182
     
    
    1179 1183
         def _on_room_subject(self,
    

  • gajim/gtk/conversation/rows/widgets.py
    ... ... @@ -176,7 +176,7 @@ def _create_popover(self,
    176 176
         def _on_activate_message_selection(self, _button: Gtk.ModelButton) -> None:
    
    177 177
             app.window.activate_action(
    
    178 178
                 'activate-message-selection',
    
    179
    -            GLib.Variant('u', self._row.log_line_id))
    
    179
    +            GLib.Variant('u', self._row.log_line_id or 0))
    
    180 180
     
    
    181 181
         @staticmethod
    
    182 182
         def _on_closed(popover: Gtk.Popover) -> None: