コード例 #1
0
    def MoverArquivo(self, comandos):
        minComandos = 4
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]
        destino = comandos[2][1:][:-1]
        novoNome = novoNome = comandos[3]
            
        novoIndex, err = Indexador.MoveFile(self.index, self.user, caminho, \
                                            nome, destino, novoNome, True)
        if err:
            return "", err

        pathOld = Indexador.Path(caminho, nome)
        pathNew = Indexador.Path(destino, novoNome)
        err = Indexador.Gerenciador.Move(self.user, pathOld, pathNew)

        if err:            
            return "", err
        
        self.Serv.SendMessage(self.conn, "OK", "")        
        return novoIndex, err
コード例 #2
0
    def MoverPasta(self, comandos):
        minComandos = 4
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]
        novoCaminho = comandos[2][1:][:-1]
        novoNome = comandos[3]

        caminho = Indexador.Path(caminho, nome)
        novoIndex, err = Indexador.MoveFolder(self.index, self.user, caminho, \
                                              novoCaminho, novoNome)
        if err:
            return "", err

        caminhoNovo = Indexador.Path(novoCaminho, novoNome)
        err = Indexador.Gerenciador.MoveFolder(self.user, caminho, caminhoNovo)

        if err:
            return "", err        
        
        self.Serv.SendMessage(self.conn, "OK", "")
        return novoIndex, err  
コード例 #3
0
    def ChecarArquivo(self, comandos):
        minComandos = 2
        if not comandos:
            return "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]
        up = False
        if len(comandos) > minComandos:
            up = True

        if up:
            err = Indexador.CheckUpload(self.index, self.user, caminho, nome)
            if not err:
                self.Serv.SendMessage(self.conn, "OK", "")
            return err
            
        err = Indexador.CheckFile(self.index, self.user, caminho, nome)
        if err:
            return err

        path = Indexador.Path(caminho, nome)
        tamanho = Indexador.Gerenciador.SizeUser(self.user, path)
        
        self.Serv.SendMessage(self.conn, str(tamanho), "")
コード例 #4
0
    def UploadArquivo(self, comandos):
        minComandos = 3
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]
        tamanho = int(comandos[2])
        subst = False
        if len(comandos) > minComandos:
            subst = True

        if not subst:
            err = Indexador.CheckUpload(self.index, self.user, caminho, nome)
            print(err)
            if err:
                self.Serv.SendMessage(self.conn, err, "")
                return "", err

        path = Indexador.Path(caminho, nome)
        pathServer = Indexador.Gerenciador.PathServer(self.user, path)
        err = self.Serv.GetFile(self.conn, self.user, pathServer, tamanho)
        if err:
            self.Serv.SendMessage(self.conn, err, "")
            return "", err
        
        novoIndex, err = Indexador.AddFile(self.index, self.user, caminho, nome, subst)
        if err:
            Indexador.Gerenciador.os.remove(pathServer)
        return novoIndex, err
コード例 #5
0
    def Logar(self, comandos):
        #Remove os < >
        u = comandos[0][1:][:-1].lower()
        name, err = self.Serv.Login(self.conn, u)

        if name:            
            self.user = u
            self.name = name

            #Cria os arquivos do banco de dados
            Indexador.CreateProfile(self.user)           
            self.index = Indexador.LoadJSON(self.user)
        return err
コード例 #6
0
 def LoadShared(self, comandos):
     outro = comandos[0]
     
     outroIndex = Indexador.LoadJSON(outro)
     if not outroIndex:
         return "<USUÁRIO NÃO ENCONTRADO!>"
     
     sharedIndex, isShare = Indexador.ExploreShared(outroIndex, {}, self.user, "")
     if not isShare:
         return "<SEM PERMISSÃO PARA ACESSAR!>"
     
     self.sharedIndex = sharedIndex
     self.sharedUser = outro
     return "OK"
コード例 #7
0
 def SalvarIndex(self, index):
     if index == "":
         return "<Erro na indexação>"
     err = Indexador.WriteJSON(self.user, index)
     if not err:
         self.index = index
     return err
コード例 #8
0
    def DownloadArquivo(self, comandos):
        minComandos = 2
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]
        index = self.index
        user = self.user
        if len(comandos) > minComandos:
            if comandos[2] == "SHARED":
                index = self.sharedIndex
                user = self.sharedUser
            

        #Indexador checa se arquivo existe
        #E devolve o caminho verdadeiro do arquivo
        arquivo, err = Indexador.GetFile(index, user, caminho, nome)
        if err:
            return err

        #Informa o tamanho do arquivo
        tamanho = Indexador.Gerenciador.Size(arquivo)
        #E o servidor envia
        err = self.Serv.SendFile(self.conn, self.user, arquivo, tamanho)        
        return err
コード例 #9
0
    def ChecarCompart(self, comandos):
        minComandos = 1
        if not comandos:
            return "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = ""
        if len(comandos) > 1:
            nome = comandos[1]

        if nome:
            compart = Indexador.CheckShareFile(self.index, self.user, caminho, nome)
        else:
            compart = Indexador.CheckShareFolder(self.index, self.user, caminho)

        if not compart:
            compart = "[NINGUÉM]"
        elif type(compart) == type([]):
            compart = " | ".join(compart)

        self.Serv.SendMessage(self.conn, compart, "")
コード例 #10
0
 def CompartilharPasta(self, comandos):
     minComandos = 2
     if not comandos:
         return "<Sem comandos!>"
     elif len(comandos) < minComandos:
         return "<Comando inválido!>"
     caminho = comandos[0][1:][:-1]
     compart = comandos[1][1:][:-1]
     
     compart = compart.split(" | ")
     novoIndex, err = Indexador.ShareFolder(self.index, self.user, caminho, compart)
     if not err:
         self.Serv.SendMessage(self.conn, "OK", "")
     return novoIndex, err
コード例 #11
0
    def DeletarArquivo(self, comandos):
        minComandos = 2
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]        
        
        novoIndex, err = Indexador.RemoveFile(self.index, self.user, caminho, nome)

        if err:
            return "", err

        path = Indexador.Path(caminho, nome)
        path = Indexador.Gerenciador.PathServer(self.user, path)
        err = Indexador.Gerenciador.DeleteFile(path)

        if err:
            return "", err    

        self.Serv.SendMessage(self.conn, "OK", "")
        return novoIndex, err
コード例 #12
0
 def CriarPasta(self, comandos):
     minComandos = 2
     if not comandos:
         return "", "<Sem comandos!>"
     elif len(comandos) < minComandos:
         return "", "<Comando inválido!>"
     caminho = comandos[0][1:][:-1]
     nome = comandos[1]
     subst = False
     if len(comandos) > minComandos:
         subst = comandos[2]
         
     novoIndex, err = Indexador.AddFolder(self.index, self.user, caminho, nome)
     if not err:
         self.Serv.SendMessage(self.conn, "OK", "")
     return novoIndex, err
コード例 #13
0
    def ChecarPasta(self, comandos):
        minComandos = 2
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        nome = comandos[1]
        up = False
        if len(comandos) > minComandos:
            up = True

        err = Indexador.CheckFolder(self.index, self.user, caminho, nome, up)
        if not err:
            self.Serv.SendMessage(self.conn, "OK", "")
        return err
コード例 #14
0
    def ListarPasta(self, comandos):
        caminho = comandos[0][1:][:-1]

        index = self.index
        user = self.user
        if len(comandos) > 1:
            if comandos[1] == "SHARED":
                index = self.sharedIndex
                user = self.sharedUser
            
        conteudo, err = Indexador.ContentFolder(index, user, caminho)
        if err:
            if Indexador.Gerenciador.PathFile(user, caminho):
                return "[CAMINHO SELECIONADO É UM ARQUIVO]"
            return err
        return conteudo
コード例 #15
0
    def DeletarPasta(self, comandos):
        minComandos = 1
        if not comandos:
            return "", "<Sem comandos!>"
        elif len(comandos) < minComandos:
            return "", "<Comando inválido!>"
        caminho = comandos[0][1:][:-1]
        
        if not caminho:
            return "<NÃO PODE DELETAR A RAÍZ!!!>"
        
        novoIndex, err = Indexador.RemoveFolder(self.index, self.user, caminho)
        if err:
            self.Serv.SendMessage(self.conn, err, "")
            return "", err

        path = Indexador.Gerenciador.PathServer(self.user, caminho)
        err = Indexador.Gerenciador.DeleteFolders(path)

        if err:            
            return "", err
        
        self.Serv.SendMessage(self.conn, "OK", "")
        return novoIndex, err