예제 #1
0
 def update_channel(self,
                    channel_id,
                    status=None,
                    game=None,
                    delay=None,
                    channel_feed_enabled=None):
     json = dict_gen(status=status,
                     game=game,
                     delay=delay,
                     channel_feed_enabled=channel_feed_enabled)
     channel_json = dict_gen(channel=json)
     request = 'channels/{}'.format(channel_id)
     return self._put(request, json=channel_json)
예제 #2
0
 def add_item_to_collection(self,
                            collection_id,
                            item_id,
                            item_type='video'):
     request = 'collections/{}/items'.format(collection_id)
     json = dict_gen(id=item_id, type=item_type)
     return self._post(request, json=json)
예제 #3
0
 def __init__(self, client_id, oauth_token=None):
     self._root = TWITCH_API_V5_ROOT
     self._client_id = client_id
     self._oauth_token = oauth_token
     self._headers = dict_gen(Accept=TWITCH_API_V5_ACCEPT,
                              Authorization=self._oauth_token)
     self._headers['Client-ID'] = self._client_id
예제 #4
0
 def get_community_banned_users(
         self,
         community_id,
         limit=None,
         cursor=None):
     request = 'communities/{}/bans'.format(community_id)
     params = dict_gen(limit=limit, cursor=cursor)
     return self._get(request, params=params)
예제 #5
0
 def get_channel_subscribers(self,
                             channel_id,
                             limit=None,
                             offset=None,
                             direction=None):
     parameter_check(limit=limit, direction=direction)
     params = dict_gen(limit=limit, offset=offset, direction=direction)
     request = 'channels/{}/subscriptions'.format(channel_id)
     return self._get(request, params=params)
예제 #6
0
 def get_multiple_feed_posts(self,
                             channel_id,
                             limit=None,
                             cursor=None,
                             comments=None):
     parameter_check(limit=limit, comments=comments)
     params = dict_gen(limit=limit, cursor=cursor, comments=comments)
     request = 'feed/{}/posts'.format(channel_id)
     return self._request(GET, request, params=params)
예제 #7
0
 def time_out_community_user(
         self,
         community_id,
         user_id,
         duration,
         reason=None):
     request = 'communities/{}/timeouts/{}'.format(community_id, user_id)
     json = dict_gen(duration=duration, reason=reason)
     return self._put(request, json=json)
예제 #8
0
 def acf_request(client_id, client_secret, code, redirect_uri, state=None):
     request = 'https://api.twitch.tv/kraken/oauth2/token'
     params = dict_gen(client_id=client_id,
                       client_secret=client_secret,
                       code=code,
                       grant_type='authorization_code',
                       redirect_uri=redirect_uri,
                       state=state)
     return return_on_ok(requests.post(request, params=params))
예제 #9
0
 def get_collection_by_channel(self,
                               channel_id,
                               limit=10,
                               cursor=None,
                               containing_item=None):
     request = 'channels/{}/collections'.format(channel_id)
     params = dict_gen(limit=limit,
                       cursor=cursor,
                       containing_item=containing_item)
     return self._get(request, params=params)
예제 #10
0
 def get_user_follows(self,
                      user_id,
                      limit=None,
                      offset=None,
                      direction=None,
                      sortby=None):
     request = 'users/{}/follows/channels'.format(user_id)
     params = dict_gen(limit=limit,
                       offset=offset,
                       direction=direction,
                       sortby=sortby)
     return self._get(request, params)
예제 #11
0
    def iframe(self):
        query_params = dict_gen(
            autoplay=self.autoplay,
            muted=self.muted,
            time=self.time)
        src_url = 'http://player.twitch.tv/?channel={}'.format(self.channel)
        if query_params:
            src_url += '&' + \
                '&'.join('{}="{}"'.format(k, query_params[k]) for k in query_params)
        iframe = '<iframe {}></iframe>'
        params = dict_gen(
            frameborder=self.frameborder,
            scrolling=self.scrolling,
            allowfullscreen=self.allowfullscreen,
            height=self.height,
            width=self.width,
            src=src_url)

        return iframe.format(
            ' '.join(
                '{}="{}"'.format(
                    k, params[k]) for k in params))
예제 #12
0
 def get_followed_videos(self,
                         limit=None,
                         offset=None,
                         broadcast_type=None,
                         language=None,
                         sort=None):
     request = 'videos/followed'
     params = dict_gen(limit=limit,
                       offset=offset,
                       broadcast_type=broadcast_type,
                       language=language,
                       sort=sort)
     return self._get(request, params=params)
예제 #13
0
    def get_channel_followers(self,
                              channel_id,
                              limit=None,
                              offset=None,
                              cursor=None,
                              direction=None):

        parameter_check(limit=limit, direction=direction)
        params = dict_gen(limit=limit,
                          offset=offset,
                          cursor=cursor,
                          direction=direction)
        request = 'channels/{}/follows'.format(channel_id)
        return self._get(request, params=params)
예제 #14
0
 def update_community(
         self,
         community_id,
         summary=None,
         description=None,
         rules=None,
         email=None):
     request = 'communities/{}'.format(community_id)
     json = dict_gen(
         summary=summary,
         description=description,
         rules=rules,
         email=email)
     return self._put(request, json=json)
예제 #15
0
 def get_live_streams(self,
                      channel=None,
                      game=None,
                      language=None,
                      stream_type=None,
                      limit=None,
                      offset=None):
     request = 'streams/'
     params = dict_gen(channel=channel,
                       game=game,
                       language=language,
                       stream_type=stream_type,
                       limit=limit,
                       offset=offset)
     return self._get(request, params=params)
예제 #16
0
 def get_top_videos(self,
                    limit=None,
                    offset=None,
                    game=None,
                    period=None,
                    broadcast_type=None,
                    language=None,
                    sort=None):
     request = 'videos/top'
     params = dict_gen(limit=limit,
                       offset=offset,
                       game=game,
                       period=period,
                       broadcast_type=broadcast_type,
                       language=language,
                       sort=sort)
     return self._get(request, params=params)
예제 #17
0
 def acf_connect_link(client_id,
                      redirect_uri,
                      scope=None,
                      force_verify=None,
                      nonce=None,
                      state=None):
     request = 'https://api.twitch.tv/kraken/oauth2/authorize?'
     params = dict_gen(client_id=client_id,
                       redirect_uri=redirect_uri,
                       response_type='code',
                       scope=scope,
                       force_verify=force_verify,
                       nonce=nonce,
                       state=state)
     params_str = '&'.join('{}={}'.format(k, params[k])
                           for k in params.keys())
     return request + params_str
예제 #18
0
 def get_top_clips(self,
                   channel=None,
                   cursor=None,
                   game=None,
                   language=None,
                   limit=None,
                   period=None,
                   trending=None):
     request = 'clips/top'
     params = dict_gen(channel=channel,
                       cursor=cursor,
                       game=game,
                       language=language,
                       limit=limit,
                       period=period,
                       trending=trending)
     return self._get(request, params=params)
예제 #19
0
 def get_channel_videos(self,
                        channel_id,
                        limit=None,
                        offset=None,
                        broadcast_type=None,
                        language=None,
                        sort=None):
     parameter_check(limit=limit,
                     broadcast_type=broadcast_type,
                     language=language,
                     sort=sort)
     params = dict_gen(limit=limit,
                       offset=offset,
                       broadcast_type=broadcast_type,
                       language=language,
                       sort=sort)
     request = 'channels/{}/videos'.format(channel_id)
     return self._get(request, params=params)
예제 #20
0
 def follow_channel(self, user_id, channel_id, notifications=None):
     request = 'users/{}/follows/channels/{}'.format(user_id, channel_id)
     json = dict_gen(notifications=notifications)
     return self._put(request, json=json)
예제 #21
0
 def get_cheermotes(self, channel_id=None):
     request = 'bits/actions'
     params = dict_gen(channel_id=channel_id)
     return self._get(request, params=params)
예제 #22
0
 def get_streams_summary(self, game=None):
     request = 'streams/summary'
     params = dict_gen(game=game)
     return self._get(request, params=params)
예제 #23
0
 def get_followed_streams(self, stream_type=None, limit=None, offset=None):
     request = 'streams/followed'
     params = dict_gen(stream_type=stream_type, limit=limit, offset=offset)
     return self._get(request, params=params)
예제 #24
0
 def search_channels(self, query, live=False):
     request = 'search/games'
     params = dict_gen(query=query, live=live)
     return self._get(request, params=params)
예제 #25
0
 def search_streams(self, query, limit=None, offset=None, hls=None):
     request = 'search/streams'
     params = dict_gen(query=query, limit=limit, offset=offset, hls=hls)
     return self._get(request, params=params)
예제 #26
0
 def search_channels(self, query, limit=None, offset=None):
     request = 'search/channels'
     params = dict_gen(query=query, limit=limit, offset=offset)
     return self._get(request, params=params)
예제 #27
0
 def get_featured_streams(self, limit=None, offset=None):
     request = 'streams/feature'
     params = dict_gen(limit=limit, offset=offset)
     return self._get(request, params=params)
예제 #28
0
 def get_user_block_list(self, user_id, limit=None, offset=None):
     request = 'users/{}/blocks'.format(user_id)
     params = dict_gen(limit=limit, offset=offset)
     return self._get(request, params=params)
예제 #29
0
 def get_stream_by_user(self, channel_id, stream_type=None):
     request = 'streams/{}'.format(channel_id)
     params = dict_gen(stream_type=stream_type)
     return self._get(request, params=params)
예제 #30
0
 def create_vhs(self, identifier):
     request = 'user/vhs'
     json = dict_gen(identifier=identifier)
     return self._put(request, json=json)