Example #1
0
        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);
            }
        }
Example #2
0
        //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);
        }
Example #3
0
        public void UpdateDonationBatch(MpDonationBatch mpDonationBatch)
        {
            var token = ApiUserRepository.GetDefaultApiUserToken();

            MpRestBuilder.NewRequestBuilder()
            .WithAuthenticationToken(token)
            .Build()
            .Update(mpDonationBatch);
        }
Example #4
0
        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));
        }
Example #6
0
        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();
        }
Example #7
0
 protected virtual void Dispose(bool disposing)
 {
     if (!_isDisposed)
     {
         if (disposing)
         {
             ApiUserRepository.Dispose();
             ApiDeviceRepository.Dispose();
             ApiCollectionRepository.Dispose();
         }
     }
     _isDisposed = true;
 }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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());
        }
Example #12
0
        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);
            }
        }