예제 #1
0
    def listLiveTV(self):
        tvNow = tvnow.TvNow()
        if tvNow.login():
            url = apiBase + "/module/teaserrow/epglivetv"
            r = requests.get(url)
            data = r.json()
            for item in data["items"]:
                baseJSON = item["station"][0]["now"]
                stationName = baseJSON["station"]
                stationID = baseJSON["id"]
                payTV = item["pay"]

                xbmcplugin.setPluginCategory(addon_handle, "LiveTV")
                xbmcplugin.setContent(addon_handle, 'episodes')
                if self.showlive and (payTV == False or self.showLivePay):
                    url = common.build_url({
                        'action': 'playLive',
                        'vod_url': stationID
                    })
                    li = xbmcgui.ListItem()
                    li.setProperty('IsPlayable', 'true')
                    li.setInfo('video', "")
                    li.setLabel('%s' % (stationName))
                    li.setArt({'poster': baseJSON["image"][0]["src"]})
                    xbmcplugin.addDirectoryItem(handle=addon_handle,
                                                url=url,
                                                listitem=li,
                                                isFolder=False)
        xbmcplugin.endOfDirectory(addon_handle, cacheToDisc=True)
예제 #2
0
 def do_GET(self):
     """Loads the XML manifest for the requested resource"""
     try:
         params = parse_qs(urlparse(self.path).query)
         TvNow = tvnow.TvNow()
         loggedIn = TvNow.login()
         playBackUrl, drmProtected = TvNow.getPlayBackUrl(int(params['id'][0]), loggedIn, int(params['live'][0]) == 1)
         if playBackUrl != "":
             headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"}
             r = requests.get(playBackUrl,headers=headers)
             data = r.text
             data = re.sub(r'<ContentProtection[^>]*>\s*<(cenc:)?pssh[^>]*>[^>]*</(cenc:)?pssh>\s*</ContentProtection>', '', data)
             basePath = "/".join(playBackUrl.split('/')[:-1])
             data = re.sub(r'<BaseURL>([^>]*)</BaseURL>', '<BaseURL>'+basePath+r'/\1</BaseURL>', data)
             self.send_response(200)
             self.send_header('Content-type', 'application/xml')
             self.end_headers()
             try:
                 data = data.encode()
             except:
                 pass
             self.wfile.write(data)
         else:
             self.send_response(404)
             self.send_header('Content-type', 'text/html')
             self.end_headers()
     except Exception as exc:
         self.send_response(400)
         self.send_header('Content-type', 'text/html')
         self.end_headers()
         self.wfile.write(str(exc))
예제 #3
0
 def login(self):
     keyboard = xbmc.Keyboard('', 'E-Mail-Adresse')
     keyboard.doModal()
     if keyboard.isConfirmed() and keyboard.getText():
         username = keyboard.getText()
         password = self.setLoginPW()
         if password != '':
             TvNow = tvnow.TvNow()
             if TvNow.sendLogin(username, password):
                 xbmcgui.Dialog().notification(
                     'Login erfolgreich',
                     'Angemeldet als "' + username + '".',
                     icon=xbmcgui.NOTIFICATION_INFO)
                 return True
             else:
                 return False