async def bmContactAdd(bmAddress: str, fullname: str, separator: str = '', groupName: str = '', did=None): from galacteek.services.net.bitmessage import bmAddressValid try: assert bmAddressValid(bmAddress) is True assert len(fullname) in range(1, 96) group = None if groupName: group = await BitMessageContactGroup.filter(name=groupName).first() if not group: group = BitMessageContactGroup(name=groupName) await group.save() contact = BitMessageContact(bmAddress=bmAddress, fullname=fullname, cSeparator=separator, did=did, group=group) await contact.save() except Exception as cerr: log.debug(f'Could not add BM contact {bmAddress}: {cerr}') else: return contact
async def loadMailBoxes(self): for root, dirs, files in os.walk(str(self.mailBoxesPath)): for dir in dirs: bma = dir if not bmAddressValid(bma): continue fp = Path(root).joinpath(bma) await self._cMailBox(bma, fp) log.debug(f'Loaded mailbox {dir}')
async def createKey(self): """ Create a BitMessage key via notbit-keygen """ code, data = await shellExec('notbit-keygen') if data: key = data.strip() log.debug(f'Bitmessage key generate result: {key}') if bmAddressValid(key): log.debug(f'Generate bitmessage key {key}') return key else: log.debug(f'Invalid key: {key}') else: log.debug('Bitmessage key generatation: exec failed')
async def onSend(self, *args): if not bmAddressValid(self.recipient): return await messageBoxAsync('Invalid recipient BM address') # curMailDir = self.messengerWidget.bmCurrentMailDir curMailDir = None result = await self.app.s.bmService.mailer.send( self.ui.msgFrom.currentText(), self.ui.msgTo.text(), self.ui.msgSubject.text(), self.messageBody, mailDir=curMailDir) if result is True: self.sendSuccess.emit(self.ui.msgTo.text()) else: await messageBoxAsync('Send error !')
async def watchMailDir(self): while True: await asyncio.sleep(cParentGet('mdirWatcher.sleepInterval')) log.debug(f'NotBit maildir ({self.clearMailDirPath}): reading') for key in self.clearMailDir.iterkeys(): try: message = self.clearMailDir[key] recipient = message['To'] bmAddr, domain = recipient.split('@') assert domain == 'bitmessage' assert bmAddressValid(bmAddr) except email.errors.MessageParseError as err: log.debug(f'Error parsing message {key}: {err}') continue except Exception as err: log.debug(f'Unknown error parsing message {key}: {err}') continue else: # Check if we have a mailbox for this recipient mbox = self.mailBoxGet(bmAddr) if not mbox: log.debug(f'No mailbox for {recipient}') await asyncio.sleep(0.05) continue log.debug(f'Found mailbox for {recipient}') if await mbox.store(message): # Delete the message from notbit's maildir log.debug('Transferred message to destination maildir') self.clearMailDir.remove(key) else: log.debug('Error transferring message to maildir') await asyncio.sleep(0.1)
def onRecpChanged(self, text): if bmAddressValid(text) and 0: self.ui.msgSubject.setFocus(Qt.OtherFocusReason)