Example #1
0
    def showPage(self, pageId=None):
        if pageId is not None and self != threading.currentThread():
            return
        """ Mostra a página do SisCop se o pageId for diferente do último. """
        if pageId is None or pageId != self.lastPageId:
            if pageId is not None:
                self.lastPageId = pageId
            # verifica se a sessão ainda é válida, senão faz login.
            self.checkLogged(self.openUrlRegPonto())
            if not self.logged:
                self.login()
            # abre o browser com a página
            procs = commands.getoutput('/bin/ps xo comm').split('\n')
            if 'chrome' in procs:
                if self.logged:
                    # passa os cookies para o browser para evitar a tela de login
                    url = self.urlCadRegPonto + "?"
                    cookies = []
                    for cookie in self.cookiejar:
                        cookies.append("%s=%s" % (cookie.name, cookie.value))
                    url = url + urllib.urlencode({'cookie': '; '.join(cookies)})
                else:
                    url = self.urlLogin
                execute(["google-chrome", url])
                execute(["wmctrl", "-a", "Chrome"])
            else:
                execute(["firefox", self.urlLogin])
                execute(["wmctrl", "-a", "Firefox"])

        #verifica se o usuário está na máquina
        if pageId is not None:
            bus = dbus.SessionBus()
            ssaver = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')
            try:
                # costuma demorar alguns segundos pra retornar
                ssaver.SimulateUserActivity() # faz aparecer a tela de login caso o screensaver esteja ativado
            except:
                pass # costuma lançar um erro DBusException: org.freedesktop.DBus.Error.NoReply
Example #2
0
 def showMail(self):
     execute('thunderbird')