Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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))            
Ejemplo n.º 5
0
 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))
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
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])
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
 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))
Ejemplo n.º 12
0
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
Ejemplo n.º 13
0
    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))
Ejemplo n.º 14
0
 def POST(self,smName):
     smList=[]
     smList.append(smName)
     appObject = appControl.appController()
     appObject.addSm(smList)
     raise web.seeother('/')
Ejemplo n.º 15
0
    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")
Ejemplo n.º 16
0
    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")
Ejemplo n.º 17
0
 def GET(self):
     appObject = appControl.appController()
     sm_list = appObject.getAvailableSmList()
     all_list = ['twitter', 'mail']
     return render.index(sm_list, all_list)
Ejemplo n.º 18
0
 def GET(self):
     appObject = appControl.appController()
     sm_list = appObject. getAvailableSmList()
     all_list = ['twitter','mail']
     return render.index(sm_list,all_list)
Ejemplo n.º 19
0
 def POST(self, smName):
     smList = []
     smList.append(smName)
     appObject = appControl.appController()
     appObject.addSm(smList)
     raise web.seeother('/')
Ejemplo n.º 20
0
           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)