@@ -29,9 +29,15 @@ def __init__(self, context, window, **kwargs):
29
29
self ._context = context
30
30
self .window = window
31
31
32
+ self .tv_client = kwargs .get ('tv_client' ) is True
32
33
self .demo = kwargs .get ('mode' ) == 'demo'
33
34
34
- self .title = bold (context .i18n ('Sign In' ))
35
+ if not self .tv_client :
36
+ client_title = context .i18n ('v3 Data API Client' )
37
+ else :
38
+ client_title = context .i18n ('YouTube-TV API Client' )
39
+
40
+ self .title = bold (' ' .join ([context .i18n ('Sign In' ), '-' , client_title ]))
35
41
36
42
super ().__init__ (self .title )
37
43
@@ -62,7 +68,10 @@ def start(self):
62
68
if self .demo :
63
69
data = SIGN_IN_CODES
64
70
else :
65
- data = self .context .api .request_codes ()
71
+ if not self .tv_client :
72
+ data = self .context .api .request_codes ()
73
+ else :
74
+ data = self .context .api .tv_request_codes ()
66
75
67
76
self .device_code = data ['device_code' ]
68
77
self .user_code = data ['user_code' ]
@@ -82,8 +91,8 @@ def start(self):
82
91
self .connect (pyxbmct .ACTION_NAV_BACK , self .close )
83
92
self .connect (ACTION_STOP , self .close )
84
93
85
- self .thread = DialogThread (self .context , self .device_code ,
86
- self .interval , self .close , self .demo )
94
+ self .thread = DialogThread (self .context , self .device_code , self . interval ,
95
+ self .close , self .demo , self .tv_client )
87
96
88
97
self .doModal ()
89
98
@@ -119,7 +128,7 @@ def set_controls(self):
119
128
120
129
self .client_id = pyxbmct .Label (
121
130
self .context .i18n ('Client ID: %s' ) %
122
- bold (str (CREDENTIALS .ID )),
131
+ bold (str (CREDENTIALS .ID )) if not self . tv_client else bold ( str ( CREDENTIALS . TV_ID )) ,
123
132
font = 'font10' ,
124
133
alignment = 2
125
134
)
@@ -130,7 +139,7 @@ def set_navigation(self):
130
139
131
140
132
141
class DialogThread (threading .Thread ):
133
- def __init__ (self , context , device_code , interval , close , demo = False ):
142
+ def __init__ (self , context , device_code , interval , close , demo = False , tv_client = False ):
134
143
super ().__init__ ()
135
144
136
145
self ._stopped = threading .Event ()
@@ -141,6 +150,7 @@ def __init__(self, context, device_code, interval, close, demo=False):
141
150
self .interval = interval
142
151
143
152
self .demo = demo
153
+ self .tv_client = tv_client
144
154
145
155
self .monitor = xbmc .Monitor ()
146
156
@@ -170,7 +180,11 @@ def run(self):
170
180
for _ in range (steps ):
171
181
# self.update_progress(int(float((100.0 // steps)) * index))
172
182
173
- signed_in = self .context .api .request_access_token (self .device_code )
183
+ if self .tv_client :
184
+ signed_in = self .context .api .tv_request_access_token (self .device_code )
185
+ else :
186
+ signed_in = self .context .api .request_access_token (self .device_code )
187
+
174
188
if signed_in :
175
189
self .signed_in = True
176
190
self .stop ()
0 commit comments