MCPcopy Index your code
hub / github.com/Bitmessage/PyBitmessage / HandleSendBroadcast

Method HandleSendBroadcast

src/api.py:716–771  ·  view source on GitHub ↗
(self, params)

Source from the content-addressed store, hash-verified

714 return hexlify(ackdata)
715
716 def HandleSendBroadcast(self, params):
717 if len(params) == 0:
718 raise APIError(0, 'I need parameters!')
719 if len(params) == 3:
720 fromAddress, subject, message = params
721 encodingType = 2
722 TTL = 4*24*60*60
723 elif len(params) == 4:
724 fromAddress, subject, message, encodingType = params
725 TTL = 4*24*60*60
726 elif len(params) == 5:
727 fromAddress, subject, message, encodingType, TTL = params
728 if encodingType not in [2, 3]:
729 raise APIError(6, 'The encoding type must be 2 or 3.')
730 subject = self._decode(subject, "base64")
731 message = self._decode(message, "base64")
732 if len(subject + message) > (2 ** 18 - 500):
733 raise APIError(27, 'Message is too long.')
734 if TTL < 60*60:
735 TTL = 60*60
736 if TTL > 28*24*60*60:
737 TTL = 28*24*60*60
738 fromAddress = addBMIfNotPresent(fromAddress)
739 self._verifyAddress(fromAddress)
740 try:
741 fromAddressEnabled = BMConfigParser().getboolean(
742 fromAddress, 'enabled')
743 except:
744 raise APIError(13, 'could not find your fromAddress in the keys.dat file.')
745 ackdata = genAckPayload(streamNumber, 0)
746 toAddress = '[Broadcast subscribers]'
747 ripe = ''
748
749 t = ('',
750 toAddress,
751 ripe,
752 fromAddress,
753 subject,
754 message,
755 ackdata,
756 int(time.time()), # sentTime (this doesn't change)
757 int(time.time()), # lastActionTime
758 0,
759 'broadcastqueued',
760 0,
761 'sent',
762 2,
763 TTL)
764 helper_sent.insert(t)
765
766 toLabel = '[Broadcast subscribers]'
767 queues.UISignalQueue.put(('displayNewSentMessage', (
768 toAddress, toLabel, fromAddress, subject, message, ackdata)))
769 queues.workerQueue.put(('sendbroadcast', ''))
770
771 return hexlify(ackdata)
772
773 def HandleGetStatus(self, params):

Callers

nothing calls this directly

Calls 7

_decodeMethod · 0.95
_verifyAddressMethod · 0.95
addBMIfNotPresentFunction · 0.90
BMConfigParserClass · 0.90
genAckPayloadFunction · 0.90
APIErrorClass · 0.85
putMethod · 0.80

Tested by

no test coverage detected