public static BlazorOBSTwitchClient Create(BlazorOBSUserSettings userSettings) { var blazorObsTwitchClient = new BlazorOBSTwitchClient(); var jwtHandler = new JwtSecurityTokenHandler(); JwtSecurityToken token = null; if (jwtHandler.CanReadToken(userSettings.IdToken)) { token = jwtHandler.ReadJwtToken(userSettings.IdToken); var prefUsernameClaim = token.Claims.FirstOrDefault(c => c.Type == "preferred_username"); blazorObsTwitchClient.Username = prefUsernameClaim.Value; } if (blazorObsTwitchClient.Username == null) { throw new Exception("Username is null"); } var credentials = new ConnectionCredentials(blazorObsTwitchClient.Username, userSettings.AccessToken); var clientOptions = new TwitchLib.Communication.Models.ClientOptions { MessagesAllowedInPeriod = 750, ThrottlingPeriod = TimeSpan.FromSeconds(30) }; var webSocketClient = new TwitchLib.Communication.Clients.WebSocketClient(clientOptions); var client = new TwitchClient(webSocketClient); client.Initialize(credentials, blazorObsTwitchClient.Username); client.OnLog += blazorObsTwitchClient.Client_OnLog; client.OnMessageReceived += blazorObsTwitchClient.Client_OnMessageReceived; //client.OnChatCommandReceived += blazorObsTwitchClient.Client_OnChatCommandReceived; client.OnUserJoined += blazorObsTwitchClient.Client_OnUserJoined; client.OnUserLeft += blazorObsTwitchClient.Client_OnUserLeft; client.OnExistingUsersDetected += blazorObsTwitchClient.Client_OnExistingUsersDetected; client.OnHostingStarted += blazorObsTwitchClient.Client_OnHostingStarted; client.OnHostingStopped += blazorObsTwitchClient.Client_OnHostingStopped; //client.OnBeingHosted += blazorObsTwitchClient.Client_OnBeingHosted; client.OnRaidNotification += blazorObsTwitchClient.Client_OnRaidNotification; //client.OnChannelStateChanged += blazorObsTwitchClient.Client_OnChannelStateChanged; //client.OnChatCleared += blazorObsTwitchClient.Client_OnChatCleared; client.OnIncorrectLogin += blazorObsTwitchClient.Client_OnIncorrectLogin; client.OnNoPermissionError += blazorObsTwitchClient.Client_OnNoPermissionError; client.OnError += blazorObsTwitchClient.Client_OnError; client.OnUnaccountedFor += blazorObsTwitchClient.Client_OnUnaccountedFor; client.Connect(); blazorObsTwitchClient._client = client; return(blazorObsTwitchClient); }
public static BlazorOBSTwitchPubSubClient Create(BlazorOBSUserSettings userSettings) { var client = new BlazorOBSTwitchPubSubClient(); client._userSettings = userSettings; client._pubSubClient = new TwitchPubSub(); client._pubSubClient.OnPubSubServiceConnected += client._pubSubClient_OnPubSubServiceConnected; client._pubSubClient.OnListenResponse += client._pubSubClient_OnListenResponse; client._pubSubClient.OnFollow += client._pubSubClient_OnFollow; client._pubSubClient.OnHost += client._pubSubClient_OnHost; client._pubSubClient.OnMessageDeleted += client._pubSubClient_OnMessageDeleted; client._pubSubClient.OnPubSubServiceError += client._pubSubClient_OnPubSubServiceError; client._pubSubClient.ListenToFollows("dotnetKyle"); client._pubSubClient.ListenToVideoPlayback("dotnetKyle"); client._pubSubClient.ListenToChatModeratorActions("dotnetKyle", "dotnetKyle"); client._pubSubClient.Connect(); return(client); }