Beispiel #1
0
        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);
        }