Beispiel #1
0
 def test_get_user_ticket_paid(self, mock_ticket):
     responses.add(responses.POST,
                   config.TOKEN_URL,
                   body=json.dumps({'token': 'abcdef'}),
                   status=200)
     responses.add(responses.POST,
                   config.LOGIN_URL,
                   body=self.BP_AUTH_JSON,
                   status=200)
     responses.add(responses.GET,
                   config.SESSION_URL.format('artifactstring%23'),
                   body=self.SESSION_JSON,
                   status=200)
     mock_ticket.return_value = ''
     observed = stream_auth.get_user_token()
     self.assertEqual(fakes.MIS_UUID, observed)
Beispiel #2
0
    def test_get_user_ticket_mobile(self, mock_ticket, mock_setting,
                                    mock_token):
        def get_setting(param):
            if param == 'LIVE_SUBSCRIPTION':
                return 'true'
            else:
                return 3

        responses.add(responses.POST,
                      config.TOKEN_URL,
                      body=json.dumps({'token': 'abcdef'}),
                      status=200)
        mock_ticket.return_value = ''
        mock_setting.side_effect = get_setting
        mock_token.return_value = 'foobar654321'
        observed = stream_auth.get_user_token()
        self.assertEqual('foobar654321', observed)
Beispiel #3
0
 def test_get_user_ticket_cached(self, mock_ticket, mock_sub_type):
     mock_ticket.return_value = 'foobar123456'
     mock_sub_type.return_value = '0'
     observed = stream_auth.get_user_token()
     self.assertEqual('foobar123456', observed)
Beispiel #4
0
 def test_get_user_ticket_iap_fail_bad_format(self):
     with testtools.ExpectedException(stream_auth.AussieAddonsException,
                                      'mis-uuid token must*'):
         stream_auth.get_user_token()
Beispiel #5
0
 def test_get_user_ticket_iap(self):
     observed = stream_auth.get_user_token()
     self.assertEqual(fakes.MIS_UUID, observed)
Beispiel #6
0
 def test_get_user_ticket_nosub(self):
     with testtools.ExpectedException(stream_auth.AussieAddonsException,
                                      'AFL Live Pass sub*'):
         stream_auth.get_user_token()
Beispiel #7
0
def play(url):
    try:
        params = utils.get_url(url)
        v = classes.Video()
        v.parse_kodi_url(url)
        live = v.live == 'True'
        if params.get('isdummy'):
            xbmcgui.Dialog().ok(
                'Dummy item',
                'This item is not playable, it is used only to display '
                'the upcoming schedule. Please check back once the match '
                'has started. Playable matches will have "LIVE NOW" in '
                'green next to the title.')
            return
        if live:
            media_auth_token = None
            if params.get('subscription_required') == 'True':
                media_auth_token = stream_auth.get_media_auth_token(
                    stream_auth.get_user_token(), v.video_id)
            stream_url = comm.get_stream_url(v, media_auth_token)
            stream_data = {'stream_url': str(stream_url)}
        else:
            stream_url = comm.get_bc_url(v)
            stream_data = {'stream_url': str(stream_url)}

        thumb = v.get_thumbnail()
        listitem = xbmcgui.ListItem(label=v.get_title(),
                                    path=stream_data.get('stream_url'))
        listitem.setArt({'icon': thumb, 'thumb': thumb})

        if not live:
            listitem.setProperty('inputstreamaddon', 'inputstream.adaptive')
            listitem.setProperty('inputstream.adaptive.manifest_type', 'hls')
            listitem.setProperty('inputstream.adaptive.license_key',
                                 stream_data.get('stream_url'))

        else:
            drm_helper = drmhelper.helper.DRMHelper()
            addon = drm_helper.get_addon()
            if addon:
                ia_ver = addon.getAddonInfo('version')
                kodi_ver = utils.get_kodi_major_version()
                ia_capable = False
                if kodi_ver == 18:
                    if LooseVersion(ia_ver) >= LooseVersion('2.4.3'):
                        ia_capable = True
                elif kodi_ver == 19:
                    if LooseVersion(ia_ver) >= LooseVersion('2.5.4'):
                        ia_capable = True
                if ia_capable:
                    listitem.setProperty('inputstreamaddon',
                                         'inputstream.adaptive')
                    listitem.setProperty('inputstream.adaptive.manifest_type',
                                         'hls')
                    listitem.setProperty('inputstream.adaptive.license_key',
                                         stream_data.get('stream_url'))

        listitem.addStreamInfo('video', v.get_kodi_stream_info())
        listitem.setInfo('video', v.get_kodi_list_item())

        xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, listitem=listitem)

    except Exception:
        utils.handle_error('Unable to play video')