"MainWindow","Successfully created chan. To let others join your chan, give them the chan name and this Bitmessage address: %1. This address also appears in 'Your Identities'.").arg(createdAddress))
QMessageBox.about(self,_translate("MainWindow","Address too new"),_translate(
"MainWindow","Although that Bitmessage address might be valid, its version number is too new for us to handle. Perhaps you need to upgrade Bitmessage."))
@ -1379,12 +1441,11 @@ class MyForm(QtGui.QMainWindow):
toAddress=addBMIfNotPresent(toAddress)
try:
shared.config.get(toAddress,'enabled')
# The toAddress is one owned by me. We cannot send
# messages to ourselves without significant changes
# to the codebase.
QMessageBox.about(self,_translate("MainWindow","Sending to your address"),_translate(
"MainWindow","Error: One of the addresses to which you are sending a message, %1, is yours. Unfortunately the Bitmessage client cannot process its own messages. Please try running a second client on a different computer or within a VM.").arg(toAddress))
QMessageBox.about(self,_translate("MainWindow","Sending to your address"),_translate(
"MainWindow","Error: One of the addresses to which you are sending a message, %1, is yours. Unfortunately the Bitmessage client cannot process its own messages. Please try running a second client on a different computer or within a VM.").arg(toAddress))
"MainWindow","Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want."))
defaddSubscription(self,address,label):
address=addBMIfNotPresent(address)
#This should be handled outside of this function, for error displaying and such, but it must also be checked here.
ifshared.isAddressInMySubscriptionsList(address):
@ -1747,7 +1822,7 @@ class MyForm(QtGui.QMainWindow):
self.statusBar().showMessage(_translate("MainWindow","Error: You cannot add the same address to your subsciptions twice. Perhaps rename the existing one if you want."))
@ -2344,7 +2411,7 @@ class MyForm(QtGui.QMainWindow):
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow","Error: You cannot add the same address to your subsciptions twice. Perhaps rename the existing one if you want."))
self.radioButtonCreateChan.setText(_translate("NewChanDialog","Create a new chan",None))
self.radioButtonJoinChan.setText(_translate("NewChanDialog","Join a chan",None))
self.groupBoxJoinChan.setTitle(_translate("NewChanDialog","Join a chan",None))
self.label.setText(_translate("NewChanDialog","<html><head/><body><p>A chan is a set of encryption keys that is shared by a group of people. The keys and bitmessage address used by a chan is generated from a human-friendly word or phrase (the chan name).</p><p>Chans are experimental and are unmoderatable.</p></body></html>",None))
self.groupBoxCreateChan.setTitle(_translate("NewChanDialog","Create a chan",None))
self.label_4.setText(_translate("NewChanDialog","Enter a name for your chan. If you choose a sufficiently complex chan name (like a strong and unique passphrase) and none of your friends share it publicly then the chan will be secure and private.",None))
self.radioButtonCreateChan.setText(_translate("newChanDialog","Create a new chan",None))
self.radioButtonJoinChan.setText(_translate("newChanDialog","Join a chan",None))
self.groupBoxCreateChan.setTitle(_translate("newChanDialog","Create a chan",None))
self.label_4.setText(_translate("newChanDialog","Enter a name for your chan. If you choose a sufficiently complex chan name (like a strong and unique passphrase) and none of your friends share it publicly then the chan will be secure and private.",None))
self.groupBoxJoinChan.setTitle(_translate("newChanDialog","Join a chan",None))
self.label.setText(_translate("newChanDialog","<html><head/><body><p>A chan exists when a group of people share the same decryption keys. The keys and bitmessage address used by a chan are generated from a human-friendly word or phrase (the chan name). To send a message to everyone in the chan, send a normal person-to-person message to the chan address.</p><p>Chans are experimental and completely unmoderatable.</p></body></html>",None))
<string><html><head/><body><p>A chan is a set of encryption keys that is shared by a group of people. The keys and bitmessage address used by a chan is generated from a human-friendly word or phrase (the chan name).</p><p>Chans are experimental and are unmoderatable.</p></body></html></string>
<string>Enter a name for your chan. If you choose a sufficiently complex chan name (like a strong and unique passphrase) and none of your friends share it publicly then the chan will be secure and private.</string>
<string>Enter a name for your chan. If you choose a sufficiently complex chan name (like a strong and unique passphrase) and none of your friends share it publicly then the chan will be secure and private.</string>
<string><html><head/><body><p>A chan exists when a group of people share the same decryption keys. The keys and bitmessage address used by a chan are generated from a human-friendly word or phrase (the chan name). To send a message to everyone in the chan, send a normal person-to-person message to the chan address.</p><p>Chans are experimental and completely unmoderatable.</p></body></html></string>
'Programming error: A structure with the wrong number of values was passed into the addressGeneratorQueue. Here is the queueValue: %s\n'%queueValue)
'Programming error: A structure with the wrong number of values was passed into the addressGeneratorQueue. Here is the queueValue: %s\n'%repr(queueValue))
ifaddressVersionNumber<3oraddressVersionNumber>3:
sys.stderr.write(
'Program error: For some reason the address generator queue has been given a request to create at least one version %s address which it cannot do.\n'%addressVersionNumber)
@ -117,9 +119,8 @@ class addressGenerator(threading.Thread):
'(Within the recgetpubkey function) Someone requested one of my pubkeys but the requestedAddressVersionNumber doesn\'t match my actual address version number. That shouldn\'t have happened. Ignoring.\n')
'(Within the recgetpubkey function) Someone requested one of my pubkeys but the requestedAddressVersionNumber doesn\'t match my actual address version number. They shouldn\'t have done that. Ignoring.\n')
iflastPubkeySendTime<time.time()-shared.lengthOfTimeToHoldOnToAllPubkeys:# If the last time we sent our pubkey was at least 28 days ago...
withshared.printLock:
print'Found getpubkey-requested-hash in my list of EC hashes. Telling Worker thread to do the POW for a pubkey message and send it out.'
ifrequestedAddressVersionNumber==2:
shared.workerQueue.put((
'doPOWForMyV2Pubkey',requestedHash))
elifrequestedAddressVersionNumber==3:
shared.workerQueue.put((
'doPOWForMyV3Pubkey',requestedHash))
else:
iflastPubkeySendTime>time.time()-shared.lengthOfTimeToHoldOnToAllPubkeys:# If the last time we sent our pubkey was more recent than 28 days ago...
withshared.printLock:
print'Found getpubkey-requested-hash in my list of EC hashes BUT we already sent it recently. Ignoring request. The lastPubkeySendTime is:',lastPubkeySendTime
return
withshared.printLock:
print'Found getpubkey-requested-hash in my list of EC hashes. Telling Worker thread to do the POW for a pubkey message and send it out.'
ifrequestedAddressVersionNumber==2:
shared.workerQueue.put((
'doPOWForMyV2Pubkey',requestedHash))
elifrequestedAddressVersionNumber==3:
shared.workerQueue.put((
'sendOutOrStoreMyV3Pubkey',requestedHash))
else:
withshared.printLock:
print'This getpubkey request is not for any of my keys.'
@ -722,8 +732,13 @@ class singleWorker(threading.Thread):
subject+'\n'+'Body:'+message
payload+=encodeVarint(len(messageToTransmit))
payload+=messageToTransmit
fullAckPayload=self.generateFullAckMessage(
ackdata,toStreamNumber,embeddedTime)# The fullAckPayload is a normal msg protocol message with the proof of work already completed that the receiver of this message can easily send out.
ifshared.safeConfigGetBoolean(toaddress,'chan'):
withshared.printLock:
print'Not bothering to generate ackdata because we are sending to a chan.'
fullAckPayload=''
else:
fullAckPayload=self.generateFullAckMessage(
ackdata,toStreamNumber,embeddedTime)# The fullAckPayload is a normal msg protocol message with the proof of work already completed that the receiver of this message can easily send out.
shared.UISignalQueue.put(('updateSentItemStatusByAckdata',(ackdata,tr.translateText("MainWindow","Message sent. Waiting on acknowledgement. Sent on %1").arg(unicode(
shared.UISignalQueue.put(('updateSentItemStatusByAckdata',(ackdata,tr.translateText("MainWindow","Message sent. Waiting on acknowledgement. Sent on %1").arg(unicode(