4
respostas

Aparição dos das temporadas em certas séries

Boa noite a todos,

Finalizei o projeto do screenmatch junto com o curso, mas reparei em dois problemas que não sei se vocês conseguem me ajudar. O primeiro seria que as temporadas aparecem dependendo da série que eu escolher, por exemplo, se eu seleciono a série "Friends" aparece as temporadas, mas se eu seleciono a série "The Boys" não aparece. De sete séries, funciona a aparição da temporada em apenas duas, as demais não acontece nada. Outra coisa, em relação ao genero escolhido. Se eu escolho a primeira opção "Comedia" aparece corretamente as séries que condizem com o gênero. Mas, se escolho um segundo gênero, já não funciona, continua na parte das séries de comédia. Só consigo ver outro gênero funcionando, por exemplo "Drama", se eu recarrego a página e escolho como primeira opção "Drama" o restante não funciona, só funciona se eu recarregar a página e escolhe-lo de primeira.

Vou deixar meu github para vocês conseguirem entender melhor, mas vejo que não é um problema que eu cometi, mas sim que pode ser um problema com a própria API ou com alguma coisa do código que vocês forneceram para nós. Agradeço desde já a atenção e qualquer coisa é só responder por aqui mesmo :)

Dei uma olhada aqui parece que puxa as informações somente das séries que comentei "Friends" e "The Office". Vi no banco de dados e puxa só dessas duas as temporadas e episódios. As outras séries não puxam as temporadas por algum motivo que não sei qual :(

GitHub back-end: https://github.com/Giovana-Manuquian/screenmatch GitHub front-end: https://github.com/Giovana-Manuquian/screenmatch-front

4 respostas

Oi Giovana, tudo bem?

Primeiramente, parabéns por finalizar o projeto! Agora, vamos tentar resolver esses problemas que você relatou.

Temporadas não aparecem para algumas séries

Isso se dá pelo fato de que algumas séries você não adicionou os episódios no banco de dados.

Quando é feito a impressão das informações na página HTML o nosso Backend faz uma varredura no banco de dados buscando a relação de id_serie da tabela "episodios" com as séries da tabela "series", então se as temporadas não estão aparecendo é porque a série em questão não tem os seus episódios cadastrados no banco.

Com isso, recomendo que acesse o projeto do curso anterior a esse para fazer a inserção dos episódios, já que o projeto do curso atual não conta com uma rota para inserir séries ou seus episódios.

Aqui está o repositório com o projeto final: Java Screenmatch com JPA

Caso faça o clone do repositório, lembre-se de mudar para a branch "aula04", para ter acesso à versão final do projeto.

Filtro de Gênero não funciona corretamente

Pelo que você descreveu, o problema de os gêneros carregarem apenas uma vez mesmo após mudar a seleção pode estar relacionado a dois pontos:

  • Estado do currentIndex: quando você seleciona um novo gênero, o índice atual (currentIndex) do carrossel continua com o valor anterior. Isso pode causar problemas, já que o carrossel pode estar tentando renderizar uma parte da lista que não existe ou já foi exibida.

  • Atualização dos Elementos DOM: ao mudar a categoria, o novo conteúdo é carregado, mas o estado do carrossel (botões, índices) pode não estar sendo corretamente reiniciado.

Sugestões para resolver o problema:

  1. Reiniciar o Índice ao Mudar a Categoria: sempre que uma nova categoria for selecionada, reinicie o currentIndex para zero:

    categoriaSelect.addEventListener('change', function () {
        const categoria = document.querySelector('[data-name="categoria"]');
        const categoriaSelecionada = categoriaSelect.value;
        
        // adição de código
        currentIndex = 0;
        // final da adição
    
        // restante do código omitido
    
  2. Verifique se os Eventos são Removidos Antes de Adicionar Novos: sempre que uma nova lista de filmes é criada, eventos de clique são adicionados aos botões de navegação. Se a lista for recriada, os eventos antigos podem continuar ativos, causando comportamentos indesejados. Considere limpar os eventos antigos antes de adicionar novos:

        // Código omitdo
    
        // Adição de código
        btnPrev.removeEventListener('click', null);
        btnNext.removeEventListener('click', null);
        // final da adição
    
        btnPrev.addEventListener('click', () => {
            currentIndex = Math.max(0, currentIndex - 1);
            atualizarCarrossel(ul, dados);
        });
    
        btnNext.addEventListener('click', () => {
            currentIndex++;
            if (currentIndex >= dados.length - itemsPerPage + 1) {
                currentIndex = 0;
            }
            atualizarCarrossel(ul, dados);
        });
    
        atualizarCarrossel(ul, dados);
    }
    
  3. Limpar o Carrossel ao Mudar a Categoria: adicione uma verificação para remover o carrossel existente antes de criar um novo, evitando sobreposição de elementos:

    function criarListaFilmes(elemento, dados) {
        const carrosselExistente = elemento.querySelector('.carrossel');
        // Adição de código
        if (carrosselExistente) {
            elemento.removeChild(carrosselExistente);
        }
        // final da adição
        
        const carrossel = document.createElement('div');
        carrossel.className = 'carrossel';
    
        // restante do código omitido
    

Essas alterações devem garantir que o carrossel seja reiniciado corretamente ao mudar de categoria, carregando os novos dados conforme esperado.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Boa noite, Armano! Tudo bem?

A parte dos episódios e temporadas eu entendi perfeitamente e já estou no processo de adicionar os episódios. Porém, na parte dos gêneros, confesso que fiquei um pouco confusa sobre onde exatamente adicionar as alterações que o senhor me enviou. Eu coloquei onde imaginei que deveria ser, mas o código não mudou nada. O senhor poderia me dizer onde exatamente devo adicionar essas alterações, por favor? Pode ser que eu tenha feito certo e não funcionou, mas também há a chance de eu ter colocado no lugar errado.

Estou aprimorando o site de séries, então o index.js já contém o código de outras funcionalidades que estou adicionando. Retirei a parte do código que o senhor mandou e vou aguardar a sua resposta para tentar novamente. Fora isso, as alterações estão indo bem :). Se não for incômodo, gostaria de tirar outra dúvida ou até mesmo pedir uma sugestão para uma parte do meu código, mas primeiro quero acertar a parte dos gêneros para poder seguir em frente!

pagina inicial do projeto

o genero correto das seriesRepare que depois que troco o genero não muda as seriesO erro persiste quando troco para outro etcFico no aguardo, quero continuar aprimorando esse projeto :)

Boa tarde, Giovanna!

Peço desculpa por não deixar claro o que você precisava adicionas as alterações. Por isso, editei o tópico que mandei antes deixando entre dois comentários o que foi adicionado. Exemplo:

    // Adição de código
            O CÓDIGO VAI ESTAR AQUI
    // final da adição

Espero que agora funcione como você queria para dar continuidade no aprimoramento!

Boa noite Armano, eu ainda não consegui :(

Quando coloco o esse código o meu front some. Vou deixar disponível o código abaixo onde estou colocando o código que o senhor me passou. Posso estar colocando no lugar errado ou não está funcionando mesmo.

Segue o código:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade