/ src / helper_sent.py.bak
helper_sent.py.bak
 1  """
 2  Insert values into sent table
 3  """
 4  
 5  import time
 6  import uuid
 7  from addresses import decodeAddress
 8  from bmconfigparser import config
 9  from helper_ackPayload import genAckPayload
10  from helper_sql import sqlExecute, sqlQuery
11  
12  
13  # pylint: disable=too-many-arguments
14  def insert(msgid=None, toAddress='[Broadcast subscribers]', fromAddress=None, subject=None,
15             message=None, status='msgqueued', ripe=None, ackdata=None, sentTime=None,
16             lastActionTime=None, sleeptill=0, retryNumber=0, encoding=2, ttl=None, folder='sent'):
17      """Perform an insert into the `sent` table"""
18      # pylint: disable=unused-variable
19      # pylint: disable-msg=too-many-locals
20  
21      valid_addr = True
22      if not ripe or not ackdata:
23          addr = fromAddress if toAddress == '[Broadcast subscribers]' else toAddress
24          new_status, addressVersionNumber, streamNumber, new_ripe = decodeAddress(addr)
25          valid_addr = True if new_status == 'success' else False
26          if not ripe:
27              ripe = new_ripe
28  
29          if not ackdata:
30              stealthLevel = config.safeGetInt(
31                  'bitmessagesettings', 'ackstealthlevel')
32              new_ackdata = genAckPayload(streamNumber, stealthLevel)
33              ackdata = new_ackdata
34      if valid_addr:
35          msgid = msgid if msgid else uuid.uuid4().bytes
36          sentTime = sentTime if sentTime else int(time.time())  # sentTime (this doesn't change)
37          lastActionTime = lastActionTime if lastActionTime else int(time.time())
38  
39          ttl = ttl if ttl else config.getint('bitmessagesettings', 'ttl')
40  
41          t = (msgid, toAddress, ripe, fromAddress, subject, message, ackdata,
42               sentTime, lastActionTime, sleeptill, status, retryNumber, folder,
43               encoding, ttl)
44  
45          sqlExecute('''INSERT INTO sent VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', *t)
46          return ackdata
47      else:
48          return None
49  
50  
51  def delete(ack_data):
52      """Perform Delete query"""
53      sqlExecute("DELETE FROM sent WHERE ackdata = ?", ack_data)
54  
55  
56  def retrieve_message_details(ack_data):
57      """Retrieving Message details"""
58      data = sqlQuery(
59          "select toaddress, fromaddress, subject, message, received from inbox where msgid = ?", ack_data
60      )
61      return data
62  
63  
64  def trash(ackdata):
65      """Mark a message in the `sent` as `trash`"""
66      rowcount = sqlExecute(
67          '''UPDATE sent SET folder='trash' WHERE ackdata=?''', ackdata
68      )
69      return rowcount