Small fixes and workarounds
This commit is contained in:
4
.vscode/launch.json
vendored
4
.vscode/launch.json
vendored
@@ -10,7 +10,7 @@
|
||||
"request": "launch",
|
||||
"mainClass": "de.jeyp91.App",
|
||||
"envFile": "${workspaceFolder}/.env",
|
||||
"args": " --mode APIFootballUpdater --season 2025 --league 1 --configFile Tippliga"
|
||||
"args": " --mode APIFootballUpdater --season 2024 --league 1 --configFile Tippliga"
|
||||
},
|
||||
{
|
||||
"type": "java",
|
||||
@@ -18,7 +18,7 @@
|
||||
"request": "launch",
|
||||
"mainClass": "de.jeyp91.App",
|
||||
"envFile": "${workspaceFolder}/.env",
|
||||
"args": " --mode MatchesUpdaterFootball --season 2025 --league 1 --configFile Tippliga"
|
||||
"args": " --mode MatchesUpdaterFootball --season 2024 --league 49 --configFile Tippliga"
|
||||
},
|
||||
{
|
||||
"type": "java",
|
||||
|
||||
2
jenkinsfiles/build/Jenkinsfile
vendored
2
jenkinsfiles/build/Jenkinsfile
vendored
@@ -36,7 +36,7 @@ pipeline {
|
||||
build wait: false, job: 'TippligaUpdater'
|
||||
build wait: false, job: 'WTLPokalUpdater'
|
||||
build wait: false, job: 'SupercupUpdater'
|
||||
build wait: false, job: 'LigaCupUpdater'
|
||||
// build wait: false, job: 'LigaCupUpdater'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import java.nio.charset.StandardCharsets;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
|
||||
import software.amazon.awssdk.core.exception.SdkClientException;
|
||||
@@ -15,6 +17,7 @@ import software.amazon.awssdk.core.sync.RequestBody;
|
||||
import software.amazon.awssdk.regions.Region;
|
||||
import software.amazon.awssdk.services.s3.S3Client;
|
||||
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
|
||||
import software.amazon.awssdk.services.s3.model.NoSuchKeyException;
|
||||
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
|
||||
import software.amazon.awssdk.services.s3.model.S3Exception;
|
||||
|
||||
@@ -23,6 +26,8 @@ public class S3Provider {
|
||||
private static final String BUCKET_NAME = "tlw-database-tool-api-football-data";
|
||||
private final S3Client s3;
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(S3Provider.class);
|
||||
|
||||
public S3Provider() {
|
||||
s3 = S3Client.builder()
|
||||
.region(AWS_DEFAULT_REGION)
|
||||
@@ -45,11 +50,19 @@ public class S3Provider {
|
||||
}
|
||||
|
||||
public void writeFixturesToS3(int season, int league, String content) {
|
||||
writeToS3(v3Filepath("fixtures", season, league), content);
|
||||
if (league == 1 || league == 4) {
|
||||
writeToS3(v3Filepath("fixtures", season-1, league), content);
|
||||
} else {
|
||||
writeToS3(v3Filepath("fixtures", season, league), content);
|
||||
}
|
||||
}
|
||||
|
||||
public void writeRoundsToS3(int season, int league, String content) {
|
||||
writeToS3(v3Filepath("rounds", season, league), content);
|
||||
if (league == 1 || league == 4) {
|
||||
writeToS3(v3Filepath("rounds", season-1, league), content);
|
||||
} else {
|
||||
writeToS3(v3Filepath("rounds", season, league), content);
|
||||
}
|
||||
}
|
||||
|
||||
private String getFileFromS3(String filename) {
|
||||
@@ -67,6 +80,8 @@ public class S3Provider {
|
||||
}
|
||||
} catch (SdkClientException | IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchKeyException e) {
|
||||
logger.error(filename + " not found in S3.");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
@@ -83,6 +98,9 @@ public class S3Provider {
|
||||
}
|
||||
|
||||
private JSONObject stringToJSONObject(String rawData) {
|
||||
if(rawData.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
JSONParser parser = new JSONParser();
|
||||
JSONObject data = null;
|
||||
try {
|
||||
|
||||
@@ -8,11 +8,11 @@ import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.jeyp91.ResourceProvider;
|
||||
import de.jeyp91.S3Provider;
|
||||
@@ -20,7 +20,7 @@ import de.jeyp91.S3Provider;
|
||||
public class APIFootballUpdater {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(APIFootballUpdater.class);
|
||||
private static final String baseurl = "https://v3.football.api-sports.io/";
|
||||
private static final String BASE_URL = "https://v3.football.api-sports.io/";
|
||||
|
||||
public APIFootballUpdater() {
|
||||
|
||||
@@ -99,7 +99,7 @@ public class APIFootballUpdater {
|
||||
public String getRawData(String requestPath, int season, int league) throws Exception {
|
||||
|
||||
HttpClient client = HttpClientBuilder.create().build();
|
||||
String requestUrl = baseurl + requestPath + "?season=" + (season-1) + "&league=" + league + "&timezone=Europe/Berlin";
|
||||
String requestUrl = BASE_URL + requestPath + "?season=" + (season-1) + "&league=" + league + "&timezone=Europe/Berlin";
|
||||
HttpGet request = new HttpGet(requestUrl);
|
||||
|
||||
// add request header
|
||||
@@ -136,8 +136,7 @@ public class APIFootballUpdater {
|
||||
String errorMessage = resultObject.get("errors").toString();
|
||||
throw new Exception(requestUrl + " returned error: '" + errorMessage + "'");
|
||||
} else if (results == 0) {
|
||||
String statusMessage = ((JSONObject) resultObject.get("api")).get("status").toString();
|
||||
throw new Exception(requestUrl + " did not have any results with status: '" + statusMessage + "'");
|
||||
throw new Exception(requestUrl + " did not have any results.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,18 +14,23 @@ import de.jeyp91.apifootball.APIFootballMatch;
|
||||
public class MatchesListCreator {
|
||||
|
||||
private final JSONObject mainObject = new JSONObject();
|
||||
private final String country;
|
||||
private final String leagueName;
|
||||
private int season;
|
||||
private int league;
|
||||
private String country;
|
||||
private String leagueName;
|
||||
private final int season;
|
||||
|
||||
public MatchesListCreator(int season, int league) {
|
||||
this.season = season;
|
||||
this.league = league;
|
||||
S3Provider prov = new S3Provider();
|
||||
JSONObject leagueConfig = prov.getFixturesJSONFromS3(season, league);
|
||||
if (leagueConfig == null) {
|
||||
return;
|
||||
}
|
||||
JSONArray matchesAPIFootball = (JSONArray) leagueConfig.get("response");
|
||||
|
||||
if(matchesAPIFootball.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
JSONObject firstMatchAPIFootball = (JSONObject) matchesAPIFootball.get(0);
|
||||
JSONObject leagueObject = (JSONObject) firstMatchAPIFootball.get("league");
|
||||
this.country = leagueObject.get("country").toString();
|
||||
|
||||
Reference in New Issue
Block a user