示例#1
0
 /// <summary>
 /// Start a commercial on <paramref name="channel"/>.
 /// <para>Authenticated, required scope: <code>channel_commercial</code></para>
 /// </summary>
 /// <param name="length">Length of commercial break in seconds. Default value is 30. You can only trigger a commercial once every 8 minutes.</param>
 /// <param name="channel">The channel to start a commercial on.</param>
 /// <param name="accessToken">An oauth token with the required scope.</param>
 /// <returns>The response of the request.</returns>
 public static async Task <string> RunCommercial(CommercialLength length, string channel,
                                                 string accessToken)
 {
     return(await
            MakeRestRequest($"https://api.twitch.tv/kraken/channels/{channel}/commercial", "POST",
                            $"length={length}", accessToken));
 }
示例#2
0
 /// <summary>
 /// Converts a commercial length to a number
 /// </summary>
 /// <param name="length">Commercial length</param>
 /// <returns>A number</returns>
 public static int LengthToInt(CommercialLength length)
 {
     if (length == CommercialLength.Sec30)
     {
         return(30);
     }
     else if (length == CommercialLength.Sec60)
     {
         return(60);
     }
     else if (length == CommercialLength.Sec90)
     {
         return(90);
     }
     else if (length == CommercialLength.Sec120)
     {
         return(120);
     }
     else if (length == CommercialLength.Sec150)
     {
         return(150);
     }
     else if (length == CommercialLength.Sec180)
     {
         return(180);
     }
     else
     {
         return(0);
     }
 }
示例#3
0
 public Commercial()
 {
     CommercialLength      = Aiva.Models.Enums.Commercial.Seconds90;
     ShowCommercialCommand = new Internal.RelayCommand(
         show => ShowCommercial(),
         show => CommercialLength.HasFlag(CommercialLength));
 }
示例#4
0
        public T TriggerCommerical <T>(string channel, CommercialLength length) where T : new()
        {
            var request = RequestFactory("channels/{channel}/commercial", Method.POST);

            request.AddUrlSegment("channel", channel);
            request.AddParameter("length", (int)length);
            var response = RestClient.Execute <T>(request);

            return(response.Data);
        }
示例#5
0
            public async Task RunCommercialAsync(string channel, CommercialLength length, string accessToken = null)
            {
                Api.Settings.DynamicScopeValidation(AuthScopes.Channel_Commercial, accessToken);
                int lengthInt;

                switch (length)
                {
                case CommercialLength.Seconds30:
                    lengthInt = 30;
                    break;

                case CommercialLength.Seconds60:
                    lengthInt = 60;
                    break;

                case CommercialLength.Seconds90:
                    lengthInt = 90;
                    break;

                case CommercialLength.Seconds120:
                    lengthInt = 120;
                    break;

                case CommercialLength.Seconds150:
                    lengthInt = 150;
                    break;

                case CommercialLength.Seconds180:
                    lengthInt = 180;
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(length), length, null);
                }

                var model = new Models.v3.Channels.RunCommercialRequest
                {
                    Length = lengthInt
                };

                await Api.PostModelAsync($"https://api.twitch.tv/kraken/channels/{channel}/commercial", model, accessToken, ApiVersion.v3).ConfigureAwait(false);
            }
示例#6
0
        /// <summary>
        /// Start a commercial on <paramref name="channel"/>.
        /// <para>required scope: <code>channel_commercial</code></para>
        /// </summary>
        /// <param name="length">Length of commercial break in seconds. Default value is 30. You can only trigger a commercial once every 8 minutes.</param>
        /// <param name="channel">The channel to start a commercial on.</param>
        /// <param name="accessToken">An oauth token with the required scope.</param>
        /// <returns>The response of the request.</returns>
        public async Task <string> RunCommercial(CommercialLength length, string channel, string accessToken)
        {
            int seconds;

            switch (length)
            {
            case CommercialLength.Seconds30:
            case CommercialLength.Seconds60:
            case CommercialLength.Seconds90:
            case CommercialLength.Second120:
            case CommercialLength.Seconds150:
            case CommercialLength.Seconds180:
                seconds = (int)length;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(length));
            }
            return(await
                   MakeRestRequest($"https://api.twitch.tv/kraken/channels/{channel}/commercial", "POST",
                                   $"length={seconds}", accessToken));
        }
示例#7
0
        /// <summary>
        /// Start a commercial on <paramref name="channel"/>.
        /// <para>Authenticated, required scope: <code>channel_commercial</code></para>
        /// </summary>
        /// <param name="length">Length of commercial break in seconds. Default value is 30. You can only trigger a commercial once every 8 minutes.</param>
        /// <param name="channel">The channel to start a commercial on.</param>
        /// <param name="accessToken">An oauth token with the required scope.</param>
        /// <returns>The response of the request.</returns>
        public static async Task <string> RunCommercial(CommercialLength length, string channel,
                                                        string accessToken = null)
        {
            // Default to 30 seconds?
            int seconds = 30;

            switch (length)
            {
            case CommercialLength.Seconds30:
                seconds = 30;
                break;

            case CommercialLength.Seconds60:
                seconds = 60;
                break;

            case CommercialLength.Seconds90:
                seconds = 90;
                break;

            case CommercialLength.Second120:
                seconds = 120;
                break;

            case CommercialLength.Seconds150:
                seconds = 150;
                break;

            case CommercialLength.Seconds180:
                seconds = 180;
                break;
            }
            return(await
                   MakeRestRequest($"https://api.twitch.tv/kraken/channels/{channel}/commercial", "POST",
                                   $"length={seconds}", accessToken));
        }
示例#8
0
        public Task <ChannelCommercial> StartChannelCommercialAsync(string channelId, CommercialLength duration, string authToken = null)
        {
            DynamicScopeValidation(AuthScopes.Channel_Commercial, authToken);
            if (string.IsNullOrWhiteSpace(channelId))
            {
                throw new BadParameterException("The channel id is not valid. It is not allowed to be null, empty or filled with whitespaces.");
            }

            var payload = "{\"duration\": " + (int)duration + "}";

            return(TwitchPostGenericAsync <ChannelCommercial>($"/channels/{channelId}/commercial", ApiVersion.V5, payload, accessToken: authToken));
        }
示例#9
0
 public async Task <Models.v5.Channels.ChannelCommercial> StartChannelCommercialAsync(string channelId, CommercialLength duration, string authToken = null)
 {
     Api.Settings.DynamicScopeValidation(AuthScopes.Channel_Commercial, authToken);
     if (string.IsNullOrWhiteSpace(channelId))
     {
         throw new BadParameterException("The channel id is not valid. It is not allowed to be null, empty or filled with whitespaces.");
     }
     return(await Api.PostGenericAsync <Models.v5.Channels.ChannelCommercial>($"https://api.twitch.tv/kraken/channels/{channelId}/commercial", "{\"duration\": " + (int)duration + "}", null, authToken).ConfigureAwait(false));
 }
示例#10
0
 public dynamic TriggerCommerical(string channel, CommercialLength length)
 {
     return(TriggerCommerical <ExpandoObject>(channel, length));
 }
示例#11
0
 /// <summary>
 /// Converts a commercial length to a number
 /// </summary>
 /// <param name="length">Commercial length</param>
 /// <returns>A number</returns>
 public static int LengthToInt(CommercialLength length)
 {
     if (length == CommercialLength.Sec30)
     {
         return 30;
     }
     else if (length == CommercialLength.Sec60)
     {
         return 60;
     }
     else if (length == CommercialLength.Sec90)
     {
         return 90;
     }
     else if (length == CommercialLength.Sec120)
     {
         return 120;
     }
     else if (length == CommercialLength.Sec150)
     {
         return 150;
     }
     else if (length == CommercialLength.Sec180)
     {
         return 180;
     }
     else
     {
         return 0;
     }
 }
示例#12
0
 private async void CloseCommercialFlyout(CommercialLength eventArgs)
 {
     var commercial = await AivaClient.Instance.TwitchApi.Channels.v5.StartChannelCommercialAsync(
         AivaClient.Instance.ChannelId, eventArgs).ConfigureAwait(false);
 }
 internal static void StartCommercial(TwitchClient client, CommercialLength minutes)
 {
     client.StartCommercial(client.GetJoinedChannel(client.JoinedChannels[0].Channel), minutes);
 }
示例#14
0
 /// <summary>
 /// Start a commercial on <paramref name="channel"/>.
 /// <para>Authenticated, required scope: <code>channel_commercial</code></para>
 /// </summary>
 /// <param name="length">Length of commercial break in seconds. Default value is 30. You can only trigger a commercial once every 8 minutes.</param>
 /// <param name="channel">The channel to start a commercial on.</param>
 /// <param name="accessToken">An oauth token with the required scope.</param>
 /// <returns>The response of the request.</returns>
 public static async Task<string> RunCommercial(CommercialLength length, string channel,
     string accessToken)
 {
     return await
         MakeRestRequest($"https://api.twitch.tv/kraken/channels/{channel}/commercial", "POST",
             $"length={length}", accessToken);
 }