private void EventsPublishingContent(object sender, ContentEventArgs e) { if (!(e.Content is GameProduct product)) { return; } var tempGame = product.CreateWritableClone <GameProduct>(); var game = TwitchUtils.GameByTitle(product.Name); tempGame.TwitchGameId = game._id; tempGame.TwitchImageUrl = game.box.Large; if (product.TwitchGameId == tempGame.TwitchGameId) { return; } contentRepository.Service.Save(tempGame, SaveAction.Publish | SaveAction.ForceCurrentVersion); }
internal static Task HandleUserstateMessage(IrcClient client, IrcMessage message) { string channelName = message.Parameters[0].Substring(1); TwitchChannel channel = (TwitchChannel)client.Channels[channelName]; if (message.Tags.ContainsKey("badges") && message.Tags["badges"].Length > 0) { Dictionary <string, int> badges = TwitchUtils.ParseBadges(message.Tags["badges"]); if (badges.ContainsKey("subscriber")) { channel.IsSubscriber = true; } } if (message.Tags.ContainsKey("mod") && int.TryParse(message.Tags["mod"], out int isModerator)) { channel.IsModerator = isModerator == 1; } return(Task.CompletedTask); }
private void Init(Dictionary <string, string> tags) { if (tags.ContainsKey("badges")) { if (tags["badges"].Length > 0) { Dictionary <string, int> badges = TwitchUtils.ParseBadges(tags["badges"]); if (badges.ContainsKey("admin")) { IsAdmin = true; } if (badges.ContainsKey("bits")) { IsBitsDonator = true; } if (badges.ContainsKey("broadcaster")) { IsBroadcaster = true; } if (badges.ContainsKey("global_mod")) { IsGlobalMod = true; } if (badges.ContainsKey("moderator")) { IsMod = true; } if (badges.ContainsKey("subscriber")) { IsSubscriber = true; } if (badges.ContainsKey("staff")) { IsStaff = true; } if (badges.ContainsKey("turbo")) { IsTurbo = true; } } } else { Debug.WriteLine("Missing badges tag in twitch irc message"); } if (tags.ContainsKey("badge-info")) { if (tags["badge-info"].Length > 0) { var badgeInfo = TwitchUtils.ParseBadges(tags["badge-info"]); if (badgeInfo.ContainsKey("subscriber")) { MonthsSubscribed = Convert.ToInt32(badgeInfo["subscriber"]); } } } else { Debug.WriteLine("Missing badge-info tag in twitch irc message"); } if (tags.ContainsKey("display-name")) { DisplayName = tags["display-name"]; } else { Debug.WriteLine("Missing display-name tag in twitch irc message"); } if (tags.ContainsKey("user-id")) { if (int.TryParse(tags["user-id"], out int userID)) { ID = userID; } else { Debug.WriteLine("user-id is not an integer."); } } else { Debug.WriteLine("Missing user-id tag in twitch irc message"); } }
internal static Task HandleUsernoticeMessage(IrcClient client, IrcMessage message) { string channelName = message.Parameters[0].Substring(1); TwitchChannel channel = (TwitchChannel)client.Channels[channelName]; if (message.Tags.ContainsKey("login")) { TwitchUser user = new TwitchUser(client, message.Tags["login"], message.Tags); if (message.Tags.ContainsKey("msg-id")) { string noticeType = message.Tags["msg-id"]; if (noticeType == "sub" | noticeType == "resub") { int totalMonthsSubscribed = Convert.ToInt32(message.Tags["msg-param-cumulative-months"]); TwitchSubscriptionPlan subscriptionPlan = TwitchUtils.ConvertSubscriptionPlan(message.Tags["msg-param-sub-plan"]); int consecutiveMonthsSubscribed = 0; string subMessage = null; if (message.Parameters.Length == 2) { subMessage = message.Parameters[1]; } if (message.Tags.ContainsKey("msg-param-should-share-streak") && message.Tags["msg-param-should-share-streak"] == "1") { consecutiveMonthsSubscribed = Convert.ToInt32(message.Tags["msg-param-streak-months"]); } var e = new TwitchSubscriptionEventArgs(user, channel, subscriptionPlan, subMessage, totalMonthsSubscribed, consecutiveMonthsSubscribed); ((TwitchIrcClient)client).OnUserSubscribed(e); } else if (noticeType == "subgift" | noticeType == "anonsubgift") { int totalMonthsSubscribed = Convert.ToInt32(message.Tags["msg-param-months"]); TwitchSubscriptionPlan subscriptionPlan = TwitchUtils.ConvertSubscriptionPlan(message.Tags["msg-param-sub-plan"]); int recipientUserID = Convert.ToInt32(message.Tags["msg-param-recipient-id"]);; string recipientUserName = message.Tags["msg-param-recipient-user-name"]; string recipientDisplayName = message.Tags["msg-param-recipient-display-name"]; TwitchUser recipient = new TwitchUser(client, recipientUserName, recipientDisplayName, recipientUserID); string subMessage = null; if (message.Parameters.Length == 2) { subMessage = message.Parameters[1]; } if (noticeType == "anonsubgift") { var e = new TwitchSubscriptionEventArgs(null, channel, subscriptionPlan, subMessage, totalMonthsSubscribed, true, recipient, true); ((TwitchIrcClient)client).OnUserSubscribed(e); } else { var e = new TwitchSubscriptionEventArgs(user, channel, subscriptionPlan, subMessage, totalMonthsSubscribed, true, recipient, false); ((TwitchIrcClient)client).OnUserSubscribed(e); } } } else { throw new TwitchProtocolException("USERNOTICE message does not have a msg-id tag."); } } else { throw new TwitchProtocolException("USERNOTICE message does not have a login tag."); } return(Task.CompletedTask); }