示例#1
0
        public TwitchUser BlockUser(string sourceUserId, string targetUserId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users/{sourceUserId}/blocks/{targetUserId}";
            apiRequest.Method  = "PUT";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadIfExist("user", t => new TwitchUser(t)));
        }
        public TwitchFollowedStreams GetFollowedStreams()
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"streams/followed";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchFollowedStreams(jToken));
        }
示例#3
0
        public TwitchUser GetUserByID(string userId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users/{userId}";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchUser(jToken));
        }
示例#4
0
        public TwitchClip GetClip(string slug)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"clips/{slug}";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchClip(jToken));
        }
示例#5
0
        public TwitchTeamAndChannels GetTeam(string teamName)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"teams/{teamName}";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchTeamAndChannels(jToken));
        }
示例#6
0
        public TwitchEmoticonSets GetUserEmotes(string userId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users/{userId}/emotes";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchEmoticonSets(jToken));
        }
示例#7
0
        public TwitchChannel GetChannelByID(string channelId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"channels/{channelId}";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchChannel(jToken));
        }
示例#8
0
        public TwitchTeam[] GetChannelTeams(string channelId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"channels/{channelId}/teams";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("teams", t => new TwitchTeam(t)));
        }
示例#9
0
        public TwitchChannelSubscription CheckChannelSubscriptionByUser(string channelId, string userId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"channels/{channelId}/subscriptions/{userId}";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchChannelSubscription(jToken));
        }
示例#10
0
        public TwitchFollow CheckUserFollowsByChannel(string userId, string channelId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users/{userId}/follows/channels/{channelId}";
            apiRequest.Method  = "GET";
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchFollow(jToken));
        }
        public TwitchUser[] GetUsers(IEnumerable <UserRequest> requests)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "users";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.AddRange(requests.Select(r => new QueryValue(r.Type.Name, r.Value)));
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("data", t => new TwitchUser(t)));
        }
        public TwitchStreamsSummary GetStreamsSummary(string game = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"streams/summary";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("game", game);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchStreamsSummary(jToken));
        }
        public TwitchStream GetStreamByUser(string channelId, StreamType type)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"streams/{channelId}";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("stream_type", type?.Name);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadIfExist("stream", t => new TwitchStream(t)));
        }
示例#14
0
        public TwitchStreamTag[] GetStreamTags(string broadcasterId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "streams/tags";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("broadcaster_id", broadcasterId);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("data", t => new TwitchStreamTag(t)));
        }
示例#15
0
        public TwitchEmoticonSets GetChatEmoticonsBySet(List <int> emoteSets = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"chat/emoticon_images";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("emotesets", string.Join(TwitchAPIV5.QueryArrayValueDelimiter, emoteSets ?? new List <int>()));
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchEmoticonSets(jToken));
        }
示例#16
0
        public TwitchBitAction[] GetCheermotes(string channelId)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = "bits/actions";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("channel_id", channelId);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("actions", t => new TwitchBitAction(t)));
        }
        public TwitchUser UpdateUser(string description)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "users";
            apiRequest.Method  = "PUT";
            apiRequest.QueryValues.Add("description", HttpUtility.UrlEncode(description));
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("data", t => new TwitchUser(t)).FirstOrDefault());
        }
示例#18
0
        public TwitchFollow FollowChannel(string userId, string channelId, bool?notifications = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users/{userId}/follows/channels/{channelId}";
            apiRequest.Method  = "PUT";
            apiRequest.QueryValues.Add("notifications", notifications);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchFollow(jToken));
        }
示例#19
0
        public TwitchUser[] GetUsers(IEnumerable <string> logins)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("login", string.Join(TwitchAPIV5.QueryArrayValueDelimiter, logins));
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("users", t => new TwitchUser(t)));
        }
        public TwitchTopGames GetTopGames(int?limit = null, int?offset = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = "games/top";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("limit", limit);
            apiRequest.QueryValues.Add("offset", offset);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchTopGames(jToken));
        }
示例#21
0
        public TwitchClipEdit CreateClip(string broadcasterId, bool?hasDelay = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "clips";
            apiRequest.Method  = "POST";
            apiRequest.QueryValues.Add("broadcaster_id", broadcasterId);
            apiRequest.QueryValues.Add("has_delay", hasDelay);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("data", t => new TwitchClipEdit(t)).FirstOrDefault());
        }
示例#22
0
        public TwitchGame[] SearchGames(string query, bool?live = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = "search/games";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("query", query);
            apiRequest.QueryValues.Add("live", live);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("games", t => new TwitchGame(t)));
        }
        public TwitchGame[] GetGames(string id, string name)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "games";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("id", id);
            apiRequest.QueryValues.Add("name", name);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("data", t => new TwitchGame(t)));
        }
        public TwitchWebhookSubscriptions GetWebhookSubscriptions(string after = null, int?first = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "webhooks/subscriptions";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("after", after);
            apiRequest.QueryValues.Add("first", first);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchWebhookSubscriptions(jToken));
        }
        public TwitchFeaturedStream[] GetFeaturedStreams(int?limit = null, int?offset = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"streams/featured";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("limit", limit);
            apiRequest.QueryValues.Add("offset", offset);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(jToken.ReadArray("featured", t => new TwitchFeaturedStream(t)));
        }
示例#26
0
        public TwitchUserBlockList GetUserBlockList(string userId, int?limit = null, int?offset = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"users/{userId}/blocks";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("limit", limit);
            apiRequest.QueryValues.Add("offset", offset);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchUserBlockList(jToken));
        }
        public AuthenticationResult RefreshAccessTokens(string refreshToken, string clientSecret)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.BaseUrl = "https://id.twitch.tv/oauth2/token";
            apiRequest.Method  = "POST";
            apiRequest.QueryValues.Add("grant_type", "refresh_token");
            apiRequest.QueryValues.Add("refresh_token", refreshToken);
            apiRequest.QueryValues.Add("client_id", this.Parent.ClientId);
            apiRequest.QueryValues.Add("client_secret", clientSecret);
            var jToken = this.Parent.RequestAsJson(apiRequest, "status");

            return(new AuthenticationResult(jToken));
        }
示例#28
0
        public TwitchChannelSubscriptions GetChannelSubscribers(string channelId, int?limit = null, int?offset = null, SortDirection direction = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.V5;
            apiRequest.Path    = $"channels/{channelId}/subscriptions";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("limit", limit);
            apiRequest.QueryValues.Add("offset", offset);
            apiRequest.QueryValues.Add("direction", direction?.Name);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchChannelSubscriptions(jToken));
        }
        public TwitchTopGames GetTopGames(string after = null, string before = null, int?first = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "games/top";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("after", after);
            apiRequest.QueryValues.Add("before", before);
            apiRequest.QueryValues.Add("first", first);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchTopGames(jToken));
        }
示例#30
0
        public TwitchAllStreamTags GetAllStreamTags(string after = null, int?first = null, List <string> tagIds = null)
        {
            var apiRequest = new TwitchAPIRequest();

            apiRequest.Version = APIVersion.New;
            apiRequest.Path    = "tags/streams";
            apiRequest.Method  = "GET";
            apiRequest.QueryValues.Add("after", after);
            apiRequest.QueryValues.Add("first", first);
            apiRequest.QueryValues.AddRange("tag_id", tagIds);
            var jToken = this.Parent.RequestAsJson(apiRequest);

            return(new TwitchAllStreamTags(jToken));
        }