Ejemplo n.º 1
0
class GUI(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self,parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        
        self.addCarriers()
        
        self.thread = Sender()
        
        self.connect(self.ui.actionAbout, QtCore.SIGNAL('triggered()'), self.showAbout)
        self.connect(self.ui.actionQuit, QtCore.SIGNAL('triggered()'), exit)
        self.connect(self.ui.button, QtCore.SIGNAL('clicked()'), self.toggle)
        self.connect(self.thread, QtCore.SIGNAL("finished()"), self.done)
        self.connect(self.thread, QtCore.SIGNAL("terminated()"), self.done)
        self.connect(self.thread, QtCore.SIGNAL("plusOne()"), self.plusOne)
        self.connect(self.thread, QtCore.SIGNAL("sendingError()"), self.stop)

        self.ui.server.setText('127.0.0.1:25') #set default
        self.ui.message.setPlainText('SPAM!')
        self.ui.statusBar().showMessage('Ready') #broken
        
    
    def toggle(self):
        self.state = self.ui.button.text()
        if self.state == 'Start':
            self.start()
        if self.state == 'Stop':
            self.stop()
            
    def stop(self):
        self.thread.terminate()
        print('stoping')
        self.done()
        
    def done(self):
        self.ui.button.setText('Start')
        self.ui.phone.setEnabled(True)
        self.ui.provider.setEnabled(True)
        self.ui.server.setEnabled(True)
        self.ui.tls.setEnabled(True)
        self.ui.user.setEnabled(True)
        self.ui.password.setEnabled(True)
        self.ui.message.setEnabled(True)
        
    def start(self):
        if self.ui.phone.text() != '' and self.thread.connect(
                            self.ui.server.text(),
                            self.ui.user.text(), 
                            self.ui.password.text(),
                            self.ui.tls.isChecked()
                              ):
            self.ui.button.setText('Stop')
            self.ui.phone.setEnabled(False)
            self.ui.provider.setEnabled(False)
            self.ui.server.setEnabled(False)
            self.ui.tls.setEnabled(False)
            self.ui.user.setEnabled(False)
            self.ui.password.setEnabled(False)
            self.ui.message.setEnabled(False)
            self.ui.lcd.display('0')
            
            print('starting')
            
            
            self.thread.toaddr = self.ui.phone.text() + self.providers[self.ui.provider.currentText()]
            self.thread.msg = self.ui.message.toPlainText()
            
            print('sending to:', self.thread.toaddr)
            
        
        
    def plusOne(self):
        self.ui.lcd.display(str(self.ui.lcd.intValue() + 1))

    def showAbout(self):
        self.about = QtGui.QWidget()
        ui = Ui_About()
        ui.setupUi(self.about)
        ui.Version.setText(str(version))
        self.connect(ui.pushButton, QtCore.SIGNAL('clicked()'),self.about.close)
        self.about.show()
    
    def addCarriers(self):
        '''can get more from
        http://www.emailtextmessages.com/
        '''
        self.providers = {
                          'Alltel':'@message.alltel.com',
                          'AT&T':'@txt.att.net',
                          'Boost Mobile':'@myboostmobile.com',
                          'Metro PCS':'@mymetropcs.com',
                          'Sprint':'@messaging.sprintpcs.com',
                          'T-Mobile':'@tmomail.net',
                          'US Cellular':'@email.uscc.net',
                          'Verizon':'@vtext.com',
                          'Virgin Mobile':'@vmobl.com',
                          'Gmail':'@gmail.com',
                          'Other':''
                          }
        self.ui.provider.addItems(sorted(list(self.providers.keys())))