Exemplo n.º 1
0
        private async Task <TwitchUserModel> GetUser()
        {
            if (Properties.Socials.Default.TwitchUserAccess_token != "")
            {
                var user = await SendGetRequest(userLink, true);

                if (user != null)
                {
                    var userparsed = JObject.Parse(user);
                    twuser = (new TwitchUserModel
                    {
                        UserId = (string)userparsed["_id"],
                        UserName = (string)userparsed["display_name"],
                        UserImage = imghlp.GetImage((string)userparsed["logo"]),
                        // UserImage = (string)userparsed["logo"],
                        email = (string)userparsed["email"],
                        Partnered = (bool)userparsed["partnered"],
                        Type = (string)userparsed["type"]
                    });
                    return(twuser);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 2
0
        public async void EditExpViaCommunitySubGifts(TwitchUserModel user, int giftscount)
        {
            try
            {
                using (DataBaseContext context = new DataBaseContext())
                {
                    try
                    {
                        var userfromdb = context?.Users?.SingleOrDefault(x => x.userName == user.userName);
                        if (userfromdb != null)
                        {
                            if (userfromdb.giftsCount == 0)
                            {
                                userfromdb.giftsCount = user.giftsCount;
                                userfromdb.exp       += subgiftexp * userfromdb.giftsCount;

                                logService.Add($"{userfromdb.userName} +{subgiftexp * user.giftsCount}xp for {giftscount} Sub gift at all", MessageType.Type.SUBGIFT,
                                               MethodBase.GetCurrentMethod().DeclaringType);
                                await context.SaveChangesAsync();
                            }
                            else
                            {
                                userfromdb.exp        += subgiftexp * giftscount;
                                userfromdb.SubPlan     = user.SubPlan;
                                userfromdb.giftsCount += giftscount;
                                userfromdb.userlevel   = GetLevelFromExp(userfromdb.userName, userfromdb.exp, context, subgiftexp * giftscount);

                                await context.SaveChangesAsync();

                                logService.Add($"{userfromdb.userName} +{subgiftexp * giftscount}xp for {giftscount} Sub gift", MessageType.Type.SUBGIFT,
                                               MethodBase.GetCurrentMethod().DeclaringType);
                            }
                        }
                        else
                        {
                            await AddNewUser(user);

                            var newuserfromdb = context?.Users?.SingleOrDefault(x => x.userName == user.userName);
                            newuserfromdb.exp += subgiftexp * newuserfromdb.giftsCount;
                            await context.SaveChangesAsync();

                            logService.Add($"{newuserfromdb.userName} +{subgiftexp * newuserfromdb.giftsCount}xp for {newuserfromdb.giftsCount} Sub gift", MessageType.Type.SUBGIFT,
                                           MethodBase.GetCurrentMethod().DeclaringType);
                        }
                    }
                    catch (Exception e)
                    {
                        logService.Add($"{e.Message}", MessageType.Type.ERROR,
                                       MethodBase.GetCurrentMethod().DeclaringType);
                    }
                }
            }
            catch (Exception e)
            {
                logService.Add($"{e.Message}", MessageType.Type.ERROR,
                               MethodBase.GetCurrentMethod().DeclaringType);
            }
        }
Exemplo n.º 3
0
 public async Task <string> RunCommnamd(TwitchUserModel user, string message)
 {
     if (message == "!stats")
     {
         // return GetLevelFromExp(user);
         return(null);
     }
     else
     {
         return(null);
     }
 }
Exemplo n.º 4
0
        private string GetLevelFromExp(TwitchUserModel user)
        {
            using (DataBaseContext levelcontext = new DataBaseContext())
            {
                var level = levelcontext.Levels.Where(x => x.exp_total - user.exp <= 0);

                var levelnow     = level.LastOrDefault().lvl;
                var nextlevelexp = levelcontext.Levels.Where(x => x.lvl > levelnow).FirstOrDefault().exp_total;

                return($"{user.userName} lvl {levelnow}. EXP - {user.exp}/{nextlevelexp}. Next lvl xp - {nextlevelexp - user.exp}xp");
            }
        }
Exemplo n.º 5
0
        private async Task AddNewUser(TwitchUserModel user)
        {
            try
            {
                using (DataBaseContext context = new DataBaseContext())
                {
                    var users = await context?.Users?.SingleOrDefaultAsync(x => x.userId == user.userId);

                    if (users == null)
                    {
                        int expirience;
                        if (user.isSub == true && user.subMounthsCount > 0)
                        {
                            expirience = resubexp * user.subMounthsCount * Int32.Parse(user.SubPlan);
                        }
                        else
                        {
                            expirience = 0;
                        }

                        context.Add(new TwitchUserModel
                        {
                            userId             = user.userId,
                            userName           = user.userName,
                            userType           = user.userType,
                            SubPlan            = user.SubPlan,
                            isVip              = user.isVip,
                            isSub              = user.isSub,
                            isModer            = user.isModer,
                            created_at         = DateTime.Now,
                            exp                = expirience,
                            giftsCount         = user.giftsCount,
                            subMounthsCount    = user.subMounthsCount,
                            userActivity       = 0,
                            messagescount      = 0,
                            messagestostreamer = 0,
                            watchtime          = 0,
                            userlevel          = GetLevelFromExp(user.userName, expirience, context, expirience),
                        });
                        await context.SaveChangesAsync();

                        logService.Add($"New user : {user.userName}", MessageType.Type.STATS,
                                       MethodBase.GetCurrentMethod().DeclaringType);
                    }
                }
            }
            catch (Exception e)
            {
                logService.Add($"{e.Message}", MessageType.Type.ERROR,
                               MethodBase.GetCurrentMethod().DeclaringType);
            }
        }
Exemplo n.º 6
0
        public async Task EditExpViaMessage(TwitchUserModel user, string message)
        {
            try
            {
                using (DataBaseContext context = new DataBaseContext())
                {
                    try
                    {
                        var userfromdb = await context?.Users?.SingleOrDefaultAsync(x => x.userName == user.userName);

                        //Ecли пользователь есть в БД
                        if (userfromdb != null)
                        {
                            //Если в сообщение есть обращение к стримеру
                            if (message.Contains($"@{Startup.streamerName}") || message.Contains($"{Startup.streamerName}"))
                            {
                                userfromdb.messagestostreamer += 1;
                            }

                            //+1 к кол-ву сообщений
                            userfromdb.messagescount += 1;
                            //кол-во месяцев подписки
                            userfromdb.subMounthsCount = user.subMounthsCount;
                            //опыт из сообщения
                            userfromdb.exp += CalculateMessageExp(userfromdb);
                            //Лвл из кол-ва опыта
                            userfromdb.userlevel = GetLevelFromExp(userfromdb.userName, userfromdb.exp, context, CalculateMessageExp(userfromdb));

                            await context.SaveChangesAsync();
                        }
                        //Если пользователя нет
                        else
                        {
                            await AddNewUser(user);
                        }
                    }
                    catch (Exception e)
                    {
                        logService.Add($"{e.Message}", MessageType.Type.ERROR,
                                       MethodBase.GetCurrentMethod().DeclaringType);
                    }
                }
            }
            catch (Exception e)
            {
                logService.Add($"{e.Message}", MessageType.Type.ERROR,
                               MethodBase.GetCurrentMethod().DeclaringType);
            }
        }
Exemplo n.º 7
0
 private int CalculateMessageExp(TwitchUserModel user)
 {
     if (user.isSub == true && user.isVip == true)
     {
         return(messageexp * subvipexp);
     }
     else if (user.isSub == true || user.isVip == true)
     {
         return(messageexp * suborvipexp);
     }
     else
     {
         return(messageexp);
     }
 }
Exemplo n.º 8
0
        public async void Logout()
        {
            twuser = null;

            string post    = $"{logoutReqLink}{clientId}&token={Properties.Socials.Default.TwitchUserAccess_token}";
            var    request = WebRequest.Create(post);

            request.ContentType = "application/json";
            request.Method      = "POST";
            var response = await GetResponseAsync(request);

            Properties.Socials.Default.TwitchUserAccess_token  = "";
            Properties.Socials.Default.TwitchUserRefresh_token = "";
            Properties.Socials.Default.Save();
            followed.Clear();
            WebBrowserClear();
        }
Exemplo n.º 9
0
        public async void EditExpViaReSub(TwitchUserModel user)
        {
            try
            {
                using (DataBaseContext context = new DataBaseContext())
                {
                    try
                    {
                        var userfromdb = context?.Users?.SingleOrDefault(x => x.userId == user.userId) ?? null;
                        if (userfromdb != null)
                        {
                            userfromdb.exp      += (resubexp * Int32.Parse(user.SubPlan));
                            userfromdb.userlevel = GetLevelFromExp(userfromdb.userName, userfromdb.exp, context, resubexp * Int32.Parse(user.SubPlan));
                            userfromdb.SubPlan   = user.SubPlan;
                            await context.SaveChangesAsync();

                            logService.Add($"{ userfromdb.userName } +{resubexp}xp for RESUB", MessageType.Type.RESUB,
                                           MethodBase.GetCurrentMethod().DeclaringType);
                        }
                        else
                        {
                            await AddNewUser(user);

                            var newuserfromdb = context?.Users?.SingleOrDefault(x => x.userId == user.userId) ?? null;
                            newuserfromdb.exp      += (resubexp * newuserfromdb.subMounthsCount * Int32.Parse(newuserfromdb.SubPlan));
                            newuserfromdb.userlevel = GetLevelFromExp(newuserfromdb.userName, newuserfromdb.exp, context, 0);
                            await context.SaveChangesAsync();

                            logService.Add($"{newuserfromdb.userName } +{resubexp * newuserfromdb.subMounthsCount }xp for SUB({newuserfromdb.subMounthsCount})", MessageType.Type.RESUB,
                                           MethodBase.GetCurrentMethod().DeclaringType);
                        }
                    }
                    catch (Exception e)
                    {
                        logService.Add($"{e.InnerException}", MessageType.Type.ERROR,
                                       MethodBase.GetCurrentMethod().DeclaringType);
                    }
                }
            }
            catch (Exception e)
            {
                logService.Add($"{e.Message}", MessageType.Type.ERROR,
                               MethodBase.GetCurrentMethod().DeclaringType);
            }
        }
Exemplo n.º 10
0
        public async void EditExpViaNewSub(TwitchUserModel user)
        {
            using (DataBaseContext context = new DataBaseContext())
            {
                try
                {
                    var userfromdb = context?.Users?.SingleOrDefault(x => x.userId == user.userId) ?? null;
                    //Если пользователя есть в ДБ
                    if (userfromdb != null)
                    {
                        //Добавить опыт за подписку ресаб умноженное на сабплан
                        userfromdb.exp      += (resubexp * Int32.Parse(user.SubPlan));
                        userfromdb.userlevel = GetLevelFromExp(userfromdb.userName, userfromdb.exp, context, resubexp * Int32.Parse(user.SubPlan));
                        userfromdb.SubPlan   = user.SubPlan;
                        await context.SaveChangesAsync();

                        logService.Add($"{ userfromdb.userName } +{resubexp}xp for NEWSUB", MessageType.Type.NEWSUB,
                                       MethodBase.GetCurrentMethod().DeclaringType);
                    }
                    else
                    {
                        await AddNewUser(user);

                        var newuserfromdb = context?.Users?.SingleOrDefault(x => x.userId == user.userId) ?? null;
                        newuserfromdb.exp      += (resubexp * Int32.Parse(user.SubPlan));
                        newuserfromdb.userlevel = GetLevelFromExp(newuserfromdb.userName, newuserfromdb.exp, context, resubexp * Int32.Parse(user.SubPlan));
                        newuserfromdb.SubPlan   = user.SubPlan;
                        await context.SaveChangesAsync();

                        logService.Add($"{ newuserfromdb.userName } +{resubexp}xp for NEWSUB", MessageType.Type.NEWSUB,
                                       MethodBase.GetCurrentMethod().DeclaringType);
                    }
                }
                catch (Exception ex)
                {
                    logService.Add($"{ex.Message}", MessageType.Type.ERROR,
                                   MethodBase.GetCurrentMethod().DeclaringType);
                }
            }
        }