Beispiel #1
0
        protected async override Task AuthorizeAsync(IChatCredential credential)
        {
            if (credential == null)
            {
                throw new ArgumentNullException(nameof(credential));
            }

            var messages = new IRCMessage[]
            {
                new IRCMessage(
                    command: "CAP",
                    middle: new[] { "REQ" },
                    trailing: "twitch.tv/tags twitch.tv/commands"),
                new IRCMessage(
                    command: "PASS",
                    middle: new[] { credential.Token.Unsecure() }),
                new IRCMessage(
                    command: "NICK",
                    middle: new[] { credential.User }),
                new IRCMessage(
                    command: "USER",
                    middle: new[]
                {
                    credential.User,
                    "8",
                    "*"
                },
                    trailing: credential.User),
            };

            foreach (var message in messages)
            {
                await SendAsync(message).ConfigureAwait(false);
            }
        }
Beispiel #2
0
        protected override Task AuthorizeAsync(IChatCredential credential)
        {
            var model = new GGMessage <ReqGGChatAuth>
            {
                Type = "auth"
            };

            if (credential == null)
            {
                model.Data.UserId = 0;
            }
            else
            {
                if (int.TryParse(credential.User, out int userId))
                {
                    model.Data.UserId = userId;
                    model.Data.Token  = credential.Token.Unsecure();
                }
                else
                {
                    throw new InvalidOperationException(
                              "Invalid conversion IChatCredential.User to int.");
                }
            }

            return(SendModelAsync(model));
        }