Skip to content

Commit 422b58c

Browse files
committed
[v5] add missing end-points to users, descriptive function naming
1 parent 4353d51 commit 422b58c

2 files changed

Lines changed: 67 additions & 45 deletions

File tree

Lines changed: 64 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,46 @@
11
# -*- encoding: utf-8 -*-
22
# https://dev.twitch.tv/docs/v5/reference/users/
33

4-
from twitch import keys
4+
from twitch import keys, methods
5+
from twitch.api.parameters import Boolean, Direction, SortBy
56
from twitch.queries import V5Query as Qry
67
from twitch.queries import query
7-
from twitch.api.parameters import Boolean, Direction, SortBy
8-
from twitch import methods
98

109

10+
# Needs Authentication
1111
@query
12-
def by_id(user_id):
13-
q = Qry('users/{id}')
14-
q.add_urlkw(keys.ID, user_id)
12+
def get_user():
13+
q = Qry('user')
1514
return q
1615

1716

18-
# Needs Authentication
1917
@query
20-
def user():
21-
q = Qry('user')
18+
def get_user_by_id(user_id):
19+
q = Qry('users/{user_id}')
20+
q.add_urlkw(keys.USER_ID, user_id)
21+
return q
22+
23+
24+
@query
25+
def get_user_emotes(user_id):
26+
q = Qry('users/{user_id}/emotes')
27+
q.add_urlkw(keys.USER_ID, user_id)
2228
return q
2329

2430

25-
# Needs Authentication
2631
@query
27-
def streams():
28-
raise NotImplementedError
32+
def check_subscription_by_channel(user_id, channel_id):
33+
q = Qry('users/{user_id}/subscriptions/{channel_id}')
34+
q.add_urlkw(keys.USER_ID, user_id)
35+
q.add_urlkw(keys.CHANNEL_ID, channel_id)
36+
return q
2937

3038

3139
@query
32-
def follows(user_id, limit=25, offset=0, direction=Direction.DESC,
33-
sort_by=SortBy.CREATED_AT):
34-
q = Qry('users/{id}/follows/channels')
35-
q.add_urlkw(keys.ID, user_id)
40+
def get_user_follows(user_id, limit=25, offset=0, direction=Direction.DESC,
41+
sort_by=SortBy.CREATED_AT):
42+
q = Qry('users/{user_id}/follows/channels')
43+
q.add_urlkw(keys.USER_ID, user_id)
3644
q.add_param(keys.LIMIT, limit, 25)
3745
q.add_param(keys.OFFSET, offset, 0)
3846
q.add_param(keys.DIRECTION, direction, Direction.DESC)
@@ -41,61 +49,74 @@ def follows(user_id, limit=25, offset=0, direction=Direction.DESC,
4149

4250

4351
@query
44-
def follow_status(user_id, target_id):
45-
q = Qry('users/{id}/follows/channels/{target}')
46-
q.add_urlkw(keys.ID, user_id)
47-
q.add_urlkw(keys.TARGET, target_id)
52+
def check_follows_by_channel(user_id, channel_id):
53+
q = Qry('users/{user_id}/follows/channels/{channel_id}')
54+
q.add_urlkw(keys.USER_ID, user_id)
55+
q.add_urlkw(keys.CHANNEL_ID, channel_id)
4856
return q
4957

5058

5159
# Needs Authentication, needs PUT
5260
@query
53-
def follow(user_id, target_id, notification=Boolean.FALSE):
54-
q = Qry('users/{id}/follows/channels/{target}', method=methods.PUT)
55-
q.add_urlkw(keys.ID, user_id)
56-
q.add_urlkw(keys.TARGET, target_id)
57-
q.add_data(keys.NOTIFICATION, Boolean.validate(notification), Boolean.FALSE)
61+
def follow_channel(user_id, channel_id, notifications=Boolean.FALSE):
62+
q = Qry('users/{user_id}/follows/channels/{channel_id}', method=methods.PUT)
63+
q.add_urlkw(keys.USER_ID, user_id)
64+
q.add_urlkw(keys.CHANNEL_ID, channel_id)
65+
q.add_data(keys.NOTIFICATIONS, Boolean.validate(notifications), Boolean.FALSE)
5866
return q
5967

6068

6169
# Needs Authentication, needs DELETE
6270
@query
63-
def unfollow(user_id, target_id):
64-
q = Qry('users/{id}/follows/channels/{target}', method=methods.DELETE)
65-
q.add_urlkw(keys.ID, user_id)
66-
q.add_urlkw(keys.TARGET, target_id)
71+
def unfollow_channel(user_id, channel_id):
72+
q = Qry('users/{user_id}/follows/channels/{channel_id}', method=methods.DELETE)
73+
q.add_urlkw(keys.USER_ID, user_id)
74+
q.add_urlkw(keys.CHANNEL_ID, channel_id)
6775
return q
6876

6977

7078
# Needs Authentication
7179
@query
72-
def blocks(user_id, limit=25, offset=0):
73-
q = Qry('users/{id}/blocks')
74-
q.add_urlkw(keys.ID, user_id)
80+
def get_user_blocks(user_id, limit=25, offset=0):
81+
q = Qry('users/{user_id}/blocks')
82+
q.add_urlkw(keys.USER_ID, user_id)
7583
q.add_param(keys.LIMIT, limit, 25)
7684
q.add_param(keys.OFFSET, offset, 0)
7785
return q
7886

7987

8088
# Needs Authentication, needs PUT
8189
@query
82-
def add_block(user_id, target_id):
83-
q = Qry('users/{id}/blocks/{target}', method=methods.PUT)
84-
q.add_urlkw(keys.ID, user_id)
85-
q.add_urlkw(keys.TARGET, target_id)
90+
def block_user(user_id, target_id):
91+
q = Qry('users/{user_id}/blocks/{target_id}', method=methods.PUT)
92+
q.add_urlkw(keys.USER_ID, user_id)
93+
q.add_urlkw(keys.TARGET_ID, target_id)
8694
return q
8795

8896

8997
# Needs Authentication, needs DELETE
9098
@query
91-
def del_block(user_id, target_id):
92-
q = Qry('users/{id}/blocks/{target}', method=methods.DELETE)
93-
q.add_urlkw(keys.ID, user_id)
94-
q.add_urlkw(keys.TARGET, target_id)
99+
def unblock_user(user_id, target_id):
100+
q = Qry('users/{user_id}/blocks/{target_id}', method=methods.DELETE)
101+
q.add_urlkw(keys.USER_ID, user_id)
102+
q.add_urlkw(keys.TARGET_ID, target_id)
103+
return q
104+
105+
106+
@query
107+
def create_connection_to_vhs(identifier):
108+
q = Qry('user/vhs', method=methods.PUT)
109+
q.add_data(keys.IDENTIFIER, identifier)
95110
return q
96111

97112

98-
# Needs Authentication
99113
@query
100-
def subscription_status(user_id, channel_id):
101-
raise NotImplementedError
114+
def check_connection_to_vhs():
115+
q = Qry('user/vhs')
116+
return q
117+
118+
119+
@query
120+
def delete_connection_to_vhs():
121+
q = Qry('user/vhs', method=methods.DELETE)
122+
return q

resources/lib/twitch/keys.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
GAME = 'game'
3737
HLS = 'hls'
3838
ID = 'id'
39+
IDENTIFIER = 'identifier'
3940
INCLUDE_ALL_ITEMS = 'include_all_items'
4041
ITEM_ID = 'item_id'
4142
LANGUAGE = 'language'
@@ -46,7 +47,7 @@
4647
NAUTH = 'nauth'
4748
NAUTHSIG = 'nauthsig'
4849
NEED_HTTPS = 'need_https'
49-
NOTIFICATION = 'notification'
50+
NOTIFICATIONS = 'notifications'
5051
OFFSET = 'offset'
5152
PERIOD = 'period'
5253
POSITION = 'position'
@@ -61,7 +62,7 @@
6162
STATUS = 'status'
6263
STREAM_TYPE = 'stream_type'
6364
SUMMARY = 'summary'
64-
TARGET = 'target'
65+
TARGET_ID = 'target_id'
6566
TEAM = 'team'
6667
TITLE = 'title'
6768
TOKEN = 'token'

0 commit comments

Comments
 (0)