def updateUi(self): """ Update the browser screen based on the user input and report appropriate errors """ try: text = unicode(self.lineEdit.text()) smName = unicode(self.lineEdit2.text()) appObject = appControl.appController() retValue = appObject.getMessage(text) retValue2 = appObject.getSmName(smName) if retValue == text: if retValue2 == smName: if retValue2 == self.defaultSmName or retValue2 == self.emptySm: # self.browser.append("<b>%s</b> broadcasted in <font color=blue><b>%s</b></font>" % (text,smName)) #else: self.browser.append("<font color=green>Hwacha :/$</font>") self.browser.append("<font color=red>Social Media not choosen</font>") raise ValueError('Social Media not choosen') else: self.browser.append("<font color=green>Hwacha :/$</font>") self.browser.append("<font color=red>Message cannot be broadcasted</font>") raise ValueError('Message cannot be broadcasted') else: self.browser.append("<font color=green>Hwacha :/$</font>") self.browser.append("<font color=red>Message cannot be read</font>") raise ValueError('Message cannot be read') except: self.browser.append("<font color=blue>Try again!</font>") return False #self.browser.append("<font color=yellow>(=Hwacha(=</font>") return True
def updateUi(self): """ Update the browser screen based on the user input and report appropriate errors """ try: text = unicode(self.lineEdit.text()) smName = unicode(self.lineEdit2.text()) appObject = appControl.appController() retValue = appObject.getMessage(text) retValue2 = appObject.getSmName(smName) if retValue == text: if retValue2 == smName: if retValue2 == self.defaultSmName or retValue2 == self.emptySm: # self.browser.append("<b>%s</b> broadcasted in <font color=blue><b>%s</b></font>" % (text,smName)) #else: self.browser.append( "<font color=green>Hwacha :/$</font>") self.browser.append( "<font color=red>Social Media not choosen</font>") raise ValueError('Social Media not choosen') else: self.browser.append("<font color=green>Hwacha :/$</font>") self.browser.append( "<font color=red>Message cannot be broadcasted</font>") raise ValueError('Message cannot be broadcasted') else: self.browser.append("<font color=green>Hwacha :/$</font>") self.browser.append( "<font color=red>Message cannot be read</font>") raise ValueError('Message cannot be read') except: self.browser.append("<font color=blue>Try again!</font>") return False #self.browser.append("<font color=yellow>(=Hwacha(=</font>") return True
def broadcast(self): """ Broadcast the input message in various social medias specified by the user""" self.browser.append("<font color=green>Hwacha :/broadcast/$</font>") message = unicode(self.lineEdit.text()) smName = unicode(self.lineEdit2.text()) appObject = appControl.appController() try: retValue = appObject.broadcastMessage(message,self.requiredSmList) self.browser.append("<b>%s</b> broadcasted in <font color=blue><b>%s</b></font>" % (message,smName)) except Exception as a: print a retValue = "Failed" self.browser.append("<font color=Red>Sending failed</font>") return retValue
def rmSm(self): smName = unicode(self.lineEdit4.text()) appObject = appControl.appController() self.browser.append("<font color=green>Hwacha :/socialMedia/$</font>") try: rmStatus = appObject.removeSm([smName]) self.smComboBox.clear() self.smComboBox.addItem(self.emptySm) self.smComboBox.addItems(appObject.getAvailableSmList()) self.smComboBox2.clear() self.smComboBox2.addItem(self.emptySm) self.smComboBox2.addItems(appObject.getAvailableSmList()) self.browser.append("<font color=blue><b>%s</b></font> successfully removed from Social Media List" % (smName)) except Exception as a: print a self.browser.append("<font color=red><b>%s</b> cannot be removed from Social Media List</font>" % (smName))
def addSm(self): smName = unicode(self.lineEdit3.text()) appObject = appControl.appController() self.browser.append("<font color=green>Hwacha :/socialMedia/$</font>") try: smList = appObject.getAvailableSmList() if smName in smList: self.browser.append("<font color=blue><b>%s</b></font> is already in Social Media List" % (smName)) else: addStatus = appObject.addSm([smName]) self.smComboBox.addItem(smName) self.smComboBox2.addItem(smName) self.browser.append("<font color=blue><b>%s</b></font> successfully added to Social Media List" % (smName)) except: self.browser.append("<font color=red><b>%s</b> cannot be added to Social Media List</font>" % (smName))
def broadcast(self): """ Broadcast the input message in various social medias specified by the user""" self.browser.append("<font color=green>Hwacha :/broadcast/$</font>") message = unicode(self.lineEdit.text()) smName = unicode(self.lineEdit2.text()) appObject = appControl.appController() try: retValue = appObject.broadcastMessage(message, self.requiredSmList) self.browser.append( "<b>%s</b> broadcasted in <font color=blue><b>%s</b></font>" % (message, smName)) except Exception as a: print a retValue = "Failed" self.browser.append("<font color=Red>Sending failed</font>") return retValue
def POST(self): appObject = appControl.appController() sm_list = [] form = web.input(subject="Hwacha Message",message="None",sm_all=None, twitter=None, mail=None ) print form.mail,form.twitter,form.wordpress if form.sm_all: sm_list = appObject. getAvailableSmList() else: for i in form.mail,form.twitter: if i : sm_list.append(i) status = appObject.broadcastMessage(form.message,sm_list) print status return render.result(status)
def BroadcastMessage(message,smList): appObject=appControl.appController() if not smList: sys.exit("Exiting. Please select social media using '-b' option") else: currentList = appObject.getAvailableSmList() inputList=smList[:] for i in smList: if i not in currentList: print "%s not in Social Media List, Please add using '-b' option" %(i) inputList.remove(i) status= appObject.broadcastMessage(message,inputList) print 'Status' print 20*'*' for key in status: print ' %s : %s ' %(key,status[key])
def removeSocialMedia(rmList): appObject=appControl.appController() currentList = appObject.getAvailableSmList() inputList = rmList[:] for i in rmList: if i not in currentList: print "'%s' not in Social Media list" %(i) inputList.remove(i) if appObject.removeSm(inputList): for i in inputList: print "Removing '%s' from Social Media list" %(i) print 'Available Social Media' print 20*'*' for i in appObject.getAvailableSmList(): print i
def POST(self): appObject = appControl.appController() sm_list = [] form = web.input(subject="Hwacha Message", message="None", sm_all=None, twitter=None, mail=None) print form.mail, form.twitter, form.wordpress if form.sm_all: sm_list = appObject.getAvailableSmList() else: for i in form.mail, form.twitter: if i: sm_list.append(i) status = appObject.broadcastMessage(form.message, sm_list) print status return render.result(status)
def rmSm(self): smName = unicode(self.lineEdit4.text()) appObject = appControl.appController() self.browser.append("<font color=green>Hwacha :/socialMedia/$</font>") try: rmStatus = appObject.removeSm([smName]) self.smComboBox.clear() self.smComboBox.addItem(self.emptySm) self.smComboBox.addItems(appObject.getAvailableSmList()) self.smComboBox2.clear() self.smComboBox2.addItem(self.emptySm) self.smComboBox2.addItems(appObject.getAvailableSmList()) self.browser.append( "<font color=blue><b>%s</b></font> successfully removed from Social Media List" % (smName)) except Exception as a: print a self.browser.append( "<font color=red><b>%s</b> cannot be removed from Social Media List</font>" % (smName))
def addSocialMedia(addList): appObject=appControl.appController() currentList=appObject.getAvailableSmList() inputList=addList[:] for i in addList: if i in currentList: print "'%s' already in social Media List" %(i) inputList.remove(i) if inputList: appObject.addSm(inputList) print '\n' for i in inputList: print "Adding '%s' to Social Media list" %(i) print '\nAvailable Social Media' print 20*'*' for i in appObject.getAvailableSmList(): print i
def addSm(self): smName = unicode(self.lineEdit3.text()) appObject = appControl.appController() self.browser.append("<font color=green>Hwacha :/socialMedia/$</font>") try: smList = appObject.getAvailableSmList() if smName in smList: self.browser.append( "<font color=blue><b>%s</b></font> is already in Social Media List" % (smName)) else: addStatus = appObject.addSm([smName]) self.smComboBox.addItem(smName) self.smComboBox2.addItem(smName) self.browser.append( "<font color=blue><b>%s</b></font> successfully added to Social Media List" % (smName)) except: self.browser.append( "<font color=red><b>%s</b> cannot be added to Social Media List</font>" % (smName))
def POST(self,smName): smList=[] smList.append(smName) appObject = appControl.appController() appObject.addSm(smList) raise web.seeother('/')
def __init__(self, parent=None): # --------- Super to initialize the form --------------- super(hwachaForm, self).__init__(parent) # --------- Some data abstractions ---------------- self.defaultMessage = "Message" self.send = "Send" self.clear = "Clear screen" self.add = "Add" self.remove = "Remove" self.emptySm = "None" self.defaultSmName = "Choose Social Media Name" self.requiredSmList = [] self.key = [] self.displayAddSm = "Add Social Media Name" # ----------- Add GUI elements -------------------- self.browser = QtGui.QTextBrowser() self.lineEdit = QtGui.QLineEdit(self.defaultMessage) # Select all, so that user can overwrite self.lineEdit.selectAll() self.button = QtGui.QPushButton(self.send) self.smComboBox = QtGui.QComboBox() self.smComboBox.addItem(self.emptySm) self.smComboBox2 = QtGui.QComboBox() self.smComboBox2.addItem(self.emptySm) self.clearButton = QtGui.QPushButton(self.clear) #create app object appObject = appControl.appController() self.smComboBox.addItems(appObject.getAvailableSmList()) self.smComboBox2.addItems(appObject.getAvailableSmList()) self.lineEdit2 = QtGui.QLineEdit(self.defaultSmName) self.lineEdit3 = QtGui.QLineEdit(self.displayAddSm) # self.lineEdit3.selectAll() // Not working self.addButton = QtGui.QPushButton(self.add) self.removeButton = QtGui.QPushButton(self.remove) self.lineEdit4 = QtGui.QLineEdit(self.emptySm) # -------- Add layout -------------------------- layout = QtGui.QVBoxLayout() # ---------- Add widgets to the layout -------------- layout.addWidget(self.browser) layout.addWidget(self.lineEdit) layout.addWidget(self.smComboBox) # lineEdit2 is purposefully removed from layout, if need to see uncomment #layout.addWidget(self.lineEdit2) layout.addWidget(self.button) layout.addWidget(self.clearButton) layout.addWidget(self.lineEdit3) layout.addWidget(self.addButton) layout.addWidget(self.smComboBox2) # lineEdit4 is purposefully removed from layout, if need to see uncomment #layout.addWidget(self.lineEdit4) layout.addWidget(self.removeButton) # setLayout() is the layout manager, which gives ownership of the widgets and of itself to the form, and takes ownership of any nested layouts itself. self.setLayout(layout) # Set focus to the start of lineEdit self.lineEdit.setFocus() # ------------- Add signals for the buttons on an action ------------------ # To signal the press of the return self.connect(self.lineEdit, QtCore.SIGNAL("returnPressed()"), self.updateUi) # To signal the click over the button #self.connect(self.button, QtCore.SIGNAL("clicked()"), self.updateUi) self.connect(self.button, QtCore.SIGNAL("clicked()"), self.resetRequiredSmList) # The underlying is commented, this may come into use in future. #self.connect(self.button, QtCore.SIGNAL("clicked()"), self.getKey) self.connect(self.button, QtCore.SIGNAL("clicked()"), self.verifyBroadcast) # clear the screen self.connect(self.clearButton, QtCore.SIGNAL("clicked()"), self.cleanBrowser) # Add action to 'Add' button self.connect(self.addButton, QtCore.SIGNAL("clicked()"), self.addSm) # Add action to 'Remove' button self.connect(self.removeButton, QtCore.SIGNAL("clicked()"), self.rmSm) # To signal index change in comboBox self.connect(self.smComboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.lineEdit2, QtCore.SLOT("setText(QString)")) self.connect(self.smComboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.updateSmBrowser) self.connect(self.smComboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.updateSmList) # To signal index change in comboBox2 self.connect(self.smComboBox2, QtCore.SIGNAL("currentIndexChanged(QString)"), self.lineEdit4, QtCore.SLOT("setText(QString)")) # set window title self.setWindowTitle("Hwacha")
def __init__(self, parent=None): # --------- Super to initialize the form --------------- super(hwachaForm, self).__init__(parent) # --------- Some data abstractions ---------------- self.defaultMessage = "Message" self.send = "Send" self.clear = "Clear screen" self.add = "Add" self.remove = "Remove" self.emptySm = "None" self.defaultSmName = "Choose Social Media Name" self.requiredSmList = [] self.key = [] self.displayAddSm = "Add Social Media Name" # ----------- Add GUI elements -------------------- self.browser = QtGui.QTextBrowser() self.lineEdit = QtGui.QLineEdit(self.defaultMessage) # Select all, so that user can overwrite self.lineEdit.selectAll() self.button = QtGui.QPushButton(self.send) self.smComboBox = QtGui.QComboBox() self.smComboBox.addItem(self.emptySm) self.smComboBox2 = QtGui.QComboBox() self.smComboBox2.addItem(self.emptySm) self.clearButton = QtGui.QPushButton(self.clear) #create app object appObject = appControl.appController() self.smComboBox.addItems(appObject.getAvailableSmList()) self.smComboBox2.addItems(appObject.getAvailableSmList()) self.lineEdit2 = QtGui.QLineEdit(self.defaultSmName) self.lineEdit3 = QtGui.QLineEdit(self.displayAddSm) # self.lineEdit3.selectAll() // Not working self.addButton = QtGui.QPushButton(self.add) self.removeButton = QtGui.QPushButton(self.remove) self.lineEdit4 = QtGui.QLineEdit(self.emptySm) # -------- Add layout -------------------------- layout = QtGui.QVBoxLayout() # ---------- Add widgets to the layout -------------- layout.addWidget(self.browser) layout.addWidget(self.lineEdit) layout.addWidget(self.smComboBox) # lineEdit2 is purposefully removed from layout, if need to see uncomment #layout.addWidget(self.lineEdit2) layout.addWidget(self.button) layout.addWidget(self.clearButton) layout.addWidget(self.lineEdit3) layout.addWidget(self.addButton) layout.addWidget(self.smComboBox2) # lineEdit4 is purposefully removed from layout, if need to see uncomment #layout.addWidget(self.lineEdit4) layout.addWidget(self.removeButton) # setLayout() is the layout manager, which gives ownership of the widgets and of itself to the form, and takes ownership of any nested layouts itself. self.setLayout(layout) # Set focus to the start of lineEdit self.lineEdit.setFocus() # ------------- Add signals for the buttons on an action ------------------ # To signal the press of the return self.connect(self.lineEdit, QtCore.SIGNAL("returnPressed()"), self.updateUi) # To signal the click over the button #self.connect(self.button, QtCore.SIGNAL("clicked()"), self.updateUi) self.connect(self.button, QtCore.SIGNAL("clicked()"), self.resetRequiredSmList) # The underlying is commented, this may come into use in future. #self.connect(self.button, QtCore.SIGNAL("clicked()"), self.getKey) self.connect(self.button, QtCore.SIGNAL("clicked()"), self.verifyBroadcast) # clear the screen self.connect(self.clearButton, QtCore.SIGNAL("clicked()"), self.cleanBrowser) # Add action to 'Add' button self.connect(self.addButton, QtCore.SIGNAL("clicked()"), self.addSm) # Add action to 'Remove' button self.connect(self.removeButton, QtCore.SIGNAL("clicked()"), self.rmSm) # To signal index change in comboBox self.connect(self.smComboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.lineEdit2,QtCore.SLOT("setText(QString)")) self.connect(self.smComboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.updateSmBrowser) self.connect(self.smComboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.updateSmList) # To signal index change in comboBox2 self.connect(self.smComboBox2, QtCore.SIGNAL("currentIndexChanged(QString)"), self.lineEdit4,QtCore.SLOT("setText(QString)")) # set window title self.setWindowTitle("Hwacha")
def GET(self): appObject = appControl.appController() sm_list = appObject.getAvailableSmList() all_list = ['twitter', 'mail'] return render.index(sm_list, all_list)
def GET(self): appObject = appControl.appController() sm_list = appObject. getAvailableSmList() all_list = ['twitter','mail'] return render.index(sm_list,all_list)
def POST(self, smName): smList = [] smList.append(smName) appObject = appControl.appController() appObject.addSm(smList) raise web.seeother('/')
status= appObject.broadcastMessage(message,inputList) print 'Status' print 20*'*' for key in status: print ' %s : %s ' %(key,status[key]) if __name__ == '__main__': parse=display() results=parse.parse_args() appObject=appControl.appController() if results.addList: addSocialMedia(results.addList) if results.rmList: removeSocialMedia(results.rmList) if results.message: BroadcastMessage(results.message,results.smList)