1313from ... import keys
1414from ...api .parameters import Cursor , IntRange , ItemCount
1515from ...queries import HelixQuery as Qry
16+ from ...queries import GQLQuery as GQLQry
17+ from ...queries import HiddenApiQuery as HQry
1618from ...queries import query
1719
1820
@@ -35,3 +37,78 @@ def get_top(after='MA==', before='MA==', first=20, use_app_token=False):
3537 q .add_param (keys .FIRST , IntRange (1 , 100 ).validate (first ), 20 )
3638
3739 return q
40+
41+
42+ # required scope: none
43+ # undocumented / unsupported
44+ @query
45+ def _check_follows (username , name , headers = {}):
46+ q = HQry ('users/{username}/follows/games/isFollowing' , headers = headers , use_token = False )
47+ q .add_urlkw (keys .USERNAME , username )
48+ q .add_param (keys .NAME , name )
49+ return q
50+
51+
52+ # required scope: none
53+ # undocumented / unsupported
54+ @query
55+ def _get_followed (limit = 100 , headers = {}):
56+ data = [{
57+ "operationName" : "FollowingGames_CurrentUser" ,
58+ "variables" : {
59+ "limit" : limit ,
60+ "type" : "LIVE"
61+ },
62+ "extensions" : {
63+ "persistedQuery" : {
64+ "version" : 1 ,
65+ "sha256Hash" : "8446d4d234005813dc1f024f487ce95434c3e4202f451dd42777935b5ed035ce"
66+ }
67+ }
68+ }]
69+ q = GQLQry ('' , headers = headers , data = data , use_token = False )
70+ return q
71+
72+
73+ # required scope: user_follows_edit
74+ # undocumented / unsupported
75+ @query
76+ def _follow (game_id , headers = {}):
77+ data = [{
78+ "operationName" : "FollowGameButton_FollowGame" ,
79+ "variables" : {
80+ "input" : {
81+ "gameID" : str (game_id )
82+ }
83+ },
84+ "extensions" : {
85+ "persistedQuery" : {
86+ "version" : 1 ,
87+ "sha256Hash" : "b846b65ba4bc9a3561dbe2d069d95deed9b9e031bcfda2482d1bedd84a1c2eb3"
88+ }
89+ }
90+ }]
91+ q = GQLQry ('' , headers = headers , data = data , use_token = False )
92+ return q
93+
94+
95+ # required scope: user_follows_edit
96+ # undocumented / unsupported
97+ @query
98+ def _unfollow (game_id , headers = {}):
99+ data = [{
100+ "operationName" : "FollowGameButton_UnfollowGame" ,
101+ "variables" : {
102+ "input" : {
103+ "gameID" : str (game_id )
104+ }
105+ },
106+ "extensions" : {
107+ "persistedQuery" : {
108+ "version" : 1 ,
109+ "sha256Hash" : "811e02e396ebba0664f21ff002f2eff3c6f57e8af9aedb4f4dfa77cefd0db43d"
110+ }
111+ }
112+ }]
113+ q = GQLQry ('' , headers = headers , data = data , use_token = False )
114+ return q
0 commit comments