├── .config └── dotnet-tools.json ├── .dockerignore ├── .github └── workflows │ ├── ci.yml │ └── pack.yml ├── .gitignore ├── .idea └── .idea.osu-server-beatmap-submission │ └── .idea │ ├── .gitignore │ ├── dataSources.xml │ ├── encodings.xml │ ├── indexLayout.xml │ ├── sqldialects.xml │ └── vcs.xml ├── README.md ├── UseLocalOsu.ps1 ├── UseLocalOsu.sh ├── docker-compose.yml ├── osu-server-beatmap-submission.sln ├── osu-server-beatmap-submission.sln.DotSettings ├── osu.Server.BeatmapSubmission.Tests ├── BeatmapPackagePatcherTest.cs ├── BeatmapSubmissionControllerTest.cs ├── IntegrationTest.cs ├── IntegrationTestWebApplicationFactory.cs ├── Resources │ ├── 241526 Soleily - Renatus.osz │ ├── Soleily - Renatus (test) [Platter 2].osu │ ├── TestResources.cs │ ├── metadata-too-long.osz │ ├── no-beatmap-set-id.osz │ ├── non-ascii-chars-in-ascii-metadata.osz │ └── old-osu-version.osz ├── ValidationTest.cs └── osu.Server.BeatmapSubmission.Tests.csproj └── osu.Server.BeatmapSubmission ├── Authentication ├── AuthenticationExtensions.cs ├── HeaderBasedAuthenticationHandler.cs └── OsuWebSharedJwtBearerOptions.cs ├── BeatmapSubmissionController.cs ├── Configuration └── AppSettings.cs ├── DatabaseOperationExtensions.cs ├── Dockerfile ├── FormatUtils.cs ├── InvariantExceptionFilter.cs ├── Logging └── UserFactory.cs ├── ModelStateValidationFilter.cs ├── Models ├── API │ ├── Requests │ │ └── PutBeatmapSetRequest.cs │ └── Responses │ │ ├── ErrorResponse.cs │ │ ├── ListFilesInBeatmapSetResponse.cs │ │ └── PutBeatmapSetResponse.cs ├── Database │ ├── Validation │ │ └── RomanisedAttribute.cs │ ├── beatmapset_file.cs │ ├── beatmapset_version.cs │ ├── beatmapset_version_file.cs │ ├── osu_beatmap.cs │ ├── osu_beatmapset.cs │ ├── osu_mirror.cs │ └── osu_user_banhistory.cs ├── InvariantException.cs └── PackageFile.cs ├── Program.cs ├── Properties └── launchSettings.json ├── SanityCheckHelpers.cs ├── Services ├── BeatmapPackageParser.cs ├── BeatmapPackagePatcher.cs ├── IBeatmapStorage.cs ├── IMirrorService.cs ├── ISharedInterop.cs ├── LocalBeatmapStorage.cs ├── MirrorService.cs ├── S3BeatmapStorage.cs └── SharedInterop.cs ├── UserAllowListFilter.cs ├── appsettings.Development.json ├── appsettings.json └── osu.Server.BeatmapSubmission.csproj /.config/dotnet-tools.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.config/dotnet-tools.json -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/pack.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.github/workflows/pack.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/.idea.osu-server-beatmap-submission/.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.idea/.idea.osu-server-beatmap-submission/.idea/.gitignore -------------------------------------------------------------------------------- /.idea/.idea.osu-server-beatmap-submission/.idea/dataSources.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.idea/.idea.osu-server-beatmap-submission/.idea/dataSources.xml -------------------------------------------------------------------------------- /.idea/.idea.osu-server-beatmap-submission/.idea/encodings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.idea/.idea.osu-server-beatmap-submission/.idea/encodings.xml -------------------------------------------------------------------------------- /.idea/.idea.osu-server-beatmap-submission/.idea/indexLayout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.idea/.idea.osu-server-beatmap-submission/.idea/indexLayout.xml -------------------------------------------------------------------------------- /.idea/.idea.osu-server-beatmap-submission/.idea/sqldialects.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.idea/.idea.osu-server-beatmap-submission/.idea/sqldialects.xml -------------------------------------------------------------------------------- /.idea/.idea.osu-server-beatmap-submission/.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/.idea/.idea.osu-server-beatmap-submission/.idea/vcs.xml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/README.md -------------------------------------------------------------------------------- /UseLocalOsu.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/UseLocalOsu.ps1 -------------------------------------------------------------------------------- /UseLocalOsu.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/UseLocalOsu.sh -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /osu-server-beatmap-submission.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu-server-beatmap-submission.sln -------------------------------------------------------------------------------- /osu-server-beatmap-submission.sln.DotSettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu-server-beatmap-submission.sln.DotSettings -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/BeatmapPackagePatcherTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/BeatmapPackagePatcherTest.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/BeatmapSubmissionControllerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/BeatmapSubmissionControllerTest.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/IntegrationTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/IntegrationTest.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/IntegrationTestWebApplicationFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/IntegrationTestWebApplicationFactory.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/241526 Soleily - Renatus.osz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/241526 Soleily - Renatus.osz -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/Soleily - Renatus (test) [Platter 2].osu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/Soleily - Renatus (test) [Platter 2].osu -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/TestResources.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/TestResources.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/metadata-too-long.osz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/metadata-too-long.osz -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/no-beatmap-set-id.osz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/no-beatmap-set-id.osz -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/non-ascii-chars-in-ascii-metadata.osz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/non-ascii-chars-in-ascii-metadata.osz -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/Resources/old-osu-version.osz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/Resources/old-osu-version.osz -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/ValidationTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/ValidationTest.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission.Tests/osu.Server.BeatmapSubmission.Tests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission.Tests/osu.Server.BeatmapSubmission.Tests.csproj -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Authentication/AuthenticationExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Authentication/AuthenticationExtensions.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Authentication/HeaderBasedAuthenticationHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Authentication/HeaderBasedAuthenticationHandler.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Authentication/OsuWebSharedJwtBearerOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Authentication/OsuWebSharedJwtBearerOptions.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/BeatmapSubmissionController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/BeatmapSubmissionController.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Configuration/AppSettings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Configuration/AppSettings.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/DatabaseOperationExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/DatabaseOperationExtensions.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Dockerfile -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/FormatUtils.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/FormatUtils.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/InvariantExceptionFilter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/InvariantExceptionFilter.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Logging/UserFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Logging/UserFactory.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/ModelStateValidationFilter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/ModelStateValidationFilter.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/API/Requests/PutBeatmapSetRequest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/API/Requests/PutBeatmapSetRequest.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/API/Responses/ErrorResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/API/Responses/ErrorResponse.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/API/Responses/ListFilesInBeatmapSetResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/API/Responses/ListFilesInBeatmapSetResponse.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/API/Responses/PutBeatmapSetResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/API/Responses/PutBeatmapSetResponse.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/Validation/RomanisedAttribute.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/Validation/RomanisedAttribute.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/beatmapset_file.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/beatmapset_file.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/beatmapset_version.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/beatmapset_version.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/beatmapset_version_file.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/beatmapset_version_file.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/osu_beatmap.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/osu_beatmap.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/osu_beatmapset.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/osu_beatmapset.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/osu_mirror.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/osu_mirror.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/Database/osu_user_banhistory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/Database/osu_user_banhistory.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/InvariantException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/InvariantException.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Models/PackageFile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Models/PackageFile.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Program.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Properties/launchSettings.json -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/SanityCheckHelpers.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/SanityCheckHelpers.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/BeatmapPackageParser.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/BeatmapPackageParser.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/BeatmapPackagePatcher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/BeatmapPackagePatcher.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/IBeatmapStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/IBeatmapStorage.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/IMirrorService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/IMirrorService.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/ISharedInterop.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/ISharedInterop.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/LocalBeatmapStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/LocalBeatmapStorage.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/MirrorService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/MirrorService.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/S3BeatmapStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/S3BeatmapStorage.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/Services/SharedInterop.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/Services/SharedInterop.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/UserAllowListFilter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/UserAllowListFilter.cs -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/appsettings.Development.json -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/appsettings.json -------------------------------------------------------------------------------- /osu.Server.BeatmapSubmission/osu.Server.BeatmapSubmission.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ppy/osu-server-beatmap-submission/HEAD/osu.Server.BeatmapSubmission/osu.Server.BeatmapSubmission.csproj --------------------------------------------------------------------------------