in client/securedrop_client/logic.py [0:0]
def on_sync_success(self) -> None:
"""
Called when synchronization of data via the API queue succeeds.
* Set last sync flag
* Download new messages and replies
* Update missing files so that they can be re-downloaded
* Update authenticated user if name changed
* Resume queues if they were paused because of a network error since syncing was
successful
"""
with open(self.last_sync_filepath, "w") as f:
f.write(arrow.now().format())
self.show_last_sync()
missing_files = storage.update_missing_files(self.data_dir, self.session)
for missed_file in missing_files:
self.file_missing.emit(missed_file.source.uuid, missed_file.uuid, str(missed_file))
self.update_sources()
self.gui.refresh_current_source_conversation()
self.download_new_messages()
self.download_new_replies()
self.update_failed_replies()
self.sync_succeeded.emit()
try:
if (
self.authenticated_user
and self.api
and (
self.authenticated_user.username != self.api.username
or self.authenticated_user.firstname != self.api.first_name
or self.authenticated_user.lastname != self.api.last_name
)
):
self.update_authenticated_user.emit(self.authenticated_user)
except sqlalchemy.orm.exc.ObjectDeletedError:
self._close_client_session()
self.resume_queues()