diff --git a/bitmessagemain.py b/bitmessagemain.py index 804910ef..35dcae01 100644 --- a/bitmessagemain.py +++ b/bitmessagemain.py @@ -5,7 +5,7 @@ #Right now, PyBitmessage only support connecting to stream 1. It doesn't yet contain logic to expand into further streams. -softwareVersion = '0.1.1' +softwareVersion = '0.1.2' verbose = 2 maximumAgeOfAnObjectThatIAmWillingToAccept = 216000 #Equals two days and 12 hours. lengthOfTimeToLeaveObjectsInInventory = 237600 #Equals two days and 18 hours. This should be longer than maximumAgeOfAnObjectThatIAmWillingToAccept so that we don't process messages twice. @@ -44,9 +44,10 @@ import random import sqlite3 import threading #used for the locks, not for the threads import cStringIO -from email.parser import Parser +#from email.parser import Parser from time import strftime, localtime import os +import string #For each stream to which we connect, one outgoingSynSender thread will exist and will create 8 connections with peers. class outgoingSynSender(QThread): @@ -476,9 +477,14 @@ class receiveDataThread(QThread): print 'fromAddress:', fromAddress if messageEncodingType == 2: - headers = Parser().parsestr(message) - subject = headers['subject'] - body = headers['body'] + bodyPositionIndex = string.find(message,'\nBody:') + print 'bodyPositionIndex', bodyPositionIndex + if bodyPositionIndex > 1: + subject = message[8:bodyPositionIndex] + body = message[bodyPositionIndex+6:] + else: + subject = '' + body = message elif messageEncodingType == 1: body = message subject = '' @@ -696,9 +702,13 @@ class receiveDataThread(QThread): toLabel = addressInKeysFile if messageEncodingType == 2: - headers = Parser().parsestr(message) - subject = headers['subject'] - body = headers['body'] + bodyPositionIndex = string.find(message,'\nBody:') + if bodyPositionIndex > 1: + subject = message[8:bodyPositionIndex] + body = message[bodyPositionIndex+6:] + else: + subject = '' + body = message elif messageEncodingType == 1: body = message subject = '' @@ -2453,10 +2463,9 @@ class MyForm(QtGui.QMainWindow): #Below this point, it would be good if all of the necessary global data structures were initialized. self.rerenderComboBoxSendFrom() - if(self.ui.comboBoxSendFrom.count() > 0): - self.redrawLabelFrom(self.ui.comboBoxSendFrom.currentIndex()) + self.listOfOutgoingSynSenderThreads = [] #if we don't maintain this list, the threads will get garbage-collected. self.connectToStream(1) @@ -2804,6 +2813,12 @@ class MyForm(QtGui.QMainWindow): isEnabled = config.getboolean(addressInKeysFile, 'enabled') #I realize that this is poor programming practice but I don't care. It's easier for others to read. if isEnabled: self.ui.comboBoxSendFrom.insertItem(0,unicode(config.get(addressInKeysFile, 'label'),'utf-8'),addressInKeysFile) + self.ui.comboBoxSendFrom.insertItem(0,'','') + if(self.ui.comboBoxSendFrom.count() == 2): + self.ui.comboBoxSendFrom.setCurrentIndex(1) + self.redrawLabelFrom(self.ui.comboBoxSendFrom.currentIndex()) + else: + self.ui.comboBoxSendFrom.setCurrentIndex(0) def connectToStream(self,streamNumber): connectionsCount[streamNumber] = 0 @@ -3152,7 +3167,8 @@ class MyForm(QtGui.QMainWindow): return self.ui.lineEditTo.setText(str(fromAddressAtCurrentInboxRow)) self.ui.labelFrom.setText(toAddressAtCurrentInboxRow) - self.ui.comboBoxSendFrom.setEditText(str(self.ui.tableWidgetInbox.item(currentInboxRow,0).text)) + self.ui.comboBoxSendFrom.setCurrentIndex(0) + #self.ui.comboBoxSendFrom.setEditText(str(self.ui.tableWidgetInbox.item(currentInboxRow,0).text)) self.ui.textEditMessage.setText('\n\n------------------------------------------------------\n'+self.ui.tableWidgetInbox.item(currentInboxRow,2).data(Qt.UserRole).toPyObject()) if str(self.ui.tableWidgetInbox.item(currentInboxRow,2).text())[0:3] == 'Re:': self.ui.lineEditSubject.setText(str(self.ui.tableWidgetInbox.item(currentInboxRow,2).text()))