New Plex.tv sign-in dialogs

This commit is contained in:
croneter 2018-09-16 13:25:15 +02:00
parent 3110d8c0ee
commit a82fda85ca
2 changed files with 150 additions and 7 deletions

View file

@ -224,17 +224,11 @@ def sign_in_with_pin():
return user return user
class TestWindow(xbmcgui.Window):
def onAction(self, action):
LOG.debug('onAction: %s', action)
def _sign_in_with_pin(): def _sign_in_with_pin():
""" """
Returns the user xml answer from plex.tv or None if unsuccessful Returns the user xml answer from plex.tv or None if unsuccessful
""" """
from .dialogs import signin from .windows import signin
return
back = signin.Background.create() back = signin.Background.create()
try: try:
pre = signin.PreSignInWindow.open() pre = signin.PreSignInWindow.open()

View file

@ -0,0 +1,149 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, unicode_literals
import xbmcgui
from . import kodigui
from .. import utils, variables as v
class Background(kodigui.BaseWindow):
xmlFile = 'script-plex-signin_background.xml'
path = v.ADDON_PATH
theme = 'Main'
res = '1080i'
width = 1920
height = 1080
class SignInMessage(kodigui.BaseWindow):
xmlFile = 'script-plex-signin_blank.xml'
path = v.ADDON_PATH
theme = 'Main'
res = '1080i'
width = 1920
height = 1080
SCREEN_BUTTON_ID = 100
def __init__(self, *args, **kwargs):
self.message = kwargs.get('message')
kodigui.BaseWindow.__init__(self, *args, **kwargs)
def onFirstInit(self):
self.setProperty('message', self.message)
def onClick(self, controlID):
if controlID == self.SCREEN_BUTTON_ID:
self.doClose()
class SignInPlexPass(kodigui.BaseWindow):
xmlFile = 'script-plex-plex_pass.xml'
path = v.ADDON_PATH
theme = 'Main'
res = '1080i'
width = 1920
height = 1080
RETRY_BUTTON_ID = 100
def __init__(self, *args, **kwargs):
self.retry = False
kodigui.BaseWindow.__init__(self, *args, **kwargs)
def onAction(self, action):
if action == xbmcgui.ACTION_SELECT_ITEM:
self.retry = True
self.doClose()
def onClick(self, controlID):
if controlID == self.RETRY_BUTTON_ID:
self.retry = True
self.doClose()
class PreSignInWindow(kodigui.BaseWindow):
xmlFile = 'script-plex-pre_signin.xml'
path = v.ADDON_PATH
theme = 'Main'
res = '1080i'
width = 1920
height = 1080
SIGNIN_BUTTON_ID = 100
def __init__(self, *args, **kwargs):
self.doSignin = False
kodigui.BaseWindow.__init__(self, *args, **kwargs)
def onFirstInit(self):
self.signinButton = self.getControl(self.SIGNIN_BUTTON_ID)
def onAction(self, action):
if action == xbmcgui.ACTION_SELECT_ITEM:
self.doSignin = True
self.doClose()
def onClick(self, controlID):
if controlID == self.SIGNIN_BUTTON_ID:
self.doSignin = True
self.doClose()
class PinLoginWindow(kodigui.BaseWindow):
xmlFile = 'script-plex-pin_login.xml'
path = v.ADDON_PATH
theme = 'Main'
res = '1080i'
width = 1920
height = 1080
def __init__(self, *args, **kwargs):
self.abort = False
kodigui.BaseWindow.__init__(self, *args, **kwargs)
def setPin(self, pin):
self.setProperty('pin.image.0', 'script.plex/sign_in/digits/{0}.png'.format(pin[0].upper()))
self.setProperty('pin.image.1', 'script.plex/sign_in/digits/{0}.png'.format(pin[1].upper()))
self.setProperty('pin.image.2', 'script.plex/sign_in/digits/{0}.png'.format(pin[2].upper()))
self.setProperty('pin.image.3', 'script.plex/sign_in/digits/{0}.png'.format(pin[3].upper()))
def setLinking(self):
self.setProperty('linking', '1')
self.setProperty('pin.image.0', '')
self.setProperty('pin.image.1', '')
self.setProperty('pin.image.2', '')
self.setProperty('pin.image.3', '')
def onAction(self, action):
try:
if action == xbmcgui.ACTION_NAV_BACK or action == xbmcgui.ACTION_PREVIOUS_MENU:
self.abort = True
except:
utils.ERROR()
kodigui.BaseWindow.onAction(self, action)
class ExpiredWindow(kodigui.BaseWindow):
xmlFile = 'script-plex-refresh_code.xml'
path = v.ADDON_PATH
theme = 'Main'
res = '1080i'
width = 1920
height = 1080
REFRESH_BUTTON_ID = 100
def __init__(self, *args, **kwargs):
self.refresh = False
kodigui.BaseWindow.__init__(self, *args, **kwargs)
def onFirstInit(self):
self.refreshButton = self.getControl(self.REFRESH_BUTTON_ID)
def onClick(self, controlID):
if controlID == self.REFRESH_BUTTON_ID:
self.refresh = True
self.doClose()