Compare commits

...

22 Commits

Author SHA1 Message Date
Julian Arndt
dee4f34f60 add espanyol 2025-12-02 19:01:44 +01:00
95ea00dad5 Add Portugal Primeira Liga 2025-11-25 21:47:05 +01:00
245d535a55 Go Ahead Eagles 2025-11-17 00:24:37 +01:00
Julian Arndt
476051409e Add support for Austria Bundesliga 2025-10-27 17:24:54 +01:00
dc1ebb2b57 Disable RelegationUpdater 2025-08-23 21:20:12 +02:00
b29e9a813b Fix updating of showTable value 2025-08-23 21:13:15 +02:00
2233c91d8c Disable RelegationUpdater Pipeline 2025-07-21 23:26:51 +02:00
7f2558155d Add wtl config for season 2026 2025-07-21 23:24:35 +02:00
00ea7e18e8 Fix bug in matching formula 2025-07-19 22:27:38 +02:00
2c81d0cac3 Prepare season 2026 2025-07-19 14:28:39 +02:00
ece15b8648 Trigger Relegation Updater 2025-05-19 22:21:54 +02:00
e0bfc47032 Add Jenkinsfile for Relegation 2025-05-19 22:17:12 +02:00
c35d28951e Improve handling for leagues without matches this season (ex. world cup) 2025-04-19 18:33:49 +02:00
9c060863f6 Small improvement 2025-04-19 17:55:39 +02:00
c6f070bdab Fix small bug 2025-04-19 17:12:05 +02:00
dd62417977 Fix jenkinsfiles so that errors are sent to telegram 2025-04-13 18:30:11 +02:00
Julian Arndt
f0c75e9e2b Add more teams 2025-03-27 22:54:12 +01:00
Julian Arndt
9506a9b370 Add Jagiellonia 2025-03-27 22:43:47 +01:00
Julian Arndt
01215cd5a8 Merge remote-tracking branch 'origin/main' 2025-03-27 22:41:24 +01:00
Julian Arndt
284c5d82f8 Add FK Bodø/Glimt 2025-03-27 22:41:14 +01:00
d8a6355587 Merge remote-tracking branch 'origin/main' 2025-02-03 20:57:55 +01:00
1bad009063 Fix false notifications for betters which already dropped out of the WTL Pokal 2025-02-03 20:57:23 +01:00
35 changed files with 1215 additions and 111 deletions

1
.gitignore vendored
View File

@@ -5,3 +5,4 @@
/target/
src/main/main.iml
src/test/test.iml
bin

18
.vscode/launch.json vendored
View File

@@ -10,7 +10,15 @@
"request": "launch",
"mainClass": "de.jeyp91.App",
"envFile": "${workspaceFolder}/.env",
"args": " --mode APIFootballUpdater --season 2024 --league 1 --configFile Tippliga"
"args": " --mode APIFootballUpdater --season 2026 --league 1 --configFile Tippliga"
},
{
"type": "java",
"name": "MatchesCreatorFootball",
"request": "launch",
"mainClass": "de.jeyp91.App",
"envFile": "${workspaceFolder}/.env",
"args": " --mode MatchesCreatorFootball --season 2026 --league 47 --configFile Relegation"
},
{
"type": "java",
@@ -18,7 +26,7 @@
"request": "launch",
"mainClass": "de.jeyp91.App",
"envFile": "${workspaceFolder}/.env",
"args": " --mode MatchesUpdaterFootball --season 2024 --league 49 --configFile Tippliga"
"args": " --mode MatchesUpdaterFootball --season 2026 --league 48 --configFile WTL-Pokal"
},
{
"type": "java",
@@ -26,7 +34,7 @@
"request": "launch",
"mainClass": "de.jeyp91.App",
"envFile": "${workspaceFolder}/.env",
"args": " --mode MatchdaysUpdater --season 2025 --league 1 --configFile Tippliga"
"args": " --mode MatchdaysUpdater --season 2026 --league 1 --configFile Tippliga"
},
{
"type": "java",
@@ -34,7 +42,7 @@
"request": "launch",
"mainClass": "de.jeyp91.App",
"envFile": "${workspaceFolder}/.env",
"args": " --mode MatchesResultsUpdater --season 2025 --league 1 --configFile Tippliga"
"args": " --mode MatchesResultsUpdater --season 2026 --league 1 --configFile Tippliga"
},
{
"type": "java",
@@ -42,7 +50,7 @@
"request": "launch",
"mainClass": "de.jeyp91.App",
"envFile": "${workspaceFolder}/.env",
"args": " --mode MatchesListGistUpdater --season 2025 --league 1 --configFile Tippliga"
"args": " --mode MatchesListGistUpdater --season 2026 --league 1 --configFile Tippliga"
}
]
}

View File

@@ -21,8 +21,8 @@ pipeline {
]) {
try {
sh "java --version"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode APIFootballUpdater --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesListGistUpdater --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode APIFootballUpdater --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesListGistUpdater --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}
@@ -45,6 +45,7 @@ pipeline {
build wait: false, job: 'TippligaUpdater'
build wait: false, job: 'WTLPokalUpdater'
build wait: false, job: 'SupercupUpdater'
// build wait: false, job: 'RelegationUpdater'
// build wait: false, job: 'LigaCupUpdater'
}
}

View File

@@ -20,10 +20,10 @@ pipeline {
"JAVA_HOME=${jdkPath}/jdk-22.0.2"
]) {
try {
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 49 --configFile EM-Tippspiel 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 49 --configFile EM-Tippspiel 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 49 --configFile EM-Tippspiel 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 49 --configFile EM-Tippspiel 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 49 --configFile EM-Tippspiel >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 49 --configFile EM-Tippspiel >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 49 --configFile EM-Tippspiel >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 49 --configFile EM-Tippspiel >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}

View File

@@ -0,0 +1,80 @@
pipeline {
agent any
stages {
stage('Restore tlw-database-tool') {
steps {
copyArtifacts filter: '**/tlw-database-tool-1.0.jar', fingerprintArtifacts: true, projectName: 'build tlw-database-tool', selector: lastSuccessful(), target: '.'
}
}
stage('Execute') {
steps {
script {
String jdkPath = tool name: 'OpenJDK22', type: 'jdk'
withCredentials([
usernamePassword(credentialsId: 'aws', usernameVariable: 'AWS_ACCESS_KEY_ID', passwordVariable: 'AWS_SECRET_ACCESS_KEY'),
usernamePassword(credentialsId: 'forum_database', usernameVariable: 'TLW_DATABASE_USERNAME', passwordVariable: 'TLW_DATABASE_PASSWORD'),
usernamePassword(credentialsId: 'forum_user', usernameVariable: 'FORUM_USERNAME', passwordVariable: 'FORUM_PASSWORD')
]) {
withEnv([
"JAVA_HOME=${jdkPath}/jdk-22.0.2"
]) {
try {
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 47 --configFile Relegation >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 47 --configFile Relegation >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 47 --configFile Relegation >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 47 --configFile Relegation >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}
String outputString = readFile 'log.txt'
if(outputString != "") {
ArrayList<String> outputList = outputString.replace("\n\n", "\n").split('\n').toList()
outputList = clean(outputList)
outputList.each {
telegramSendManual(it)
}
}
}
}
}
}
}
}
post {
always {
deleteDir()
}
failure {
telegramSendManual("Build failed!\n${env.BUILD_URL}console")
}
}
}
private ArrayList<String> clean(ArrayList<String> orig) {
ArrayList<String> cleaned = new ArrayList<String>()
orig.each{line ->
if(line.indexOf(" [main] INFO de.jeyp91 - ") >= 0) {
line = line.substring(20, line.size())
}
if(line.indexOf(" [main] ERROR de.jeyp91") >= 0) {
line = line.substring(20, line.size())
}
cleaned.add(line)
}
return cleaned.unique()
}
def telegramSendManual(String text) {
def encodedMessage = URLEncoder.encode(text, "UTF-8")
println encodedMessage
httpRequest(
httpMode: 'GET',
contentType: 'APPLICATION_JSON',
responseHandle: 'NONE',
url: "https://api.telegram.org/bot1298223079:AAEplcQpfzFG59qNYAYuSbJKtB9HMXCCE_U/sendMessage?text=$encodedMessage&chat_id=459231986&disable_web_page_preview=true",
wrapAsMultipart: false,
consoleLogResponseBody: true
)
}

View File

@@ -20,10 +20,10 @@ pipeline {
"JAVA_HOME=${jdkPath}/jdk-22.0.2"
]) {
try {
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 45 --configFile Supercup 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 45 --configFile Supercup 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 45 --configFile Supercup 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 45 --configFile Supercup 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 45 --configFile Supercup >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 45 --configFile Supercup >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 45 --configFile Supercup >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 45 --configFile Supercup >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}

View File

@@ -20,19 +20,19 @@ pipeline {
"JAVA_HOME=${jdkPath}/jdk-22.0.2"
]) {
try {
sh "ls build/libs"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 2 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 2 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 2 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 2 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 2 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 2 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 2 --configFile Tippliga >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 2 --configFile Tippliga >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}
String outputString = readFile 'log.txt'
echo "Output: ${outputString}"
if(outputString != "") {
ArrayList<String> outputList = outputString.replace("\n\n", "\n").split('\n').toList()
outputList = clean(outputList)

View File

@@ -20,10 +20,10 @@ pipeline {
"JAVA_HOME=${jdkPath}/jdk-22.0.2"
]) {
try {
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 48 --configFile WTL-Pokal 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 48 --configFile WTL-Pokal 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 48 --configFile WTL-Pokal 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 48 --configFile WTL-Pokal 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesUpdaterFootball --season ${season} --league 48 --configFile WTL-Pokal >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchdaysUpdater --season ${season} --league 48 --configFile WTL-Pokal >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode TeamsUpdater --season ${season} --league 48 --configFile WTL-Pokal >> log.txt 2>&1"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode MatchesResultsUpdater --season ${season} --league 48 --configFile WTL-Pokal >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}

View File

@@ -23,8 +23,7 @@ pipeline {
"TLW_WHATSAPP_HOST=https://tlw-whatsapp.codeam.io"
]) {
try {
sh "ls build/libs"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode WhatsAppNotifier --season ${season} --league 1 --configFile Tippliga 2>&1 >> log.txt"
sh "$JAVA_HOME/bin/java -jar build/libs/tlw-database-tool-1.0.jar --mode WhatsAppNotifier --season ${season} --league 1 --configFile Tippliga >> log.txt 2>&1"
} catch (Exception e) {
telegramSendManual("TLW-Database-Tool crashed!")
}

View File

@@ -36,6 +36,7 @@ pipeline {
build wait: false, job: 'TippligaUpdater'
build wait: false, job: 'WTLPokalUpdater'
build wait: false, job: 'SupercupUpdater'
// build wait: false, job: 'RelegationUpdater'
// build wait: false, job: 'LigaCupUpdater'
}
}

View File

@@ -66,7 +66,7 @@ public class App {
apiFootballUpdater.updateAllRounds(season);
}
case "MatchesListGistUpdater" -> {
MatchesListForumUpdater matchesListForumUpdater = new MatchesListForumUpdater(season);
MatchesListForumUpdater matchesListForumUpdater = new MatchesListForumUpdater();
matchesListForumUpdater.updateAllLeagues(season);
}
case "PostChecksum" -> {

View File

@@ -89,7 +89,7 @@ public abstract class BaseMatch {
}
public Integer getShowTable() {
return this.koMatch;
return this.showTable;
}
public void setShowTable(boolean showTable) {

View File

@@ -50,19 +50,11 @@ public class S3Provider {
}
public void writeFixturesToS3(int season, int league, String content) {
if (league == 1 || league == 4) {
writeToS3(v3Filepath("fixtures", season-1, league), content);
} else {
writeToS3(v3Filepath("fixtures", season, league), content);
}
writeToS3(v3Filepath("fixtures", season, league), content);
}
public void writeRoundsToS3(int season, int league, String content) {
if (league == 1 || league == 4) {
writeToS3(v3Filepath("rounds", season-1, league), content);
} else {
writeToS3(v3Filepath("rounds", season, league), content);
}
writeToS3(v3Filepath("rounds", season, league), content);
}
private String getFileFromS3(String filename) {

View File

@@ -50,7 +50,7 @@ public class APIFootballUpdater {
}
public void updateAllFixtures(int season) {
HashSet<Integer> leagues = getLeagues(season);
HashSet<Integer> leagues = getLeagues();
for (Integer league : leagues) {
updateFixtures(season, league);
try {
@@ -62,7 +62,7 @@ public class APIFootballUpdater {
}
public void updateAllRounds(int season) {
HashSet<Integer> leagues = getLeagues(season);
HashSet<Integer> leagues = getLeagues();
for (Integer league : leagues) {
updateRounds(season, league);
try {
@@ -97,9 +97,17 @@ public class APIFootballUpdater {
}
public String getRawData(String requestPath, int season, int league) throws Exception {
if(league != 1 && league != 4) {
/**
* Season usually is one higher in Tippliga than in API-Football.
* e.g. 2023/24 is 2024 in Tippliga and 2023 in API-Football.
* Because Liga Cup in Tippliga is at the end of a season, season does match World Cup (1) and Euro Championship (4)
*/
season--;
}
HttpClient client = HttpClientBuilder.create().build();
String requestUrl = BASE_URL + requestPath + "?season=" + (season-1) + "&league=" + league + "&timezone=Europe/Berlin";
String requestUrl = BASE_URL + requestPath + "?season=" + (season) + "&league=" + league + "&timezone=Europe/Berlin";
HttpGet request = new HttpGet(requestUrl);
// add request header
@@ -117,7 +125,7 @@ public class APIFootballUpdater {
return result.toString();
}
public HashSet<Integer> getLeagues(int season) {
public HashSet<Integer> getLeagues() {
JSONArray leaguesArray = ResourceProvider.getLigenConfig();
HashSet<Integer> leagues = new HashSet<>();
for (Object leagueObject : leaguesArray) {
@@ -131,13 +139,14 @@ public class APIFootballUpdater {
public void checkErrors(String requestUrl, String result) throws Exception {
JSONObject resultObject = stringToJSONObject(result);
boolean containsError = !((JSONArray) resultObject.get("errors")).isEmpty();
int results = Integer.parseInt(resultObject.get("results").toString());
// int results = Integer.parseInt(resultObject.get("results").toString());
if(containsError) {
String errorMessage = resultObject.get("errors").toString();
throw new Exception(requestUrl + " returned error: '" + errorMessage + "'");
} else if (results == 0) {
throw new Exception(requestUrl + " did not have any results.");
}
// else if (results == 0) {
// throw new Exception(requestUrl + " did not have any results.");
// }
}
private JSONObject stringToJSONObject(String rawData) {

View File

@@ -1,18 +1,18 @@
package de.jeyp91.tippliga;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Objects;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.jeyp91.apifootball.APIFootballMatch;
import de.jeyp91.apifootball.APIFootballMatchesProvider;
import de.jeyp91.teamidmatcher.TeamIDMatcher;
import de.jeyp91.tippligaforum.TippligaSQLConnector;
import de.jeyp91.tippligaforum.TippligaWebsiteConnector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Objects;
public class TLWMatchesResultsUpdater extends TLWMatchesManagerBase {
private static final Logger logger = LoggerFactory.getLogger(TLWMatchesResultsUpdater.class);
@@ -37,7 +37,6 @@ public class TLWMatchesResultsUpdater extends TLWMatchesManagerBase {
TippligaSQLConnector tippligaSQLConnector = TippligaSQLConnector.getInstance();
for (Object singleMatchdayConfig : this.matchdayConfig) {
int tlwMatchday = ((Long) ((JSONObject) singleMatchdayConfig).get("TLWMatchday")).intValue();
JSONArray matchesConfig = (JSONArray) ((JSONObject) singleMatchdayConfig).get("matchesConfig");
ArrayList<APIFootballMatch> apiFootballMatches = apiFootballMatchesProvider.getAPIFootballMatchesFromConfig((JSONObject) singleMatchdayConfig);
@@ -51,13 +50,13 @@ public class TLWMatchesResultsUpdater extends TLWMatchesManagerBase {
logger.error("Not matching config!");
}
if(apiFootballMatches.size() > 0) {
if(!apiFootballMatches.isEmpty()) {
updateResults(tlwMatchesUpdatedMatchday, apiFootballMatches);
}
updateBeautifulInfo(tlwMatchesOriginalMatchday, tlwMatchesUpdatedMatchday);
tlwMatchesUpdatedMatchday.removeIf(tlwMatch -> tlwMatch.getUpdateStatus() != TLWMatch.COMPARISON.DIFFERENT_RESULT);
if(tlwMatchesUpdatedMatchday.size() > 0) this.tlwMatchesUpdated.add(tlwMatchesUpdatedMatchday);
if(!tlwMatchesUpdatedMatchday.isEmpty()) this.tlwMatchesUpdated.add(tlwMatchesUpdatedMatchday);
}
}
@@ -131,6 +130,9 @@ public class TLWMatchesResultsUpdater extends TLWMatchesManagerBase {
private void updateBeautifulInfo(ArrayList<TLWMatch> matchesOriginal, ArrayList<TLWMatch> matchesUpdated) {
for (int i = 0; i < matchesOriginal.size(); i++) {
if(matchesUpdated.get(i).getUpdateStatus() != TLWMatch.COMPARISON.DIFFERENT_RESULT) {
continue;
}
updateBeautifulInfo(matchesOriginal.get(i), matchesUpdated.get(i));
}
}

View File

@@ -1,20 +1,21 @@
package de.jeyp91.tippliga;
import de.jeyp91.StatusHolder;
import de.jeyp91.teamidmatcher.TeamIDMatcher;
import de.jeyp91.apifootball.APIFootballMatch;
import de.jeyp91.apifootball.APIFootballMatchesProvider;
import de.jeyp91.tippligaforum.TippligaSQLConnector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.time.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Objects;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.jeyp91.StatusHolder;
import de.jeyp91.apifootball.APIFootballMatch;
import de.jeyp91.apifootball.APIFootballMatchesProvider;
import de.jeyp91.teamidmatcher.TeamIDMatcher;
import de.jeyp91.tippligaforum.TippligaSQLConnector;
public class TLWMatchesUpdaterFootball extends TLWMatchesManagerBase {
private static final Logger logger = LoggerFactory.getLogger(TLWMatchesUpdaterFootball.class);
@@ -281,6 +282,9 @@ public class TLWMatchesUpdaterFootball extends TLWMatchesManagerBase {
for(APIFootballMatch apiFootballMatch : apiFootballMatches) {
try {
TLWMatch tlwMatch = getMatchingMatch(apiFootballMatch, tlwMatchesCopy);
if(tlwMatch.getTeamIdHome() == 4) {
int debug = 1;
}
tlwMatchesCopy.remove(tlwMatch);
tlwMatch.setShowTable(apiFootballMatch.getShowTable() == 0);
} catch (NullPointerException ignored) {

View File

@@ -13,8 +13,8 @@ public class MatchesListForumUpdater {
private HashSet<Integer> leagues;
private static final Logger logger = LoggerFactory.getLogger(MatchesListForumUpdater.class);
public MatchesListForumUpdater(int season) {
this.leagues = new APIFootballUpdater().getLeagues(season);
public MatchesListForumUpdater() {
this.leagues = new APIFootballUpdater().getLeagues();
}
public void updateAllLeagues(int season) {
@@ -25,6 +25,9 @@ public class MatchesListForumUpdater {
public void updateLeague(int season, int league) {
MatchesListCreator creator = new MatchesListCreator(season, league);
if(creator.getMatches().isEmpty()) {
return;
}
String content = creator.getMatchesBeautiful();
String contentWithCodeBBCode = "<r><CODE><s>[code]</s>" + content + "<e>[/code]</e></CODE></r>";
Integer postId = getPostId(season, creator.getCountry(), creator.getLeagueName());

View File

@@ -1,24 +1,26 @@
package de.jeyp91.tippligaforum;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.time.Instant;
import java.util.ArrayList;
import javax.xml.bind.DatatypeConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.jeyp91.StatusHolder;
import de.jeyp91.tippliga.TLWLeague;
import de.jeyp91.tippliga.TLWMatch;
import de.jeyp91.tippliga.TLWMatchday;
import de.jeyp91.tippliga.TLWTeam;
import de.jeyp91.whatsapp.WhatsAppReminder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.bind.DatatypeConverter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.Instant;
import java.util.ArrayList;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TippligaSQLConnector {
@@ -323,6 +325,35 @@ public class TippligaSQLConnector {
return post;
}
public String getNextMailReminder(int hours) {
String query = """
WITH next_delivery_date AS (
SELECT
m.season,
m.league,
l.league_name,
l.bet_type,
m.matchday,
m.matchday_name,
delivery_date,
STR_TO_DATE(delivery_date, '%Y-%m-%d %H:%i:%s') as parsed_delivery_date
FROM phpbb_footb_matchdays m
LEFT JOIN phpbb_footb_leagues l ON (m.season = l.season AND m.league = l.league)
HAVING parsed_delivery_date > NOW() AND parsed_delivery_date < NOW() + INTERVAL {{remainingHours}} HOUR
)
""".replace("{{remainingHours}}", "" + hours);
ResultSet rset = executeQuery(query);
String reminder = null;
try {
if (rset.next()) {
reminder = "Reminder for user: " + rset.getString("username") + " for matchday: " + rset.getString("matchday");
}
} catch (SQLException e) {
e.printStackTrace();
}
return reminder;
}
public ArrayList<WhatsAppReminder> getNextWhatsAppReminders(int hours) {
final String remindersToSendQuery = """
WITH delivery_date_next_day AS (
@@ -330,7 +361,7 @@ public class TippligaSQLConnector {
m.season,
m.league,
l.league_name,
l.league_type,
l.bet_type,
m.matchday,
m.matchday_name,
delivery_date,
@@ -389,7 +420,7 @@ public class TippligaSQLConnector {
ON (u.username = wu.username)
LEFT JOIN phpbb_profile_fields_data pf
ON (u.user_id = pf.user_id)
WHERE ((d.league_type = 1 AND mb.match_no IS NOT NULL) OR d.league_type = 2)
WHERE ((d.bet_type = 0 AND mb.match_no IS NOT NULL) OR d.bet_type = 1)
AND (b.goals_home = '' OR b.goals_guest = '')
AND r.timestamp IS NULL
AND m.status = 0

View File

@@ -74,6 +74,16 @@
"name": "Eredivisie",
"league_id": 88
},
{
"country": "Austria",
"name": "Bundesliga",
"league_id": 218
},
{
"country": "Portugal",
"name": "Primeira Liga",
"league_id": 94
},
{
"country": "World",
"name": "UEFA Champions League",

View File

@@ -1268,5 +1268,70 @@
"teamname": "AJ Auxerre",
"tippligaID": 652,
"apiFootballID": 108
},
{
"teamname": "FK Bodø/Glimt",
"tippligaID": 653,
"apiFootballID": 327
},
{
"teamname": "Jagiellonia",
"tippligaID": 654,
"apiFootballID": 336
},
{
"teamname": "Celje",
"tippligaID": 655,
"apiFootballID": 4360
},
{
"teamname": "Legia Warszawa",
"tippligaID": 656,
"apiFootballID": 339
},
{
"teamname": "Djurgardens IF",
"tippligaID": 657,
"apiFootballID": 364
},
{
"teamname": "Rapid Wien",
"tippligaID": 415,
"apiFootballID": 781
},
{
"teamname": "ZFC Meuselwitz",
"tippligaID": 102,
"apiFootballID": 9358
},
{
"teamname": "Bahlinger SC",
"tippligaID": 585,
"apiFootballID": 9359
},
{
"teamname": "SV Hemelingen",
"tippligaID": 658,
"apiFootballID": 12783
},
{
"teamname": "RSV Eintracht",
"tippligaID": 659,
"apiFootballID": 14754
},
{
"teamname": "Sturm Graz",
"tippligaID": 559,
"apiFootballID": 637
},
{
"teamname": "Go Ahead Eagles",
"tippligaID": 660,
"apiFootballID": 410
},
{
"teamname": "Espanyol",
"tippligaID": 572,
"apiFootballID": 540
}
]

View File

@@ -283,5 +283,10 @@
"team_id": 2138,
"team_name": "TG ChatGPT",
"team_name_short": "ChatGPT"
},
{
"team_id": 2139,
"team_name": "Dustin",
"team_name_short": "Dustin"
}
]

View File

@@ -0,0 +1,297 @@
{
"numberOfMatchdays": 7,
"matchesPerMatchday": 0,
"pointMode": 4,
"pointsTendency": 1,
"pointsDifference": 2,
"pointsDirectHit": 3,
"ko": 0,
"matchdayConfig": [
{
"TLWMatchday": 1,
"numberOfMatches": 12,
"matchdayName": "1. Spieltag",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 1,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 2,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 3,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 4,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 5,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 6,
"showTable": true
}
]
},
{
"TLWMatchday": 2,
"numberOfMatches": 12,
"matchdayName": "2. Spieltag",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 7,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 8,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 9,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 10,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 11,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 12,
"showTable": true
}
]
},
{
"TLWMatchday": 3,
"numberOfMatches": 12,
"matchdayName": "3. Spieltag",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 13,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 14,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 15,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 16,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 17,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 18,
"showTable": true
}
]
},
{
"TLWMatchday": 4,
"numberOfMatches": 8,
"matchdayName": "Achtelfinale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 19,
"showTable": true
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-06-29 18:00:00",
"formulaHome": "G A2",
"formulaGuest": "G B2"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-06-29 21:00:00",
"formulaHome": "G A1",
"formulaGuest": "G C2"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-06-30 18:00:00",
"formulaHome": "G C1",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-06-30 21:00:00",
"formulaHome": "G B1",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-01 18:00:00",
"formulaHome": "G D2",
"formulaGuest": "G E2"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-01 21:00:00",
"formulaHome": "G F1",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-02 18:00:00",
"formulaHome": "G E1",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-02 21:00:00",
"formulaHome": "G D1",
"formulaGuest": "G F2"
}
]
},
{
"TLWMatchday": 5,
"numberOfMatches": 4,
"matchdayName": "Viertelfinale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 20,
"showTable": true
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-05 18:00:00",
"formulaHome": "W 40",
"formulaGuest": "W 38"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-05 21:00:00",
"formulaHome": "W 42",
"formulaGuest": "W 41"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-06 18:00:00",
"formulaHome": "W 39",
"formulaGuest": "W 37"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-06 21:00:00",
"formulaHome": "W 43",
"formulaGuest": "W 44"
}
]
},
{
"TLWMatchday": 6,
"numberOfMatches": 2,
"matchdayName": "Halbfinale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 21,
"showTable": true
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-09 21:00:00",
"formulaHome": "W 45",
"formulaGuest": "W 46"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-10 21:00:00",
"formulaHome": "W 48",
"formulaGuest": "W 47"
}
]
},
{
"TLWMatchday": 7,
"numberOfMatches": 1,
"matchdayName": "Finale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 5858,
"leagueMatchday": 22,
"showTable": true
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2024-07-14 21:00:00",
"formulaHome": "W 49",
"formulaGuest": "W 50"
}
]
}
]
}

View File

@@ -0,0 +1,11 @@
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 1, '1. Tippliga Würzburg', '1TL', 1, 39, 12, '0', '0', '0', '0', 4, 3, 1, 2, 0, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 2, '2. Tippliga Würzburg', '2TL', 1, 39, 12, '0', '0', '0', '0', 4, 3, 1, 2, 0, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 45, 'Supercup', 'SC', 2, 1, 0, '0', '0', '0', '0', 4, 3, 1, 2, 0, 0, 0, 1, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 47, 'Relegation', 'REL', 2, 1, 0, '0', '0', '0', '0', 4, 3, 1, 2, 0, 0, 0, 1, 561, 0, 1, 0.00, 1);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 48, 'WTL-Pokal', 'WTL', 2, 5, 0, '0', '0', '0', '0', 4, 3, 1, 2, 0, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 49, 'WM-Tippspiel', 'EM', 2, 7, 0, '0', '0', '0', '0', 4, 3, 1, 2, 0, 0, 0, 0, 0, 0, 1, 0.00, 1);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 51, '1. Tippliga Würzburg', '1TL', 1, 39, 7, '0', '0', '0', '0', 1, 0, 0, 0, 1, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 52, '2. Tippliga Würzburg', '2TL', 1, 39, 7, '0', '0', '0', '0', 1, 0, 0, 0, 1, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 95, 'Supercup', 'SC', 2, 2, 0, '0', '0', '0', '0', 1, 0, 0, 0, 1, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 97, 'Relegation', 'REL', 2, 1, 0, '0', '0', '0', '0', 1, 0, 0, 0, 1, 0, 0, 0, 561, 0, 1, 0.00, 0);
INSERT INTO `phpbb_footb_leagues` (`season`, `league`, `league_name`, `league_name_short`, `league_type`, `matchdays`, `matches_on_matchday`, `win_result`, `win_result_02`, `win_matchday`, `win_season`, `points_mode`, `points_result`, `points_tendency`, `points_diff`, `points_last`, `join_by_user`, `join_in_season`, `bet_in_time`, `rules_post_id`, `sort`, `bet_ko_type`, `bet_points`, `bet_type`) VALUES (2026, 98, 'WTL-Pokal', 'WTL', 2, 6, 0, '0', '0', '0', '0', 1, 0, 0, 0, 1, 0, 0, 0, 561, 0, 1, 0.00, 0);

View File

@@ -0,0 +1,434 @@
{
"numberOfMatchdays": 39,
"matchesPerMatchday": 12,
"pointMode": 4,
"pointsTendency": 1,
"pointsDifference": 2,
"pointsDirectHit": 3,
"ko": 0,
"matchdayConfig": [
{
"TLWMatchday": 1,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 79,
"leagueMatchday": 1,
"showTable": false
}
]
},
{
"TLWMatchday": 2,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 79,
"leagueMatchday": 2,
"showTable": false
}
]
},
{
"TLWMatchday": 3,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 1,
"showTable": true
}
]
},
{
"TLWMatchday": 4,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 2,
"showTable": true
}
]
},
{
"TLWMatchday": 5,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 3,
"showTable": true
}
]
},
{
"TLWMatchday": 6,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 4,
"showTable": true
}
]
},
{
"TLWMatchday": 7,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 5,
"showTable": true
}
]
},
{
"TLWMatchday": 8,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 6,
"showTable": true
}
]
},
{
"TLWMatchday": 9,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 7,
"showTable": true
}
]
},
{
"TLWMatchday": 10,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 8,
"showTable": true
}
]
},
{
"TLWMatchday": 11,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 9,
"showTable": true
}
]
},
{
"TLWMatchday": 12,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 10,
"showTable": true
}
]
},
{
"TLWMatchday": 13,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 11,
"showTable": true
}
]
},
{
"TLWMatchday": 14,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 12,
"showTable": true
}
]
},
{
"TLWMatchday": 15,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 13,
"showTable": true
}
]
},
{
"TLWMatchday": 16,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 14,
"showTable": true
}
]
},
{
"TLWMatchday": 17,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 15,
"showTable": true
}
]
},
{
"TLWMatchday": 18,
"matchesConfig": [
{
"type": "Placeholder",
"placeholderDatetime": "2025-12-26 18:00:00"
}
]
},
{
"TLWMatchday": 19,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 16,
"showTable": true
}
]
},
{
"TLWMatchday": 20,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 17,
"showTable": true
}
]
},
{
"TLWMatchday": 21,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 18,
"showTable": true
}
]
},
{
"TLWMatchday": 22,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 19,
"showTable": true
}
]
},
{
"TLWMatchday": 23,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 20,
"showTable": true
}
]
},
{
"TLWMatchday": 24,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 21,
"showTable": true
}
]
},
{
"TLWMatchday": 25,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 22,
"showTable": true
}
]
},
{
"TLWMatchday": 26,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 23,
"showTable": true
}
]
},
{
"TLWMatchday": 27,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 24,
"showTable": true
}
]
},
{
"TLWMatchday": 28,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 25,
"showTable": true
}
]
},
{
"TLWMatchday": 29,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 26,
"showTable": true
}
]
},
{
"TLWMatchday": 30,
"matchesConfig": [
{
"type": "Placeholder",
"placeholderDatetime": "2026-03-17 18:00:00"
}
]
},
{
"TLWMatchday": 31,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 27,
"showTable": true
}
]
},
{
"TLWMatchday": 32,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 28,
"showTable": true
}
]
},
{
"TLWMatchday": 33,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 29,
"showTable": true
}
]
},
{
"TLWMatchday": 34,
"matchesConfig": [
{
"type": "Placeholder",
"placeholderDatetime": "2026-04-14 18:00:00"
}
]
},
{
"TLWMatchday": 35,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 30,
"showTable": true
}
]
},
{
"TLWMatchday": 36,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 31,
"showTable": true
}
]
},
{
"TLWMatchday": 37,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 32,
"showTable": true
}
]
},
{
"TLWMatchday": 38,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 33,
"showTable": true
}
]
},
{
"TLWMatchday": 39,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 78,
"leagueMatchday": 34,
"showTable": true
}
]
}
]
}

View File

@@ -0,0 +1,152 @@
{
"numberOfMatchdays": 5,
"matchesPerMatchday": 0,
"pointMode": 4,
"pointsTendency": 1,
"pointsDifference": 2,
"pointsDirectHit": 3,
"ko": 1,
"matchdayConfig": [
{
"TLWMatchday": 1,
"matchdayName": "1. Runde",
"numberOfMatches": 32,
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 1,
"showTable": true
},
{
"type": "Placeholder",
"placeholderDatetime": "2025-08-15 18:00:00"
}
]
},
{
"TLWMatchday": 2,
"numberOfMatches": 16,
"matchdayName": "Achtelfinale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 2,
"showTable": true
},
{
"type": "Placeholder",
"placeholderDatetime": "2025-10-28 18:00:00"
}
]
},
{
"TLWMatchday": 3,
"numberOfMatches": 8,
"matchdayName": "Viertelfinale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 3,
"showTable": true
},
{
"type": "Placeholder",
"placeholderDatetime": "2025-12-02 18:30:00"
}
]
},
{
"TLWMatchday": 4,
"numberOfMatches": 4,
"matchdayName": "Halbfinale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 4,
"showTable": true
},
{
"type": "Placeholder",
"placeholderDatetime": "2026-02-03 18:30:00"
}
]
},
{
"TLWMatchday": 5,
"numberOfMatches": 6,
"matchdayName": "Finale",
"matchesConfig": [
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 5,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 5,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 6,
"showTable": true
},
{
"type": "AllMatchesOfMatchday",
"matchesLeague": 81,
"leagueMatchday": 6,
"showTable": true
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2026-04-21 20:45:00",
"formulaHome": "D",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2026-04-21 20:45:00",
"formulaHome": "D",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2026-04-22 20:45:00",
"formulaHome": "D",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2026-04-22 20:45:00",
"formulaHome": "D",
"formulaGuest": "D"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2026-05-23 20:00:00",
"formulaHome": "W 61",
"formulaGuest": "W 63"
},
{
"type": "PlaceholderSingleMatch",
"koMatch": true,
"placeholderDatetime": "2026-05-23 20:00:00",
"formulaHome": "W 62",
"formulaGuest": "W 64"
}
]
}
]
}

View File

@@ -8,7 +8,7 @@ public class S3ProviderTest {
@Test
public void getFixturesFromS3Test() {
S3Provider prov = new S3Provider();
JSONObject rounds = prov.getFixturesJSONFromS3(2025, 1240);
JSONObject rounds = prov.getFixturesJSONFromS3(2026, 1240);
System.out.println(rounds.toJSONString());
}
}

View File

@@ -4,7 +4,7 @@ import org.junit.Test;
public class APIFootballUpdaterTest {
int season = 2025;
int season = 2026;
@Test
public void checkErrorsTest() {
@@ -21,7 +21,7 @@ public class APIFootballUpdaterTest {
@Test
public void updateFixturesTest() {
APIFootballUpdater updater = new APIFootballUpdater();
updater.updateFixtures(2025, 79);
updater.updateFixtures(season, 218);
}
@Test

View File

@@ -1,15 +1,13 @@
package de.jeyp91.tippliga;
import org.junit.Test;
import java.text.ParseException;
import java.util.ArrayList;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class TLWMatchdaysCreatorTest {
int season = 2025;
int season = 2026;
@Test
public void getMatchdaysTippligaTest() {

View File

@@ -8,7 +8,7 @@ import static org.junit.Assert.assertEquals;
public class TLWMatchesCreatorFootballTest {
int season = 2025;
int season = 2026;
@Test
public void getMatchesTest() {

View File

@@ -4,7 +4,7 @@ import org.junit.Test;
public class TLWMatchesCreatorTipperPokalTest {
int season = 2025;
int season = 2026;
@Test
public void getMatchesWTLPokalTest() {

View File

@@ -4,7 +4,7 @@ import org.junit.Test;
public class TLWMatchesCreatorTipperTest {
int season = 2025;
int season = 2026;
@Test
public void getMatchesTippliga1Test() {

View File

@@ -4,14 +4,15 @@ import org.junit.Test;
public class TLWMatchesUpdaterFootballTest {
int season = 2025;
int season = 2026;
@Test
public void getUpdateSqlTest1() {
TLWMatchesUpdaterFootball updater = new TLWMatchesUpdaterFootball(season, 1, "Tippliga");
String sql = updater.getUpdateSQL();
String beatifulInfo = updater.getBeautifulInfo();
System.out.println(sql);
// System.out.println(updater.getBeautifulInfo());
// System.out.println(beatifulInfo);
}
@Test

View File

@@ -6,7 +6,7 @@ import org.junit.Test;
public class TLWTeamsCreatorTest {
int season = 2025;
int season = 2026;
@Test
public void getTeamsTippligaFootball1Test() {
@@ -53,7 +53,7 @@ public class TLWTeamsCreatorTest {
TLWMatchesCreatorFootball matchesCreator = new TLWMatchesCreatorFootball(2021, 49, "EM-Tippspiel");
ArrayList<TLWMatch> matches = matchesCreator.getMatches();
TLWTeamsCreator teamCreator = new TLWTeamsCreator(2021, 49, matches);
TLWTeamsCreator teamCreator = new TLWTeamsCreator(season, 49, matches);
String sql = teamCreator.getSql();
System.out.println(sql);
}

View File

@@ -6,35 +6,35 @@ public class MatchesListCreatorTest {
@Test
public void getMatchesTest2664() {
MatchesListCreator creator = new MatchesListCreator(2025, 2664);
MatchesListCreator creator = new MatchesListCreator(2026, 2664);
String matches = creator.getMatchesBeautiful();
// System.out.println(matches);
}
@Test
public void getMatchesTest2743() {
MatchesListCreator creator = new MatchesListCreator(2025, 2743);
MatchesListCreator creator = new MatchesListCreator(2026, 2743);
String matches = creator.getMatchesBeautiful();
System.out.println(matches);
}
@Test
public void getMatchesTest2755() {
MatchesListCreator creator = new MatchesListCreator(2025, 2755);
MatchesListCreator creator = new MatchesListCreator(2026, 2755);
String matches = creator.getMatchesBeautiful();
// System.out.println(matches);
}
@Test
public void getMatchesTest2790() {
MatchesListCreator creator = new MatchesListCreator(2025, 2790);
MatchesListCreator creator = new MatchesListCreator(2026, 2790);
String matches = creator.getMatchesBeautiful();
// System.out.println(matches);
}
@Test
public void getMatchesTest2795() {
MatchesListCreator creator = new MatchesListCreator(2025, 2795);
MatchesListCreator creator = new MatchesListCreator(2026, 2795);
String matches = creator.getMatchesBeautiful();
// System.out.println(matches);
}

View File

@@ -6,13 +6,13 @@ public class MatchesListForumUpdaterTest {
@Test
public void updateAllLeaguesTest() {
MatchesListForumUpdater updater = new MatchesListForumUpdater(2025);
updater.updateAllLeagues(2025);
MatchesListForumUpdater updater = new MatchesListForumUpdater();
updater.updateAllLeagues(2026);
}
@Test
public void updateLeagueTest() {
MatchesListForumUpdater updater = new MatchesListForumUpdater(2022);
updater.updateLeague(2022, 3509);
MatchesListForumUpdater updater = new MatchesListForumUpdater();
updater.updateLeague(2026, 218);
}
}