static osuElements() { StoryboardFileRepository = Storyboard.FileReader(); SkinFileRepository = SkinFileReader.SkinReader(); BeatmapFileRepository = BeatmapFileReader.BeatmapReader(); ReplayFileRepository = Replay.FileReader(); CollectionDbRepository = CollectionDb.FileReader(); OsuDbRepository = OsuDb.FileReader(); ScoresDbRepository = ScoresDb.FileReader(); ApiReplayRepository = new ApiReplayRepository(); ApiBeatmapRepository = new ApiBeatmapRepository(); ApiReplayRepository = new ApiReplayRepository(); ApiUserRepository = new ApiUserRepository(); using (var osureg = Registry.ClassesRoot.OpenSubKey("osu\\DefaultIcon")) { if (osureg == null) { return; } var osukey = osureg.GetValue(null).ToString(); var osupath = osukey.Remove(0, 1); OsuDirectory = osupath.Remove(osupath.Length - 11); } }
//https://github.com/ppy/osu-api/wiki public async void Api() { osuElements.osuElements.ApiKey = "ENTERAPIKEYHERE"; //put this somewhere at the start of your program var bRep = new ApiBeatmapRepository(); //getting beatmaps or scores on beatmaps var firstMap = await bRep.Get(1); var someManiaMap = await bRep.Get("ds12dza68123sdq564", GameMode.Mania); var mapsByMe = await bRep.GetCreator("ExCellRaD", limit : 5); var scoresOnMap = bRep.GetScores(firstMap.BeatmapId); var maps2016 = bRep.GetSince(new DateTime(2016, 1, 1)); var uRep = new ApiUserRepository(); //getting users, topscores and recent scores of users var peppy = await uRep.Get("peppy"); var peppyscores = await uRep.GetBest(peppy.UserId, GameMode.CatchTheBeat); var recentscores = await uRep.GetRecent("Rafis"); var mRep = new ApiMultiplayerRepository(); //getting active multiplayer matches var match = await mRep.Get(123456); var games = match.Games; var rRep = new ApiReplayRepository(); //getting replay data (if available) var score = recentscores[0]; //should be rafis' top play var replay = rRep.Get(score.BeatmapId, score.UserId, score.GameMode); }
public void UpdateDonationBatch(MpDonationBatch mpDonationBatch) { var token = ApiUserRepository.GetDefaultApiUserToken(); MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .Build() .Update(mpDonationBatch); }
public MpDonationBatch CreateDonationBatch(MpDonationBatch mpDonationBatch) { var token = ApiUserRepository.GetDefaultApiUserToken(); return(MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .Build() .Create(mpDonationBatch)); }
public MpDonation Update(MpDonation donation) { var token = ApiUserRepository.GetDefaultApiUserToken(); return(MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .Build() .Update(donation)); }
public void SetupAll() { var config = new ConfigurationWrapper(); var authenticationRepository = new AuthenticationRepository(new RestClient(config.GetEnvironmentVarAsString("MP_OAUTH_BASE_URL")), new RestClient(config.GetEnvironmentVarAsString("MP_REST_API_ENDPOINT"))); var apiUserRepository = new ApiUserRepository(config, authenticationRepository); _authToken = apiUserRepository.GetToken(); }
protected virtual void Dispose(bool disposing) { if (!_isDisposed) { if (disposing) { ApiUserRepository.Dispose(); ApiDeviceRepository.Dispose(); ApiCollectionRepository.Dispose(); } } _isDisposed = true; }
public List <MpDeposit> GetDepositNamesByDepositName(string depositName) { var token = ApiUserRepository.GetDefaultApiUserToken(); var filter = $"Deposit_Name LIKE '%{depositName}%'"; var deposits = MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .WithFilter(filter) .Build() .Search <MpDeposit>(); return(deposits); }
public List <MpDeposit> GetDepositsByTransferIds(List <string> transferIds) { var token = ApiUserRepository.GetDefaultApiUserToken(); var filter = $"Processor_Transfer_ID IN (" + string.Join(',', transferIds) + ")"; var deposits = MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .WithFilter(filter) .Build() .Search <MpDeposit>(); return(deposits); }
public MpDeposit GetDepositByProcessorTransferId(string processorTransferId) { var token = ApiUserRepository.GetDefaultApiUserToken(); var columns = new string[] { "Deposit_ID" }; var filter = $"Processor_Transfer_ID = '{processorTransferId}'"; var deposits = MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .WithSelectColumns(columns) .WithFilter(filter) .Build() .Search <MpDeposit>(); return(deposits.FirstOrDefault()); }
public MpDonation GetDonationByTransactionCode(string transactionCode) { var token = ApiUserRepository.GetDefaultApiUserToken(); var filter = $"Transaction_Code = '{transactionCode}'"; var donations = MpRestBuilder.NewRequestBuilder() .WithAuthenticationToken(token) .WithFilter(filter) .Build() .Search <MpDonation>(); if (!donations.Any()) { // TODO possibly refactor to create a more custom exception throw new Exception($"Donation does not exist for transaction code: {transactionCode}"); } return(donations.First()); }
public async Task Invoke(HttpContext context, ApiUserRepository apiUserRepository, UserRepository userRepository) { if (!context.Request.Headers.ContainsKey(AUTH)) { context.Response.StatusCode = StatusCodes.Status401Unauthorized; } else { try { var authHeader = AuthenticationHeaderValue.Parse(context.Request.Headers[AUTH]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':', 2); var username = credentials[0]; var password = credentials[1]; var apiUser = await apiUserRepository.GetAsync(username, StringHelper.Hash(password)); if (apiUser != null) { var roleName = ApiAuthType.GetName(apiUser.AuthTypeId); var identity = new GenericIdentity("kc"); var principal = new GenericPrincipal(identity, new string[] { roleName }); Thread.CurrentPrincipal = principal; if (context.User != null) { context.User = principal; } if (roleName == ApiAuthType.MOBILE_APP_NAME) { if (context.Request.Headers.TryGetValue(API_TOKEN, out StringValues stringValues) && stringValues.Count == 1) { var user = await userRepository.Get(stringValues.Single()); context.Items.Add(API_MOBILE_USER, user); } else if (!context.Request.Path.Value.EndsWith("Login")) // TODO: make constant { context.Response.StatusCode = StatusCodes.Status401Unauthorized; } } } else { context.Response.StatusCode = StatusCodes.Status401Unauthorized; } } catch { context.Response.StatusCode = StatusCodes.Status401Unauthorized; } } if (context.Response.StatusCode != StatusCodes.Status401Unauthorized) { await _next(context); } }