adicao de jornadas
This commit is contained in:
@@ -150,13 +150,90 @@ public class StandingsScraper {
|
||||
posicao++;
|
||||
}
|
||||
|
||||
// Enviar para Firebase
|
||||
// Enviar para Firebase (Classificações)
|
||||
DatabaseReference refClassificacoes = FirebaseDatabase.getInstance()
|
||||
.getReference("classificacoes").child(escalao);
|
||||
|
||||
refClassificacoes.setValueAsync(sortedStandings);
|
||||
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) {
|
||||
System.err.println("Erro a processar " + escalao);
|
||||
e.printStackTrace();
|
||||
|
||||
Reference in New Issue
Block a user