Skip to content

Commit

Permalink
Merge pull request #46 from thiago-liracst/release/final
Browse files Browse the repository at this point in the history
Release final
  • Loading branch information
thiago-liracst authored Sep 4, 2021
2 parents 27b15ba + b895794 commit fca4a0d
Show file tree
Hide file tree
Showing 8 changed files with 418 additions and 62 deletions.
2 changes: 1 addition & 1 deletion DashBoard.hs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ seriesMelhorAvaliadasRecursivo (x : xs) i = show i ++ "° " ++ SerieDB.titulo (h

horasAssitidasSeries :: String
horasAssitidasSeries
|((null filmes) == False) = erroSemCadastroSerie
|(null filmes) = erroSemCadastroSerie
|(null assistidos) = erroSerieNaoAssistida
|otherwise = "O total de horas assistidas é de " ++ show (div horas 60) ++ " horas e " ++ show (mod horas 60) ++ " minutos."
where
Expand Down
33 changes: 33 additions & 0 deletions Filme.hs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,39 @@ recomendaFilme
| otherwise = "\nNão há filmes para exibir!\n"
where filme = FilmeDB.recomendaFilme

buscaFilmePorTitulo :: String -> String
buscaFilmePorTitulo titulo
| not (null filmes) = "\nFilmes:\n" ++ filmes
| otherwise = "\nNão há filmes para exibir!\n"
where filmes = concatenaToStringsFilmes (FilmeDB.buscaFilme "titulo" titulo)

buscaFilmePorGenero :: String -> String
buscaFilmePorGenero genero
| not (null filmes) = "\nFilmes:\n" ++ filmes
| otherwise = "\nNão há filmes para exibir!\n"
where filmes = concatenaToStringsFilmes (FilmeDB.buscaFilme "genero" genero)

buscaFilmePorDiretor :: String -> String
buscaFilmePorDiretor diretor
| not (null filmes) = "\nFilmes:\n" ++ filmes
| otherwise = "\nNão há filmes para exibir!\n"
where filmes = concatenaToStringsFilmes (FilmeDB.buscaFilme "diretor" diretor)

buscaFilmePorProdutora :: String -> String
buscaFilmePorProdutora produtora
| not (null filmes) = "\nFilmes:\n" ++ filmes
| otherwise = "\nNão há filmes para exibir!\n"
where filmes = concatenaToStringsFilmes (FilmeDB.buscaFilme "produtora" produtora)

recuperaEstatisticaFilme :: Int -> String
recuperaEstatisticaFilme id_filme
| not (null estatistica) = "\nAvaliação: " ++ show (avaliacao (head estatistica)) ++ "\nComentário: " ++ comentarios (head estatistica) ++ "\n"
| otherwise = "\nNão há estatistica para exibir!\n"
where estatistica = FilmeDB.recuperaEstatistica id_filme

recuperaFilmesAssistidos :: String
recuperaFilmesAssistidos = Filme.formataFilmes FilmeDB.recuperaFilmesAssistidos

concatenaToStringsFilmes :: [Filme] -> String
concatenaToStringsFilmes [] = ""
concatenaToStringsFilmes (filme:outros) = "id: " ++ show (id_filme filme) ++ " - " ++ (FilmeDB.formataFilme filme) ++ "\n" ++ (concatenaToStringsFilmes outros)
Expand Down
15 changes: 14 additions & 1 deletion FilmeDB.hs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,19 @@ recuperaFilmeTitulo titulo = fromIO (queryBD ("SELECT * FROM filmes WHERE titulo
recuperaFilmesPorGenero :: String -> [Filme]
recuperaFilmesPorGenero genero = fromIO (queryBD ("SELECT * FROM filmes WHERE genero = '" ++ genero ++ "'"))

-- Método que retorna uma lista de filmes que correspondam à pesquisa do usuário
buscaFilme :: String -> String -> [Filme]
buscaFilme coluna str = do
let resultado = queryBD ("SELECT * FROM filmes WHERE "++ coluna ++" LIKE '%"++ str ++"%';")
let filmes = fromIO resultado
filmes

-- Método que retorna a avaliação e comentário sobre um determinado filme
recuperaEstatistica :: Int -> [EstatisticasDoFilme]
recuperaEstatistica id_filme = do
let consulta = fromIO(queryBD("SELECT * FROM estatisticasfilmes WHERE id_estatistica_filme = "++ show id_filme ++";"))
consulta

-- Metodo que verifica existência de um filme no Banco de dados e retorna um valor booleano
-- True se ele existir e False se ele não existir
verificaExistenciaFilme :: Int -> Bool
Expand All @@ -197,7 +210,7 @@ formataFilmes indice filmes@(filme:resto) = ("[" ++ show (id_filme filme) ++ "]

-- Metodo que serve para formatar um filme específico para exibição.
formataFilme :: Filme -> String
formataFilme filme = "Título: " ++ titulo filme ++ ", Gênero: " ++ genero filme
formataFilme filme = "Título: " ++ titulo filme ++ ", Gênero: " ++ genero filme ++ ", Diretor: " ++ diretor filme ++ ", Produtora: " ++ produtora filme

--- pesquisa um id de filme para aquele genero, se tiver filmes daquele genero
pesquisaFilmeParaRecomendar:: String -> Int
Expand Down
Loading

0 comments on commit fca4a0d

Please sign in to comment.