def clearMessages(self): if self.peerName and self.askForConfirmation(strings["confirmDeleteConversationText"]): numberOfMessages = len(sharedData.messages) deletedMessages = 0 for i in range(numberOfMessages): if sharedData.messages[i - deletedMessages].messagePeer == self.peerName: sharedData.messages.pop(i - deletedMessages) deletedMessages += 1 storeMessages(self.session.username, sharedData.messages) self.refreshDisplay.emit()
def refreshThread(): try: sharedData.messages += self.session.getMessages() except SecureMessagingException as error: self.showMessageBox.emit(strings["errorText"] + responseTranslations[str(error)]) return sharedData.messages = sorted(sharedData.messages, key=messageSort) sharedData.markAsRead(self.ui.peer.text()) storeMessages(self.session.username, sharedData.messages) self.refreshDisplay.emit()
def unauthorize(self): if self.askForConfirmation(strings["confirmUnauthorizeClientText"]): try: self.session.unauthorize() except SecureMessagingException as error: self.showMessageBox.emit(strings["errorText"] + responseTranslations[str(error)]) return storeMessages(self.session.username, None) storeToken(self.session.username, None) storeKey(self.session.username, None, None) self.logout()
def linkClicked(self, url): url = url.toString() if url == "UP": return if url.startswith("FILE"): messageId = url[len("FILE") :] messageId = int(messageId) message = sharedData.messages[messageId] fileName = QtGui.QFileDialog.getSaveFileName(directory=message.fileName) if fileName: self.progressStart() def fileDownloaderThread(): try: fileContents = self.session.downloadFile(message) self.fileDownloadCompleted.emit(fileContents, fileName) except (SecureMessagingException, IOError) as error: self.showMessageBox.emit(strings["errorText"] + responseTranslations[str(error)]) return Thread(target=fileDownloaderThread).start() elif url.startswith("DEL_"): messageId = int(url[len("DEL_") :]) if self.askForConfirmation(strings["confirmDeleteMessageText"]): sharedData.messages.pop(messageId) storeMessages(self.session.username, sharedData.messages) self.refreshDisplay.emit() elif url.startswith("SGN_"): messageId = int(url[len("SGN_") :]) message = sharedData.messages[messageId] response = QInputDialog.getText( self, strings["signatureSecretInputTitle"], strings["signatureSecretInputLabel"] ) if response[1]: if message.verifySignature(response[0].encode("utf-8")): self.showMessageBox.emit(strings["signatureOkMessageText"]) else: self.showMessageBox.emit(strings["signatureBadMessageText"])
def renameThread(): newUsername = self.ui.newUsername.text() if newUsername == "": self.showMessageBox.emit(strings["missingFieldsErrorText"]) return try: oldUsername = self.session.username self.session.renameUser(newUsername) for message in sharedData.messages: if message.sender == oldUsername: message.sender = newUsername elif message.receiver == oldUsername: message.receiver = newUsername storeMessages(self.session.username, sharedData.messages) storeToken(self.session.username, self.session.token) storeKey(self.session.username, self.session.public, self.session.private) storeMessages(oldUsername, None) storeToken(oldUsername, None) storeKey(oldUsername, None, None) self.renameCompleted.emit() except SecureMessagingException as error: self.showMessageBox.emit(strings["errorText"] + responseTranslations[str(error)]) return
def markAllAsRead(self): sharedData.markAsRead() storeMessages(self.session.username, sharedData.messages) self.refreshList.emit()
def clearMessages(self): if self.askForConfirmation(strings["confirmDeleteAllMessagesText"]): sharedData.messages = [] storeMessages(self.session.username, None) self.refreshList.emit()