"""Helper Inbox performs inbox messages related operations""" import queues from helper_sql import sqlExecute, sqlQuery def insert(t): """Perform an insert into the "inbox" table""" sqlExecute('''INSERT INTO inbox VALUES (?,?,?,?,?,?,?,?,?,?)''', *t) # shouldn't emit changedInboxUnread and displayNewInboxMessage # at the same time # queues.UISignalQueue.put(('changedInboxUnread', None)) def trash(msgid): """Mark a message in the `inbox` as `trash`""" sqlExecute('''UPDATE inbox SET folder='trash' WHERE msgid=?''', msgid) queues.UISignalQueue.put(('removeInboxRowByMsgid', msgid)) def delete(ack_data): """Permanent delete message from trash""" sqlExecute("DELETE FROM inbox WHERE msgid = ?", ack_data) def undeleteMessage(msgid): """Undelte the message""" sqlExecute('''UPDATE inbox SET folder='inbox' WHERE msgid=?''', msgid) def isMessageAlreadyInInbox(sigHash): """Check for previous instances of this message""" queryReturn = sqlQuery( '''SELECT COUNT(*) FROM inbox WHERE sighash=?''', sigHash) return queryReturn[0][0] != 0