adicao de jornadas

This commit is contained in:
2026-04-24 16:30:48 +01:00
parent 55c12ceedc
commit a7bd44ba18

View File

@@ -150,13 +150,90 @@ public class StandingsScraper {
posicao++; posicao++;
} }
// Enviar para Firebase // Enviar para Firebase (Classificações)
DatabaseReference refClassificacoes = FirebaseDatabase.getInstance() DatabaseReference refClassificacoes = FirebaseDatabase.getInstance()
.getReference("classificacoes").child(escalao); .getReference("classificacoes").child(escalao);
refClassificacoes.setValueAsync(sortedStandings); refClassificacoes.setValueAsync(sortedStandings);
System.out.println("-> Classificação de " + escalao + " enviada para o Firebase."); System.out.println("-> Classificação de " + escalao + " enviada para o Firebase.");
// Enviar para Firebase (Jornadas)
DatabaseReference refJornadas = FirebaseDatabase.getInstance()
.getReference("jornadas").child(escalao);
for (Map.Entry<String, List<Map<String, Object>>> entry : matchdays.entrySet()) {
String jornadaNumber = entry.getKey();
for (Map<String, Object> match : entry.getValue()) {
try {
int homeId = parseId(match.get("Home"));
int awayId = parseId(match.get("Away"));
// Ignorar jogos com equipas placeholder / de descanso
if (homeId < 0 || awayId < 0) continue;
Club homeClub = clubesMap.get(homeId);
Club awayClub = clubesMap.get(awayId);
String homeName = homeClub != null ? homeClub.getName() : "Equipa " + homeId;
String homeLogo = homeClub != null ? homeClub.getImageUrl() : "";
String awayName = awayClub != null ? awayClub.getName() : "Equipa " + awayId;
String awayLogo = awayClub != null ? awayClub.getImageUrl() : "";
Map<String, Object> matchMap = new HashMap<>();
matchMap.put("home_nome", homeName);
matchMap.put("away_nome", awayName);
matchMap.put("home_logo", homeLogo);
matchMap.put("away_logo", awayLogo);
String homeGoalsStr = String.valueOf(match.get("homeGoals"));
if (homeGoalsStr != null && !homeGoalsStr.equals("null") && !homeGoalsStr.trim().isEmpty()) {
matchMap.put("home_golos", (int) Double.parseDouble(homeGoalsStr));
}
String awayGoalsStr = String.valueOf(match.get("awayGoals"));
if (awayGoalsStr != null && !awayGoalsStr.equals("null") && !awayGoalsStr.trim().isEmpty()) {
matchMap.put("away_golos", (int) Double.parseDouble(awayGoalsStr));
}
Object dateObj = match.get("date");
if (dateObj != null && !String.valueOf(dateObj).equals("null")) {
String dateStr = String.valueOf(dateObj);
if (dateStr.contains("T")) {
String[] parts = dateStr.split("T");
matchMap.put("data", parts[0]);
if (parts[1].length() >= 5) {
matchMap.put("hora", parts[1].substring(0, 5));
}
} else {
matchMap.put("data", dateStr);
}
}
Object fieldObj = match.get("field");
if (fieldObj != null && !String.valueOf(fieldObj).equals("null") && !String.valueOf(fieldObj).trim().isEmpty()) {
matchMap.put("campo", String.valueOf(fieldObj));
}
Object reportUrlObj = match.get("reportURL");
if (reportUrlObj != null && !String.valueOf(reportUrlObj).equals("null") && !String.valueOf(reportUrlObj).trim().isEmpty()) {
matchMap.put("matchReportUrl", "https://api.afavcd.pt" + String.valueOf(reportUrlObj));
}
String jorneyID = String.valueOf(match.get("jorneyID"));
if (jorneyID != null && !jorneyID.equals("null")) {
if (jorneyID.contains(".")) {
jorneyID = jorneyID.substring(0, jorneyID.indexOf("."));
}
refJornadas.child(jornadaNumber).child(jorneyID).setValueAsync(matchMap);
}
} catch (Exception ex) {
System.err.println("Erro ao processar jogo na jornada " + jornadaNumber + ": " + ex.getMessage());
}
}
}
System.out.println("-> Jornadas de " + escalao + " enviadas para o Firebase.");
} catch (Exception e) { } catch (Exception e) {
System.err.println("Erro a processar " + escalao); System.err.println("Erro a processar " + escalao);
e.printStackTrace(); e.printStackTrace();