diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml deleted file mode 100644 index c09dd19..0000000 --- a/.gitea/workflows/ci.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Deploy to Dokku - -on: - push: - branches: ["master"] - paths-ignore: - - .gitignore - - README.md - - LICENSE - -jobs: - docker: - strategy: - matrix: - arch: ["ubuntu-latest"] - runs-on: ${{ matrix.arch }} - - # Steps to run - steps: - # Checkout the repo - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # Deploy to Dokku - - name: Push to dokku - uses: dokku/github-action@master - with: - git_remote_url: "ssh://dokku@10.0.50.136:22/bs-tracker" - ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index aa00ffa..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/git_toolbox_blame.xml b/.idea/git_toolbox_blame.xml deleted file mode 100644 index 7dc1249..0000000 --- a/.idea/git_toolbox_blame.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 010b430..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index b1aaf14..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.gitignore b/API/.gitignore similarity index 100% rename from .gitignore rename to API/.gitignore diff --git a/Dockerfile b/API/Dockerfile similarity index 100% rename from Dockerfile rename to API/Dockerfile diff --git a/pom.xml b/API/pom.xml similarity index 100% rename from pom.xml rename to API/pom.xml diff --git a/src/main/java/cc/fascinated/Main.java b/API/src/main/java/cc/fascinated/Main.java similarity index 100% rename from src/main/java/cc/fascinated/Main.java rename to API/src/main/java/cc/fascinated/Main.java diff --git a/src/main/java/cc/fascinated/common/MathUtils.java b/API/src/main/java/cc/fascinated/common/MathUtils.java similarity index 100% rename from src/main/java/cc/fascinated/common/MathUtils.java rename to API/src/main/java/cc/fascinated/common/MathUtils.java diff --git a/src/main/java/cc/fascinated/common/Request.java b/API/src/main/java/cc/fascinated/common/Request.java similarity index 100% rename from src/main/java/cc/fascinated/common/Request.java rename to API/src/main/java/cc/fascinated/common/Request.java diff --git a/src/main/java/cc/fascinated/common/ScoreSaberUtils.java b/API/src/main/java/cc/fascinated/common/ScoreSaberUtils.java similarity index 100% rename from src/main/java/cc/fascinated/common/ScoreSaberUtils.java rename to API/src/main/java/cc/fascinated/common/ScoreSaberUtils.java diff --git a/src/main/java/cc/fascinated/common/UUIDUtils.java b/API/src/main/java/cc/fascinated/common/UUIDUtils.java similarity index 100% rename from src/main/java/cc/fascinated/common/UUIDUtils.java rename to API/src/main/java/cc/fascinated/common/UUIDUtils.java diff --git a/src/main/java/cc/fascinated/config/Config.java b/API/src/main/java/cc/fascinated/config/Config.java similarity index 100% rename from src/main/java/cc/fascinated/config/Config.java rename to API/src/main/java/cc/fascinated/config/Config.java diff --git a/src/main/java/cc/fascinated/controller/ScoresController.java b/API/src/main/java/cc/fascinated/controller/ScoresController.java similarity index 100% rename from src/main/java/cc/fascinated/controller/ScoresController.java rename to API/src/main/java/cc/fascinated/controller/ScoresController.java diff --git a/src/main/java/cc/fascinated/controller/UserController.java b/API/src/main/java/cc/fascinated/controller/UserController.java similarity index 100% rename from src/main/java/cc/fascinated/controller/UserController.java rename to API/src/main/java/cc/fascinated/controller/UserController.java diff --git a/src/main/java/cc/fascinated/exception/ExceptionControllerAdvice.java b/API/src/main/java/cc/fascinated/exception/ExceptionControllerAdvice.java similarity index 100% rename from src/main/java/cc/fascinated/exception/ExceptionControllerAdvice.java rename to API/src/main/java/cc/fascinated/exception/ExceptionControllerAdvice.java diff --git a/src/main/java/cc/fascinated/exception/impl/BadRequestException.java b/API/src/main/java/cc/fascinated/exception/impl/BadRequestException.java similarity index 100% rename from src/main/java/cc/fascinated/exception/impl/BadRequestException.java rename to API/src/main/java/cc/fascinated/exception/impl/BadRequestException.java diff --git a/src/main/java/cc/fascinated/exception/impl/InternalServerErrorException.java b/API/src/main/java/cc/fascinated/exception/impl/InternalServerErrorException.java similarity index 100% rename from src/main/java/cc/fascinated/exception/impl/InternalServerErrorException.java rename to API/src/main/java/cc/fascinated/exception/impl/InternalServerErrorException.java diff --git a/src/main/java/cc/fascinated/exception/impl/RateLimitException.java b/API/src/main/java/cc/fascinated/exception/impl/RateLimitException.java similarity index 100% rename from src/main/java/cc/fascinated/exception/impl/RateLimitException.java rename to API/src/main/java/cc/fascinated/exception/impl/RateLimitException.java diff --git a/src/main/java/cc/fascinated/exception/impl/ResourceNotFoundException.java b/API/src/main/java/cc/fascinated/exception/impl/ResourceNotFoundException.java similarity index 100% rename from src/main/java/cc/fascinated/exception/impl/ResourceNotFoundException.java rename to API/src/main/java/cc/fascinated/exception/impl/ResourceNotFoundException.java diff --git a/API/src/main/java/cc/fascinated/model/platform/DailyScoresSet.java b/API/src/main/java/cc/fascinated/model/platform/DailyScoresSet.java new file mode 100644 index 0000000..c0eb358 --- /dev/null +++ b/API/src/main/java/cc/fascinated/model/platform/DailyScoresSet.java @@ -0,0 +1,29 @@ +package cc.fascinated.model.platform; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import java.util.Date; + +/** + * @author Fascinated (fascinated7) + */ +@Entity +@Table(name = "metrics") +public class DailyScoresSet { + /** + * The platform for the metric. + */ + @Id private String platform; + + /** + * The amount of scores set for the day. + */ + private long scoresSet; + + /** + * The day the scores were set. + */ + private Date timestamp; +} diff --git a/API/src/main/java/cc/fascinated/model/platform/TrackedPlatformMetric.java b/API/src/main/java/cc/fascinated/model/platform/TrackedPlatformMetric.java new file mode 100644 index 0000000..4ab563b --- /dev/null +++ b/API/src/main/java/cc/fascinated/model/platform/TrackedPlatformMetric.java @@ -0,0 +1,31 @@ +package cc.fascinated.model.platform; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +/** + * @author Fascinated (fascinated7) + */ +@Entity +@Getter +@Setter +@Table(name = "metric") +public class TrackedPlatformMetric { + /** + * The platform for the metric. + */ + @Id private String platform; + + /** + * The total amount of scores. + */ + private long totalScores; + + /** + * The total amount of ranked scores. + */ + private long totalRankedScores; +} diff --git a/src/main/java/cc/fascinated/model/response/ErrorResponse.java b/API/src/main/java/cc/fascinated/model/response/ErrorResponse.java similarity index 100% rename from src/main/java/cc/fascinated/model/response/ErrorResponse.java rename to API/src/main/java/cc/fascinated/model/response/ErrorResponse.java diff --git a/src/main/java/cc/fascinated/model/score/ScoresOverResponse.java b/API/src/main/java/cc/fascinated/model/score/ScoresOverResponse.java similarity index 100% rename from src/main/java/cc/fascinated/model/score/ScoresOverResponse.java rename to API/src/main/java/cc/fascinated/model/score/ScoresOverResponse.java diff --git a/src/main/java/cc/fascinated/model/score/TotalScoresResponse.java b/API/src/main/java/cc/fascinated/model/score/TotalScoresResponse.java similarity index 100% rename from src/main/java/cc/fascinated/model/score/TotalScoresResponse.java rename to API/src/main/java/cc/fascinated/model/score/TotalScoresResponse.java diff --git a/src/main/java/cc/fascinated/model/score/TrackedScore.java b/API/src/main/java/cc/fascinated/model/score/TrackedScore.java similarity index 100% rename from src/main/java/cc/fascinated/model/score/TrackedScore.java rename to API/src/main/java/cc/fascinated/model/score/TrackedScore.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberAccountToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberAccountToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberAccountToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberAccountToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardPageToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardPageToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardPageToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardPageToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberLeaderboardToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberPageMetadataToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberPageMetadataToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberPageMetadataToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberPageMetadataToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberPlayerScoreToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberPlayerScoreToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberPlayerScoreToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberPlayerScoreToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberScoreToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberScoreToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberScoreToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberScoreToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberScoresPageToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberScoresPageToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberScoresPageToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberScoresPageToken.java diff --git a/src/main/java/cc/fascinated/model/token/ScoreSaberWebsocketDataToken.java b/API/src/main/java/cc/fascinated/model/token/ScoreSaberWebsocketDataToken.java similarity index 100% rename from src/main/java/cc/fascinated/model/token/ScoreSaberWebsocketDataToken.java rename to API/src/main/java/cc/fascinated/model/token/ScoreSaberWebsocketDataToken.java diff --git a/src/main/java/cc/fascinated/model/user/User.java b/API/src/main/java/cc/fascinated/model/user/User.java similarity index 100% rename from src/main/java/cc/fascinated/model/user/User.java rename to API/src/main/java/cc/fascinated/model/user/User.java diff --git a/src/main/java/cc/fascinated/platform/CurvePoint.java b/API/src/main/java/cc/fascinated/platform/CurvePoint.java similarity index 100% rename from src/main/java/cc/fascinated/platform/CurvePoint.java rename to API/src/main/java/cc/fascinated/platform/CurvePoint.java diff --git a/src/main/java/cc/fascinated/platform/Platform.java b/API/src/main/java/cc/fascinated/platform/Platform.java similarity index 100% rename from src/main/java/cc/fascinated/platform/Platform.java rename to API/src/main/java/cc/fascinated/platform/Platform.java diff --git a/src/main/java/cc/fascinated/platform/impl/ScoreSaberPlatform.java b/API/src/main/java/cc/fascinated/platform/impl/ScoreSaberPlatform.java similarity index 100% rename from src/main/java/cc/fascinated/platform/impl/ScoreSaberPlatform.java rename to API/src/main/java/cc/fascinated/platform/impl/ScoreSaberPlatform.java diff --git a/API/src/main/java/cc/fascinated/repository/couchdb/MetricsRepository.java b/API/src/main/java/cc/fascinated/repository/couchdb/MetricsRepository.java new file mode 100644 index 0000000..62d94ee --- /dev/null +++ b/API/src/main/java/cc/fascinated/repository/couchdb/MetricsRepository.java @@ -0,0 +1,21 @@ +package cc.fascinated.repository.couchdb; + +import cc.fascinated.model.platform.TrackedPlatformMetric; +import org.springframework.data.repository.CrudRepository; + +/** + * @author Fascinated (fascinated7) + */ +public interface MetricsRepository extends CrudRepository { + + /** + * SELECT + * platform, + * last(total_scores) - first(total_scores) AS scores_set, + * timestamp + * FROM metrics + * TIMESTAMP(timestamp) + * SAMPLE BY 1d + * ORDER BY timestamp DESC; + */ +} diff --git a/src/main/java/cc/fascinated/repository/couchdb/TrackedScoreRepository.java b/API/src/main/java/cc/fascinated/repository/couchdb/TrackedScoreRepository.java similarity index 100% rename from src/main/java/cc/fascinated/repository/couchdb/TrackedScoreRepository.java rename to API/src/main/java/cc/fascinated/repository/couchdb/TrackedScoreRepository.java diff --git a/src/main/java/cc/fascinated/repository/mongo/ScoreSaberLeaderboardRepository.java b/API/src/main/java/cc/fascinated/repository/mongo/ScoreSaberLeaderboardRepository.java similarity index 100% rename from src/main/java/cc/fascinated/repository/mongo/ScoreSaberLeaderboardRepository.java rename to API/src/main/java/cc/fascinated/repository/mongo/ScoreSaberLeaderboardRepository.java diff --git a/src/main/java/cc/fascinated/repository/mongo/UserRepository.java b/API/src/main/java/cc/fascinated/repository/mongo/UserRepository.java similarity index 100% rename from src/main/java/cc/fascinated/repository/mongo/UserRepository.java rename to API/src/main/java/cc/fascinated/repository/mongo/UserRepository.java diff --git a/src/main/java/cc/fascinated/services/MongoService.java b/API/src/main/java/cc/fascinated/services/MongoService.java similarity index 100% rename from src/main/java/cc/fascinated/services/MongoService.java rename to API/src/main/java/cc/fascinated/services/MongoService.java diff --git a/API/src/main/java/cc/fascinated/services/PlatformMetricsService.java b/API/src/main/java/cc/fascinated/services/PlatformMetricsService.java new file mode 100644 index 0000000..8d1b3b1 --- /dev/null +++ b/API/src/main/java/cc/fascinated/services/PlatformMetricsService.java @@ -0,0 +1,10 @@ +package cc.fascinated.services; + +import org.springframework.stereotype.Service; + +/** + * @author Fascinated (fascinated7) + */ +@Service +public class PlatformMetricsService { +} diff --git a/src/main/java/cc/fascinated/services/PlatformService.java b/API/src/main/java/cc/fascinated/services/PlatformService.java similarity index 100% rename from src/main/java/cc/fascinated/services/PlatformService.java rename to API/src/main/java/cc/fascinated/services/PlatformService.java diff --git a/src/main/java/cc/fascinated/services/QuestDBService.java b/API/src/main/java/cc/fascinated/services/QuestDBService.java similarity index 100% rename from src/main/java/cc/fascinated/services/QuestDBService.java rename to API/src/main/java/cc/fascinated/services/QuestDBService.java diff --git a/src/main/java/cc/fascinated/services/ScoreSaberService.java b/API/src/main/java/cc/fascinated/services/ScoreSaberService.java similarity index 100% rename from src/main/java/cc/fascinated/services/ScoreSaberService.java rename to API/src/main/java/cc/fascinated/services/ScoreSaberService.java diff --git a/src/main/java/cc/fascinated/services/TrackedScoreService.java b/API/src/main/java/cc/fascinated/services/TrackedScoreService.java similarity index 100% rename from src/main/java/cc/fascinated/services/TrackedScoreService.java rename to API/src/main/java/cc/fascinated/services/TrackedScoreService.java diff --git a/src/main/java/cc/fascinated/services/UserService.java b/API/src/main/java/cc/fascinated/services/UserService.java similarity index 100% rename from src/main/java/cc/fascinated/services/UserService.java rename to API/src/main/java/cc/fascinated/services/UserService.java diff --git a/src/main/java/cc/fascinated/websocket/Websocket.java b/API/src/main/java/cc/fascinated/websocket/Websocket.java similarity index 100% rename from src/main/java/cc/fascinated/websocket/Websocket.java rename to API/src/main/java/cc/fascinated/websocket/Websocket.java diff --git a/src/main/java/cc/fascinated/websocket/impl/ScoreSaberWebsocket.java b/API/src/main/java/cc/fascinated/websocket/impl/ScoreSaberWebsocket.java similarity index 100% rename from src/main/java/cc/fascinated/websocket/impl/ScoreSaberWebsocket.java rename to API/src/main/java/cc/fascinated/websocket/impl/ScoreSaberWebsocket.java diff --git a/src/main/resources/application.yml b/API/src/main/resources/application.yml similarity index 100% rename from src/main/resources/application.yml rename to API/src/main/resources/application.yml