package br.com.alura.screenmatch.principal;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.FileWriter;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class PrincipalComBusca {
public static void main(String[] args {
Scanner leitura = new Scanner(System.in);
List<Titulo> filmes = new ArrayList <>();
String busca = " ";
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println("Digite os nomes dos filmes (digite 'sair' para encerrar):");
// Cadastro manual de filmes (opcional)
while (true) {
System.out.print("Nome do filme: ");
String filme = leitura.nextLine();
if (filme.equalsIgnoreCase("sair")) {
break;
}
// Adiciona um novo Titulo à lista (sem dados da API)
Titulo novoTitulo = new Titulo();
novoTitulo.setTitle(filme);
filme.add(novoTitulo) ;
}
// Modo de busca (API OMDB)
System.out.println("\n--- Modo busca (API) ---");
System.out.println("Digite um filme para buscar na API (ou 'sair' para encerrar):");
while (true) {
System.out.print("Busca: ");
busca = leitura.nextLine();
if (busca.equalsIgnoreCase("sair")) {
break;
}
String urlBase = "https://www.omdbapi.com/?t=";
String apiKey = "apikey=sua-chave-aqui"; // Substitua pela sua chave!
String endereco = urlBase + busca.replace(" ", "+") + apiKey;
try {
// Requisição HTTP
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.creat(endereco))
.build();
HttpResponse<String> response = client.send(
request, Http Response.body();
// Converte JSON para objeto Titulo
Titulo tituloAPI = gson.fromJson(json, Titulo.class);
// Adiciona à lista de filmes
filmes.add(tituloAPI);
System.out.println("Filme adicionado: " + tituloAPI.getTitle());
} catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
}
}
// Escreve a lista no arquivo JSON (com formatação)
try(FileWriter escrita = new FileWhiter("filmes.json")) {
gson.toJson(filmes, escrita);
"\nArquivo 'filmes.json' gerado com sucesso!");
} catch (Exception e) {
System.out.println("Erro ao escrever o arquivo: " + e.getMessage());
}
System.out.println("Programa encerrado.");
leitura.close();
}
}