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); } }
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); } }
public async Task <string> RunCommnamd(TwitchUserModel user, string message) { if (message == "!stats") { // return GetLevelFromExp(user); return(null); } else { return(null); } }
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"); } }
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); } }
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); } }
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); } }
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(); }
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); } }
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); } } }