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
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
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), "")
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
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
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"
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
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
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, "")
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
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
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
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
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
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