| 159 | |
| 160 | |
| 161 | class GatewayAccount(BMAccount): |
| 162 | gatewayName = None |
| 163 | ALL_OK = 0 |
| 164 | REGISTRATION_DENIED = 1 |
| 165 | def __init__(self, address): |
| 166 | super(GatewayAccount, self).__init__(address) |
| 167 | |
| 168 | def send(self): |
| 169 | status, addressVersionNumber, streamNumber, ripe = decodeAddress(self.toAddress) |
| 170 | stealthLevel = BMConfigParser().safeGetInt('bitmessagesettings', 'ackstealthlevel') |
| 171 | ackdata = genAckPayload(streamNumber, stealthLevel) |
| 172 | t = () |
| 173 | sqlExecute( |
| 174 | '''INSERT INTO sent VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', |
| 175 | '', |
| 176 | self.toAddress, |
| 177 | ripe, |
| 178 | self.fromAddress, |
| 179 | self.subject, |
| 180 | self.message, |
| 181 | ackdata, |
| 182 | int(time.time()), # sentTime (this will never change) |
| 183 | int(time.time()), # lastActionTime |
| 184 | 0, # sleepTill time. This will get set when the POW gets done. |
| 185 | 'msgqueued', |
| 186 | 0, # retryNumber |
| 187 | 'sent', # folder |
| 188 | 2, # encodingtype |
| 189 | min(BMConfigParser().getint('bitmessagesettings', 'ttl'), 86400 * 2) # not necessary to have a TTL higher than 2 days |
| 190 | ) |
| 191 | |
| 192 | queues.workerQueue.put(('sendmessage', self.toAddress)) |
| 193 | |
| 194 | def parseMessage(self, toAddress, fromAddress, subject, message): |
| 195 | super(GatewayAccount, self).parseMessage(toAddress, fromAddress, subject, message) |
| 196 | |
| 197 | class MailchuckAccount(GatewayAccount): |
| 198 | # set "gateway" in keys.dat to this |