def dbcall(): with dispatcher.node.db.open_session() as sess: q = sess.query(func.count("*")).select_from(DmailTag).filter(DmailTag.name == tag_name) if q.scalar(): return False tag = DmailTag() tag.name = tag_name sess.add(tag) sess.commit() return True
def dbcall(): with handler.node.db.open_session() as sess: handler.node.db.lock_table(sess, DmailMessage) q = sess.query(func.count("*"))\ .filter(DmailMessage.data_key == dmail_key) if q.scalar(): return False q = sess.query(DmailAddress.id)\ .filter(DmailAddress.site_key == dmail_addr) dmail_address = q.first() msg = DmailMessage() msg.dmail_address_id = dmail_address.id msg.data_key = dmail_key msg.sender_dmail_key =\ enc.generate_ID(dmailobj.sender_pubkey)\ if dmailobj.sender_pubkey else None msg.sender_valid = valid_sig msg.subject = dmailobj.subject msg.date = mutil.parse_iso_datetime(dmailobj.date) msg.hidden = False msg.read = False tag = DmailTag() tag.name = "Inbox" msg.tags = [tag] msg.parts = [] for part in dmailobj.parts: dbpart = DmailPart() dbpart.mime_type = part.mime_type dbpart.data = part.data msg.parts.append(dbpart) sess.add(msg) sess.commit()