def viewSimil(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() sCleanTitle = oInputParameterHandler.getValue( 'sFileName') if oInputParameterHandler.exist( 'sFileName') else xbmc.getInfoLabel( 'ListItem.Property(sCleanTitle)') sCat = oInputParameterHandler.getValue( 'sCat') if oInputParameterHandler.exist( 'sCat') else xbmc.getInfoLabel('ListItem.Property(sCat)') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('searchtext', sCleanTitle) oOutputParameterHandler.addParameter('sCat', sCat) oOutputParameterHandler.addParameter('readdb', 'False') sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, 'globalSearch', 'globalSearch', sParams) # Si lancé depuis la page Home de Kodi, il faut d'abord en sortir pour lancer la recherche if xbmc.getCondVisibility('Window.IsVisible(home)'): xbmc.executebuiltin('ActivateWindow(%d)' % (10028)) xbmc.executebuiltin('Container.Update(%s)' % sTest) return False
def setWatched(self): if True: # Use matrix database oInputParameterHandler = cInputParameterHandler() sSite = oInputParameterHandler.getValue('siteUrl') sTitle = oInputParameterHandler.getValue('sTitleWatched') if not sTitle: return meta = {} meta['title'] = sTitle meta['site'] = sSite db = cDb() row = db.get_watched(meta) if row: db.del_watched(meta) db.del_resume(meta) else: db.insert_watched(meta) # To test # xbmc.executebuiltin('Container.Refresh') else: # Use kodi buildin feature xbmc.executebuiltin('Action(ToggleWatched)')
def selectPage(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() # sParams = oInputParameterHandler.getAllParameter() sId = oInputParameterHandler.getValue('sId') sFunction = oInputParameterHandler.getValue('OldFunction') siteUrl = oInputParameterHandler.getValue('siteUrl') oParser = cParser() oldNum = oParser.getNumberFromString(siteUrl) newNum = 0 if oldNum: newNum = self.showNumBoard() if newNum: try: siteUrl = siteUrl.replace(oldNum, newNum) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, sId, sFunction, sParams) xbmc.executebuiltin('Container.Update(%s)' % sTest) except: return False return False
def searchGlobal(): oGui = cGui() addons = addon() oInputParameterHandler = cInputParameterHandler() sSearchText = oInputParameterHandler.getValue('searchtext') sCat = oInputParameterHandler.getValue('sCat') oHandler = cRechercheHandler() oHandler.setText(sSearchText) oHandler.setCat(sCat) aPlugins = oHandler.getAvailablePlugins() if not aPlugins: return True total = len(aPlugins) progress_ = progress().VScreate() # kodi 17 vire la fenetre busy qui se pose au dessus de la barre de Progress try: xbmc.executebuiltin('Dialog.Close(busydialog)') except: pass oGui.addText('globalSearch', addons.VSlang(30081) % sSearchText, 'search.png') sSearchText = Quote(sSearchText) count = 0 for plugin in aPlugins: progress_.VSupdate(progress_, total, plugin['name'], True) if progress_.iscanceled(): progress_.close() break oGui.searchResults[:] = [ ] # vider le tableau de résultats pour les récupérer par source _pluginSearch(plugin, sSearchText) if len(oGui.searchResults) > 0: # Au moins un résultat count += 1 # nom du site oGui.addText( plugin['identifier'], '%s. [COLOR olive]%s[/COLOR]' % (count, plugin['name']), 'sites/%s.png' % (plugin['identifier'])) for result in oGui.searchResults: oGui.addFolder(result['guiElement'], result['params']) if not count: # aucune source ne retourne de résultats oGui.addText('globalSearch') # "Aucune information" progress_.VSclose(progress_) cGui.CONTENT = 'files' oGui.setEndOfDirectory() return True
def setEndOfDirectory(self, ForceViewMode = False): iHandler = cPluginHandler().getPluginHandle() #modif 22/06 if not self.listing: self.addText('cGui') xbmcplugin.addDirectoryItems(iHandler, self.listing, len(self.listing)) xbmcplugin.setPluginCategory(iHandler, "") xbmcplugin.setContent(iHandler, cGui.CONTENT) xbmcplugin.addSortMethod(iHandler, xbmcplugin.SORT_METHOD_NONE) xbmcplugin.endOfDirectory(iHandler, succeeded=True, cacheToDisc=True) #reglage vue #50 = liste / 51 grande liste / 500 icone / 501 gallerie / 508 fanart / if (ForceViewMode): xbmc.executebuiltin('Container.SetViewMode(' + str(ForceViewMode) + ')') else: if (self.ADDON.getSetting('active-view') == 'true'): if cGui.CONTENT == "movies": #xbmc.executebuiltin('Container.SetViewMode(52)') xbmc.executebuiltin('Container.SetViewMode(%s)' % self.ADDON.getSetting('movie-view')) elif cGui.CONTENT == "tvshows": xbmc.executebuiltin('Container.SetViewMode(%s)' % self.ADDON.getSetting('serie-view')) elif cGui.CONTENT == "files": xbmc.executebuiltin('Container.SetViewMode(%s)' % self.ADDON.getSetting('default-view')) if cGui.CONTENT == "movies": xbmc.executebuiltin('Container.SetViewMode(52)') #bug affichage Kodi 18 del self.listing [:]
def setWatched(self): if (True): #Use database oInputParameterHandler = cInputParameterHandler() aParams = oInputParameterHandler.getAllParameter() sSite = oInputParameterHandler.getValue('siteUrl') sTitle = xbmc.getInfoLabel('ListItem.label') meta = {} meta['title'] = sTitle meta['site'] = sSite row = cDb().get_watched(meta) if row: cDb().del_watched(meta) cDb().del_resume(meta) else: cDb().insert_watched(meta) xbmc.executebuiltin( 'Action(ToggleWatched)' ) else: # Use kodi buildin feature xbmc.executebuiltin( 'Action(ToggleWatched)' )
def selectpage(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() #sParams = oInputParameterHandler.getAllParameter() sId = oInputParameterHandler.getValue('sId') sFunction = oInputParameterHandler.getValue('OldFunction') siteUrl = oInputParameterHandler.getValue('siteUrl') oParser = cParser() oldNum = oParser.getNumberFromString(siteUrl) newNum = 0 if oldNum: newNum = self.showNumBoard() if newNum: try: siteUrl = siteUrl.replace(oldNum, newNum) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, sId, sFunction, sParams) xbmc.executebuiltin('XBMC.Container.Update(%s)' % sTest ) except: return False return False
def del_bookmark(self): oInputParameterHandler = cInputParameterHandler() if oInputParameterHandler.exist('sCat'): sql_delete = "DELETE FROM favorite WHERE cat = '%s'" % ( oInputParameterHandler.getValue('sCat')) if oInputParameterHandler.exist('sMovieTitle'): siteUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') siteUrl = QuotePlus(siteUrl) title = self.str_conv(sMovieTitle) title = title.replace("'", r"''") sql_delete = "DELETE FROM favorite WHERE siteurl = '%s' AND title = '%s'" % ( siteUrl, title) if oInputParameterHandler.exist('sAll'): sql_delete = 'DELETE FROM favorite;' try: self.dbcur.execute(sql_delete) self.db.commit() self.DIALOG.VSinfo(self.ADDON.VSlang(30044)) xbmc.executebuiltin('Container.Refresh') return False, False except Exception, e: VSlog('SQL ERROR EXECUTE') return False, False
def play__():#Lancer les liens oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') return else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ','%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) #tout repetter xbmc.executebuiltin("xbmc.playercontrol(RepeatAll)") oPlayer.startPlayer() return
def setWatched(self): if (True): #Use database oInputParameterHandler = cInputParameterHandler() aParams = oInputParameterHandler.getAllParameter() sSite = oInputParameterHandler.getValue('siteUrl') sTitle = xbmc.getInfoLabel('ListItem.label') meta = {} meta['title'] = sTitle meta['site'] = sSite row = cDb().get_watched(meta) if row: cDb().del_watched(meta) cDb().del_resume(meta) else: cDb().insert_watched(meta) xbmc.executebuiltin('Action(ToggleWatched)') else: # Use kodi buildin feature xbmc.executebuiltin('Action(ToggleWatched)')
def play__(): #Lancer les liens # oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') return else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ', '%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) #tout repetter xbmc.executebuiltin('xbmc.playercontrol(RepeatAll)') oPlayer.startPlayer() return
def service(): ADDON = addon() intervalle = ADDON.getSetting('heure_verification') enregistrementIsActif = ADDON.getSetting('enregistrement_activer') if enregistrementIsActif == 'false': return PathProgrammation = "special://userdata/addon_data/plugin.video.vstream/Enregistrement" path = "".join([PathProgrammation]) if not xbmcvfs.exists(path): xbmcvfs.mkdir(path) ListeEnregistrement = xbmcvfs.listdir(path) ADDON.setSetting('path_enregistrement_programmation', path) EnregistrementEnCours = False monitor = xbmc.Monitor() while not monitor.abortRequested() and not EnregistrementEnCours == True: if monitor.waitForAbort(int(intervalle)): break heure = datetime.now().strftime('%d-%H-%M') + '.py' if heure in str(ListeEnregistrement): heure = path + '/' + heure heure = xbmc.translatePath(heure) EnregistrementEnCours = True xbmc.executebuiltin("System.Exec(" + (heure) + ")")
def del_favorite(self): oInputParameterHandler = cInputParameterHandler() if (oInputParameterHandler.exist('sCat')): sql_delete = "DELETE FROM favorite WHERE cat = '%s'" % ( oInputParameterHandler.getValue('sCat')) if (oInputParameterHandler.exist('sMovieTitle')): siteUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') siteUrl = urllib.quote_plus(siteUrl) title = self.str_conv(sMovieTitle) title = title.replace("'", r"''") sql_delete = "DELETE FROM favorite WHERE siteurl = '%s' AND title = '%s'" % ( siteUrl, title) if (oInputParameterHandler.exist('sAll')): sql_delete = "DELETE FROM favorite;" try: self.dbcur.execute(sql_delete) self.db.commit() self.DIALOG.VSinfo('Favoris supprimé') xbmc.executebuiltin("Container.Refresh") return False, False except Exception, e: VSlog('SQL ERROR EXECUTE') return False, False
def del_favorite(self): oInputParameterHandler = cInputParameterHandler() if (oInputParameterHandler.exist('sCat')): sql_delete = "DELETE FROM favorite WHERE cat = '%s'" % (oInputParameterHandler.getValue('sCat')) if(oInputParameterHandler.exist('sMovieTitle')): siteUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') siteUrl = urllib.quote_plus(siteUrl) title = self.str_conv(sMovieTitle) title = title.replace("'", r"''") sql_delete = "DELETE FROM favorite WHERE siteurl = '%s' AND title = '%s'" % (siteUrl,title) if(oInputParameterHandler.exist('sAll')): sql_delete = "DELETE FROM favorite;" try: self.dbcur.execute(sql_delete) self.db.commit() self.DIALOG.VSinfo('Favoris supprimé') xbmc.executebuiltin("Container.Refresh") return False, False except Exception, e: VSlog('SQL ERROR EXECUTE') return False, False
def viewBack(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() # sParams = oInputParameterHandler.getAllParameter() sId = oInputParameterHandler.getValue('sId') sTest = '%s?site=%s' % (sPluginPath, sId) xbmc.executebuiltin('Container.Update(%s, replace)' % sTest)
def play__(): #Lancer les liens oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) playmode = '' if playmode == 0: stype = '' if '.ts' in sUrl: stype = 'TSDOWNLOADER' elif '.m3u' in sUrl: stype = 'HLS' if stype: from F4mProxy import f4mProxyHelper f4mp = f4mProxyHelper() xbmcplugin.endOfDirectory(int(sys.argv[1]), cacheToDisc=False) f4mp.playF4mLink(sUrl, sTitle, proxy=None, use_proxy_for_chunks=False, maxbitrate=0, simpleDownloader=False, auth=None, streamtype=stype, setResolved=False, swf=None, callbackpath="", callbackparam="", iconImage=sThumbnail) return if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') return else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ', '%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) #tout repetter #xbmc.executebuiltin("xbmc.playercontrol(RepeatAll)") oPlayer.startPlayer() return
def viewback(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() sParams = oInputParameterHandler.getAllParameter() sId = oInputParameterHandler.getValue('sId') sTest = '%s?site=%s' % (sPluginPath, sId) xbmc.executebuiltin('XBMC.Container.Update(%s, replace)' % sTest )
def Delfile(self): oInputParameterHandler = cInputParameterHandler() sFile = oInputParameterHandler.getValue('sFile') #os.remove(sFile) xbmcvfs.delete(sFile) runClean = self.DIALOG.VSyesno("Voulez vous mettre a jour la librairie maintenant (non conseille)", "Fichier supprime") if(not runClean): return xbmc.executebuiltin("CleanLibrary(video)")
def TextBoxes(self, heading, anounce): # activate the text viewer window xbmc.executebuiltin( "ActivateWindow(%d)" % ( 10147, ) ) # get window win = window(10147) #win.show() # give window time to initialize xbmc.sleep(100) # set heading win.getControl(1).setLabel(heading) win.getControl(5).setText(anounce) return
def Delfile(self): oInputParameterHandler = cInputParameterHandler() sFile = oInputParameterHandler.getValue('sFile') xbmcvfs.delete(sFile) runClean = self.DIALOG.VSyesno( 'Voulez vous mettre à jour la librairie maintenant (non conseillé)', 'Fichier supprimé') if not runClean: return xbmc.executebuiltin('CleanLibrary(video)')
def play__(): #Lancer les liens oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) playmode = '' if playmode == 0: stype = '' if '.ts' in sUrl: stype = 'TSDOWNLOADER' elif '.m3u' in sUrl: stype = 'HLS' if stype: from F4mProxy import f4mProxyHelper f4mp = f4mProxyHelper() xbmcplugin.endOfDirectory(int(sys.argv[1]), cacheToDisc=False) f4mp.playF4mLink(sUrl, sTitle, proxy=None, use_proxy_for_chunks=False, maxbitrate=0, simpleDownloader=False, auth=None, streamtype=stype, setResolved=False, swf=None, callbackpath="", callbackparam="", iconImage=sThumbnail) return listitem = xbmcgui.ListItem(sTitle, iconImage="DefaultVideo.png", thumbnailImage=sThumbnail) listitem.setInfo('video', {'Title': sTitle}) listitem.setProperty("IsPlayable", "true") #xbmc.Player().play(sUrl, listitem) if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') else: xbmc.Player().play(sUrl, listitem) return
def RecapchaBypassOld(sUrl):#Ouverture de Chrome Launcher s'il est intallez oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sPath = "special://home/addons/plugin.program.chrome.launcher/default.py" if xbmcvfs.exists(sPath): sUrl2 = urllib.quote_plus(sUrl) xbmc.executebuiltin('RunPlugin("plugin://plugin.program.chrome.launcher/?url=' + sUrl2 + '&mode=showSite&stopPlayback=yes")') getHoster()
def setEndOfDirectory(self, ForceViewMode = False): iHandler = cPluginHandler().getPluginHandle() #modif 22/06 if not self.listing: self.addText('cGui') xbmcplugin.addDirectoryItems(iHandler, self.listing, len(self.listing)) xbmcplugin.setPluginCategory(iHandler, "") xbmcplugin.setContent(iHandler, cGui.CONTENT) xbmcplugin.addSortMethod(iHandler, xbmcplugin.SORT_METHOD_NONE) xbmcplugin.endOfDirectory(iHandler, succeeded=True, cacheToDisc=True) #reglage vue #50 = liste / 51 grande liste / 500 icone / 501 gallerie / 508 fanart / if (ForceViewMode): xbmc.executebuiltin('Container.SetViewMode(' + str(ForceViewMode) + ')') else: if (self.ADDON.getSetting('active-view') == 'true'): if cGui.CONTENT == "movies": #xbmc.executebuiltin('Container.SetViewMode(507)') xbmc.executebuiltin('Container.SetViewMode(%s)' % self.ADDON.getSetting('movie-view')) elif cGui.CONTENT == "tvshows": xbmc.executebuiltin('Container.SetViewMode(%s)' % self.ADDON.getSetting('serie-view')) elif cGui.CONTENT == "files": xbmc.executebuiltin('Container.SetViewMode(%s)' % self.ADDON.getSetting('default-view')) #bug affichage Kodi 18 del self.listing [:]
def TextBoxes(self, anounce): # activate the text viewer window xbmc.executebuiltin("ActivateWindow(%d)" % (10147, )) # get window win = window(10147) #win.show() # give window time to initialize xbmc.sleep(100) # set heading win.getControl(1).setLabel("vStream mise à jour") win.getControl(5).setText(anounce) while xbmc.getCondVisibility("Window.IsActive(10147)"): xbmc.sleep(100) ret = dialog().VSok('Mise à jour terminée') return
def TextBoxes(self, anounce): addons = addon() # activate the text viewer window xbmc.executebuiltin('ActivateWindow(%d)' % (10147)) # get window win = window(10147) # win.show() # give window time to initialize xbmc.sleep(100) # set heading win.getControl(1).setLabel(addons.VSlang(30013)) win.getControl(5).setText(anounce) while xbmc.getCondVisibility('Window.IsActive(10147)'): xbmc.sleep(100) ret = dialog().VSok(addons.VSlang(30014)) return
def viewsimil(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() # sFileName = oInputParameterHandler.getValue('sFileName') sTitle = oInputParameterHandler.getValue('sTitle') sCat = oInputParameterHandler.getValue('sCat') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) oOutputParameterHandler.addParameter('sCat', sCat) oOutputParameterHandler.addParameter('readdb', 'False') sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, 'globalSearch', 'globalSearch', sParams) xbmc.executebuiltin('XBMC.Container.Update(%s)' % sTest) return False
def selectPage2(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() sId = oInputParameterHandler.getValue('sId') sFunction = oInputParameterHandler.getValue('OldFunction') siteUrl = oInputParameterHandler.getValue('siteUrl') selpage = self.showNumBoard() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('Selpage', selpage) sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, sId, sFunction, sParams) xbmc.executebuiltin('Container.Update(%s, replace)' % sTest)
def del_history(self): oInputParameterHandler = cInputParameterHandler() if (oInputParameterHandler.exist('searchtext')): sql_delete = "DELETE FROM history WHERE title = '%s'" % (oInputParameterHandler.getValue('searchtext')) else: sql_delete = 'DELETE FROM history;' try: self.dbcur.execute(sql_delete) self.db.commit() self.DIALOG.VSinfo('Historique supprimé') xbmc.executebuiltin('Container.Refresh') return False, False except Exception, e: VSlog('SQL ERROR DELETE') return False, False
def TextBoxes(self, anounce): # activate the text viewer window xbmc.executebuiltin( "ActivateWindow(%d)" % ( 10147, ) ) # get window win = window(10147) #win.show() # give window time to initialize xbmc.sleep(100) # set heading win.getControl(1).setLabel("vStream mise à jour") win.getControl(5).setText(anounce) while xbmc.getCondVisibility("Window.IsActive(10147)"): xbmc.sleep(100) ret = dialog().VSok('Mise à jour terminée') if ret: xbmc.executebuiltin("Container.Refresh") return
def del_history(self): oInputParameterHandler = cInputParameterHandler() if (oInputParameterHandler.exist('searchtext')): sql_delete = "DELETE FROM history WHERE title = '%s'" % (oInputParameterHandler.getValue('searchtext')) else: sql_delete = "DELETE FROM history;" try: self.dbcur.execute(sql_delete) self.db.commit() self.DIALOG.VSinfo('Historique supprime') xbmc.executebuiltin("Container.Refresh") return False, False except Exception, e: VSlog('SQL ERROR DELETE') return False, False
def play__():#Lancer les liens oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) playmode = '' if playmode == 0: stype = '' if '.ts' in sUrl: stype = 'TSDOWNLOADER' elif '.m3u' in sUrl: stype = 'HLS' if stype: from F4mProxy import f4mProxyHelper f4mp=f4mProxyHelper() xbmcplugin.endOfDirectory(int(sys.argv[1]), cacheToDisc=False) f4mp.playF4mLink(sUrl, sTitle, proxy=None, use_proxy_for_chunks=False, maxbitrate=0, simpleDownloader=False, auth=None, streamtype=stype, setResolved=False, swf=None, callbackpath="", callbackparam="", iconImage=sThumbnail) return if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') return else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ','%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) #tout repetter #xbmc.executebuiltin("xbmc.playercontrol(RepeatAll)") oPlayer.startPlayer() return
def viewsimil(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() sFileName = oInputParameterHandler.getValue('sFileName') sTitle = oInputParameterHandler.getValue('sTitle') sCat = oInputParameterHandler.getValue('sCat') oOutputParameterHandler = cOutputParameterHandler() #oOutputParameterHandler.addParameter('searchtext', sFileName) oOutputParameterHandler.addParameter('searchtext', util.cUtil().CleanName(sTitle)) oOutputParameterHandler.addParameter('sCat', sCat) oOutputParameterHandler.addParameter('readdb', 'False') sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, 'globalSearch', 'globalSearch', sParams) xbmc.executebuiltin('XBMC.Container.Update(%s)' % sTest ) return False
def play__():#Lancer les liens oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) elif not xbmc.getInfoLabel('system.buildversion')[0:2] >= '19': stype = '' if '.ts' in sUrl: stype = 'TSDOWNLOADER' elif '.m3u' in sUrl: pass if stype: from F4mProxy import f4mProxyHelper f4mp = f4mProxyHelper() xbmcplugin.endOfDirectory(int(sys.argv[1]), cacheToDisc = True) f4mp.playF4mLink(sUrl, sTitle, proxy = None, use_proxy_for_chunks = False, maxbitrate = 0, simpleDownloader = True, auth = None, streamtype = stype, setResolved = True, swf = None, callbackpath = '', callbackparam = '', iconImage = sThumbnail) return if 'dailymotion' in sUrl: showDailymotionStream(sUrl, sTitle, sThumbnail) return if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') return else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ', '%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) oPlayer.startPlayer() return
def selectpage2(self): sPluginPath = cPluginHandler().getPluginPath() oInputParameterHandler = cInputParameterHandler() sParams = oInputParameterHandler.getAllParameter() sId = oInputParameterHandler.getValue('sId') siteUrl = oInputParameterHandler.getValue('siteUrl') sFunction = oInputParameterHandler.getValue('OldFunction') selpage = self.showNumBoard() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('Selpage', selpage) sParams = oOutputParameterHandler.getParameterAsUri() sTest = '%s?site=%s&function=%s&%s' % (sPluginPath, sId, sFunction, sParams) xbmc.executebuiltin('XBMC.Container.Update(%s, replace)' % sTest )
def getBsout(self): oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) oRequestHandler.addHeaderEntry('Content-Type', 'application/json') oRequestHandler.addHeaderEntry('trakt-api-key', API_KEY) oRequestHandler.addHeaderEntry('trakt-api-version', API_VERS) oRequestHandler.addHeaderEntry('Authorization', 'Bearer %s' % self.ADDON.getSetting('bstoken')) oRequestHandler.addJSONEntry('client_id', API_KEY) oRequestHandler.addJSONEntry('client_secret', API_SECRET) oRequestHandler.addJSONEntry('token', self.ADDON.getSetting('bstoken')) sHtmlContent = oRequestHandler.request(jsonDecode=True) total = len(sHtmlContent) if (total > 0): self.ADDON.setSetting('bstoken', '') self.DIALOG.VSinfo(self.ADDON.VSlang(30320)) xbmc.executebuiltin('Container.Refresh') return
def play__(): #Lancer les liens oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') if 'firstonetv' or 'bouygtel' in sUrl: sHosterUrl = sUrl oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sTitle) oHoster.setFileName(sTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) oGui.setEndOfDirectory() else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ', '%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) #tout repetter xbmc.executebuiltin("xbmc.playercontrol(RepeatAll)") oPlayer.startPlayer() return
def setWatched(self): oInputParameterHandler = cInputParameterHandler() aParams = oInputParameterHandler.getAllParameter() # import xbmc # xbmc.log(str(aParams)) sSite = oInputParameterHandler.getValue('siteUrl') sTitle = xbmc.getInfoLabel('ListItem.label') meta = {} meta['title'] = sTitle meta['site'] = sSite row = cDb().get_watched(meta) if row: cDb().del_watched(meta) cDb().del_resume(meta) else: cDb().insert_watched(meta) xbmc.executebuiltin( 'Container.Refresh' )
def play2__():#Lancer les liens iptv oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') listitem = xbmcgui.ListItem(sTitle, iconImage="DefaultVideo.png", thumbnailImage=sThumbnail) listitem.setInfo('video', {'Title': sTitle}) listitem.setProperty("IsPlayable", "true") #xbmc.Player().play(sUrl, listitem) if 'f4mTester' in sUrl: if not xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')'): dialog().VSerror('Verifer fM4Tester') else: if not xbmc.Player().play(sUrl, listitem): dialog().VSerror('Connexion Impossible') return
def run(self, oGuiElement, sTitle, sUrl): self.totalTime = 0 self.currentTime = 0 sPluginHandle = cPluginHandler().getPluginHandle() oGui = cGui() item = oGui.createListItem(oGuiElement) item.setPath(oGuiElement.getMediaUrl()) #meta = {'label': oGuiElement.getTitle(), 'title': oGuiElement.getTitle()} #item = xbmcgui.ListItem(path=sUrl, iconImage="DefaultVideo.png", thumbnailImage=self.sThumbnail) #item.setInfo( type="Video", infoLabels= meta ) #Sous titres if (self.Subtitles_file): try: item.setSubtitles(self.Subtitles_file) VSlog("Load SubTitle :" + str(self.Subtitles_file)) self.SubtitleActive = True except: VSlog("Can't load subtitle :" + str(self.Subtitles_file)) player_conf = self.ADDON.getSetting("playerPlay") #Si lien dash, methode prioritaire if sUrl.endswith('.mpd'): if isKrypton() == True: self.enable_addon("inputstream.adaptive") item.setProperty('inputstreamaddon','inputstream.adaptive') item.setProperty('inputstream.adaptive.manifest_type', 'mpd') xbmcplugin.setResolvedUrl(sPluginHandle, True, listitem=item) VSlog('Player use inputstream addon') else: dialog().VSerror('Nécessite kodi 17 minimum') return #1 er mode de lecture elif (player_conf == '0'): self.play(sUrl,item) VSlog('Player use Play() method') #2 eme mode non utilise elif (player_conf == 'neverused'): xbmc.executebuiltin( "PlayMedia("+sUrl+")" ) VSlog('Player use PlayMedia() method') #3 eme mode (defaut) else: xbmcplugin.setResolvedUrl(sPluginHandle, True, item) VSlog('Player use setResolvedUrl() method') #Attend que le lecteur demarre, avec un max de 20s for _ in xrange(20): if self.playBackEventReceived: break xbmc.sleep(1000) #active/desactive les sous titres suivant l'option choisie dans la config if (self.SubtitleActive): if (self.ADDON.getSetting("srt-view") == 'true'): self.showSubtitles(True) self.DIALOG.VSinfo("Sous titre charges", "Sous-Titres", 5) else: self.showSubtitles(False) self.DIALOG.VSinfo("Sous titre charges, Vous pouvez les activer", "Sous-Titres", 15) while self.isPlaying() and not self.forcestop: #while not xbmc.abortRequested: try: self.currentTime = self.getTime() self.totalTime = self.getTotalTime() #xbmc.log(str(self.currentTime)) except: pass #break xbmc.sleep(1000) if not self.playBackStoppedEventReceived: self.onPlayBackStopped() #Uniquement avec la lecture avec play() if (player_conf == '0'): r = xbmcplugin.addDirectoryItem(handle=sPluginHandle,url=sUrl,listitem=item,isFolder=False) #xbmcplugin.endOfDirectory(sPluginHandle, True, False, False) return r VSlog('Closing player')
def parseUrl(self): #import sys #xbmc.log('arg :' + str(sys.argv), xbmc.LOGNOTICE) #xbmc.log('Debug 1 >>' + str(xbmc.getInfoLabel('Container().CurrentPage')) , xbmc.LOGNOTICE) #xbmc.log('Debug 2 >>' + str(xbmc.getInfoLabel('Container.FolderPath')) , xbmc.LOGNOTICE) oInputParameterHandler = cInputParameterHandler() oInputParameterHandler.getAllParameter() if (oInputParameterHandler.exist('function')): sFunction = oInputParameterHandler.getValue('function') else: VSlog('call load methode') sFunction = "load" if (sFunction=='setSetting'): if (oInputParameterHandler.exist('id')): id = oInputParameterHandler.getValue('id') else: return if (oInputParameterHandler.exist('value')): value = oInputParameterHandler.getValue('value') else: return setSetting(id, value) return if (sFunction=='DoNothing'): return if (not oInputParameterHandler.exist('site')): #mise a jour try: #from resources.lib.about import cAbout #cAbout().getUpdate() plugins = __import__('resources.lib.about', fromlist=['about']).cAbout() function = getattr(plugins, 'getUpdate') function() except: pass #charge home plugins = __import__('resources.lib.home', fromlist=['home']).cHome() function = getattr(plugins, 'load') function() return if (oInputParameterHandler.exist('site')): sSiteName = oInputParameterHandler.getValue('site') if (oInputParameterHandler.exist('title')): sTitle = oInputParameterHandler.getValue('title') else: sTitle = "none" VSlog('load site ' + sSiteName + ' and call function ' + sFunction) #cStatistic().callStartPlugin(sSiteName, sTitle) if (isHosterGui(sSiteName, sFunction) == True): return if (isGui(sSiteName, sFunction) == True): return if (isFav(sSiteName, sFunction) == True): return if (isLibrary(sSiteName, sFunction) == True): return if (isDl(sSiteName, sFunction) == True): return if (isHome(sSiteName, sFunction) == True): return if (isTrakt(sSiteName, sFunction) == True): return if sSiteName == 'globalSearch': searchGlobal() return if sSiteName == 'globalRun': __import__('resources.lib.runscript', fromlist=['runscript']) #function = getattr(plugins, sFunction) #function() return if sSiteName == 'globalSources': oGui = cGui() oPluginHandler = cPluginHandler() aPlugins = oPluginHandler.getAvailablePlugins(True) if (len(aPlugins) == 0): addons = addon() addons.openSettings() xbmc.executebuiltin("Container.Refresh") else: for aPlugin in aPlugins: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom') icon = 'sites/%s.png' % (aPlugin[1]) #icon = 'https://imgplaceholder.com/512x512/transparent/fff?text=%s&font-family=Roboto_Bold' % aPlugin[1] oGui.addDir(aPlugin[1], 'load', aPlugin[0], icon, oOutputParameterHandler) oGui.setEndOfDirectory() return if sSiteName == 'globalParametre': addons = addon() addons.openSettings() return #if (isAboutGui(sSiteName, sFunction) == True): #return #charge sites try: #exec "from resources.sites import " + sSiteName + " as plugin" #exec "plugin."+ sFunction +"()" plugins = __import__('resources.sites.%s' % sSiteName, fromlist=[sSiteName]) function = getattr(plugins, sFunction) function() except Exception as e: VSlog('could not load site: ' + sSiteName + ' error: ' + str(e)) import traceback traceback.print_exc() return
def WindowsBoxes(sTitle, sFileName, num,year = ''): ADDON = addon() DIALOG = dialog() #Presence de l'addon ExtendedInfo ? try: if (addon('script.extendedinfo') and ADDON.getSetting('extendedinfo-view') == 'true'): if num == "2": DIALOG.VSinfo('Lancement de ExtendInfo') xbmc.executebuiltin('XBMC.RunScript(script.extendedinfo, info=extendedtvinfo, name=%s)' % sFileName) return elif num == "1": DIALOG.VSinfo('Lancement de ExtendInfo') xbmc.executebuiltin('XBMC.RunScript(script.extendedinfo, info=extendedinfo, name=%s)' % sFileName) return except: pass #Sinon on gere par Vstream via la lib TMDB if num == "1": try: from resources.lib.tmdb import cTMDb grab = cTMDb() meta = grab.get_meta('movie', sFileName, '', xbmc.getInfoLabel('ListItem.Property(TmdbId)')) except: pass elif num == "2": try: from resources.lib.tmdb import cTMDb grab = cTMDb() meta = grab.get_meta('tvshow', sFileName, '', xbmc.getInfoLabel('ListItem.Property(TmdbId)')) except: pass #si rien ne marche if (not meta['imdb_id'] and not ['tmdb_id'] and not ['tvdb_id']): #dialog par defaut #xbmc.executebuiltin("Action(Info)") #fenetre d'erreur DIALOG.VSinfo(ADDON.VSlang(30204)) return #affichage du dialog perso class XMLDialog(xbmcgui.WindowXMLDialog): ADDON = addon() """ Dialog class that asks user about rating of movie. """ def __init__(self, *args, **kwargs): xbmcgui.WindowXMLDialog.__init__( self ) pass # def message(self, message): # """ # Shows xbmc dialog with OK and message. # """ # dialog = xbmcgui.Dialog() # dialog.ok(" My message title", message) # self.close() def onInit(self): #par default le resumer# color = ADDON.getSetting('deco_color') window(10000).setProperty('color', color) self.getControl(50).setVisible(False) self.getControl(5200).setVisible(False) #synopsis_first self.setFocusId(36) #self.getControl(50).reset() listitems = [] cast = [] try: for slabel, slabel2, sicon, sid in meta['cast']: listitem_ = listitem(label = slabel, label2=slabel2, iconImage=sicon) #listitem.setInfo('video', {'Title': 'test', 'RatingAndVotes':'6.8'}) listitem_.setProperty('id', str(sid)) listitems.append(listitem_) cast.append(slabel.encode('ascii', 'ignore')) self.getControl(50).addItems(listitems) window(10000).setProperty('ListItem.casting', str(cast)) except: pass #title #self.getControl(1).setLabel(meta['title']) meta['title'] = sTitle #self.getControl(49).setVisible(True) #self.getControl(2).setImage(meta['cover_url']) #self.getControl(3).setLabel(meta['rating']) for e in meta: property = 'ListItem.%s' %(e) if isinstance(meta[e], unicode): window(10000).setProperty(property, meta[e].encode('utf-8')) else: window(10000).setProperty(property, str(meta[e])) def credit(self, meta=""): self.getControl(5200).reset() listitems = [] try: for i in meta: try: sTitle = unicodedata.normalize('NFKD', i['title']).encode('ascii', 'ignore') except: sTitle = "Aucune information" try: sThumbnail = 'https://image.tmdb.org/t/p/w342' + i['poster_path'] except: sThumbnail = '' sId = i['id'] listitem_ = listitem(label = sTitle, iconImage=sThumbnail) try: listitem_.setInfo('video', {'rating': i['vote_average'].encode('utf-8') }) except: listitem_.setInfo('video', {'rating': str(i['vote_average'])}) #listitem.setProperty('id', str(sId)) listitems.append(listitem_) self.getControl(5200).addItems(listitems) except: pass self.getControl(5200).setVisible(True) self.setFocusId(5200) #self.setFocus(self.getControl(5200)) def person(self, sid=""): from resources.lib.tmdb import cTMDb grab = cTMDb(lang='en') sUrl = 'person/' + str(sid) meta = grab.getUrl(sUrl) listitems = [] try: try: sTitle = unicodedata.normalize('NFKD', meta['name']).encode('ascii', 'ignore') except: sTitle = "Aucune information" #xbmcgui.Window(10000).setProperty('person_name', sTitle) try: sThumbnail = 'https://image.tmdb.org/t/p/w396' + meta['profile_path'] except: sThumbnail = '' sId = meta['id'] bio = meta['biography'].replace('\n\n', '[CR]').replace('\n', '[CR]') #self.getControl(5300).setLabel('[COLOR gold]test[/COLOR]') #window(10000).setProperty('biography', bio) window(10000).setProperty('birthday', meta['birthday']) window(10000).setProperty('place_of_birth', meta['place_of_birth']) window(10000).setProperty('deathday', meta['deathday']) #self.getControl(20).setVisible(True) except: pass #description #self.getControl(400).setText(meta['plot']) def onClick(self, controlId): print controlId if controlId == 5: self.getControl(400).setVisible(False) self.getControl(50).setVisible(True) self.setFocusId(20) return elif controlId == 20: self.getControl(50).setVisible(False) self.getControl(400).setVisible(True) self.setFocusId(5) return elif controlId == 7: self.getControl(50).setVisible(True) self.setFocusId(50) return elif controlId == 11: from resources.lib.ba import cShowBA cBA = cShowBA() cBA.SetSearch(sFileName) cBA.SearchBA() self.close() return elif controlId == 30: self.close() return elif controlId == 50: #print self.getControl(50).ListItem.Property('id') item = self.getControl(50).getSelectedItem() sid = item.getProperty('id') from resources.lib.tmdb import cTMDb grab = cTMDb() sUrl = 'person/' + str(sid) + '/movie_credits' try: meta = grab.getUrl(sUrl) meta = meta['cast'] self.credit(meta) except: return #self.getControl(50).setVisible(True) #click sur similaire elif controlId == 9: #print self.getControl(9000).ListItem.tmdb_id sid = window(10000).getProperty("ListItem.tmdb_id") from resources.lib.tmdb import cTMDb grab = cTMDb() sUrl = 'movie/%s/similar' % str(sid) try: meta = grab.getUrl(sUrl) meta = meta['results'] if meta: self.credit(meta) else: self.getControl(9).setLabel("Aucune Information") except: return #click sur recommendations elif controlId == 13: #print self.getControl(9000).ListItem.tmdb_id sid = window(10000).getProperty("ListItem.tmdb_id") from resources.lib.tmdb import cTMDb grab = cTMDb() sUrl = 'movie/%s/recommendations' % str(sid) try: meta = grab.getUrl(sUrl) meta = meta['results'] if meta: self.credit(meta) else: self.getControl(13).setLabel("Aucune Information") except: return elif controlId == 5200: #click sur un film acteur import sys from resources.lib.util import cUtil item = self.getControl(5200).getSelectedItem() sTitle = item.getLabel() try: sTitle = sTitle.encode("utf-8") sTitle = cUtil().CleanName(sTitle) except: return sTest = '%s?site=globalSearch&searchtext=%s&sCat=1' % (sys.argv[0], sTitle) xbmc.executebuiltin('XBMC.Container.Update(%s)' % sTest ) self.close() return #dans le futur permet de retourne le texte du film # elif controlId == 5200: # item = self.getControl(5200).getSelectedItem() # sid = item.getLabel() # print sid # return def onFocus(self, controlId): self.controlId = controlId if controlId != 5200: #self.getControl(5500).reset() self.getControl(5200).setVisible(False) if controlId != 50: self.getControl(50).setVisible(False) #if controlId == 50: #item = self.getControl(50).getSelectedItem() #sid = item.getProperty('id') #self.person(sid) def _close_dialog( self ): self.close() def onAction( self, action ): if action.getId() in ( 104, 105, 1, 2): # if self.controlId == 50: # item = self.getControl(50).getSelectedItem() # sid = item.getProperty('id') # self.person(sid) return if action.getId() in ( 9, 10, 11, 30, 92, 216, 247, 257, 275, 61467, 61448, ): self.close() #path = xbmc.translatePath("special://home/addons/plugin.video.vstream").decode("utf-8") path = "special://home/addons/plugin.video.vstream" #self.__oPath.decode("utf-8") wd = XMLDialog('DialogInfo2.xml', path , 'default', '720p') wd.doModal() del wd
def onClick(self, controlId): print controlId if controlId == 5: self.getControl(400).setVisible(False) self.getControl(50).setVisible(True) self.setFocusId(20) return elif controlId == 20: self.getControl(50).setVisible(False) self.getControl(400).setVisible(True) self.setFocusId(5) return elif controlId == 7: self.getControl(50).setVisible(True) self.setFocusId(50) return elif controlId == 11: from resources.lib.ba import cShowBA cBA = cShowBA() cBA.SetSearch(sFileName) cBA.SearchBA() self.close() return elif controlId == 30: self.close() return elif controlId == 50: #print self.getControl(50).ListItem.Property('id') item = self.getControl(50).getSelectedItem() sid = item.getProperty('id') from resources.lib.tmdb import cTMDb grab = cTMDb() sUrl = 'person/' + str(sid) + '/movie_credits' try: meta = grab.getUrl(sUrl) meta = meta['cast'] self.credit(meta) except: return #self.getControl(50).setVisible(True) #click sur similaire elif controlId == 9: #print self.getControl(9000).ListItem.tmdb_id sid = window(10000).getProperty("ListItem.tmdb_id") from resources.lib.tmdb import cTMDb grab = cTMDb() sUrl = 'movie/%s/similar' % str(sid) try: meta = grab.getUrl(sUrl) meta = meta['results'] if meta: self.credit(meta) else: self.getControl(9).setLabel("Aucune Information") except: return #click sur recommendations elif controlId == 13: #print self.getControl(9000).ListItem.tmdb_id sid = window(10000).getProperty("ListItem.tmdb_id") from resources.lib.tmdb import cTMDb grab = cTMDb() sUrl = 'movie/%s/recommendations' % str(sid) try: meta = grab.getUrl(sUrl) meta = meta['results'] if meta: self.credit(meta) else: self.getControl(13).setLabel("Aucune Information") except: return elif controlId == 5200: #click sur un film acteur import sys from resources.lib.util import cUtil item = self.getControl(5200).getSelectedItem() sTitle = item.getLabel() try: sTitle = sTitle.encode("utf-8") sTitle = cUtil().CleanName(sTitle) except: return sTest = '%s?site=globalSearch&searchtext=%s&sCat=1' % (sys.argv[0], sTitle) xbmc.executebuiltin('XBMC.Container.Update(%s)' % sTest ) self.close() return
def updateDirectory(self): # refresh the content xbmc.executebuiltin('Container.Refresh')
def ShowContent(self): oInputParameterHandler = cInputParameterHandler() sFolder = oInputParameterHandler.getValue('folder') xbmc.executebuiltin("Container.Update(" + sFolder + ")")
def openwindows(): xbmc.executebuiltin( "ActivateWindow(%d, return)" % ( 10601, ) ) return
def play__():#Lancer les liens oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl').replace('P_L_U_S', '+') sTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') #Special url with tag if '[' in sUrl and ']' in sUrl: sUrl = GetRealUrl(sUrl) if 'dailymotion' in sUrl: oGui = cGui() oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() metadata = json.loads(sHtmlContent) if metadata['qualities']: sUrl = str(metadata['qualities']['auto'][0]['url']) oRequestHandler = cRequestHandler(sUrl) oRequestHandler.addHeaderEntry('User-Agent', 'Android') mb = oRequestHandler.request() mb = re.findall('NAME="([^"]+)"\n(.+)',mb) mb = sorted(mb,reverse=True) for quality, url1 in mb: sHosterUrl = url1 oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sTitle + ' ' +quality) oHoster.setFileName(sTitle + ' ' +quality) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) oGui.setEndOfDirectory() return playmode = '' if playmode == 0: stype = '' if '.ts' in sUrl: stype = 'TSDOWNLOADER' elif '.m3u' in sUrl: stype = 'HLS' if stype: from F4mProxy import f4mProxyHelper f4mp=f4mProxyHelper() xbmcplugin.endOfDirectory(int(sys.argv[1]), cacheToDisc=False) f4mp.playF4mLink(sUrl, sTitle, proxy=None, use_proxy_for_chunks=False, maxbitrate=0, simpleDownloader=False, auth=None, streamtype=stype, setResolved=False, swf=None, callbackpath="", callbackparam="", iconImage=sThumbnail) return if 'f4mTester' in sUrl: xbmc.executebuiltin('XBMC.RunPlugin(' + sUrl + ')') return else: oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setTitle(sTitle) sUrl = sUrl.replace(' ','%20') oGuiElement.setMediaUrl(sUrl) oGuiElement.setThumbnail(sThumbnail) oPlayer = cPlayer() oPlayer.clearPlayList() oPlayer.addItemToPlaylist(oGuiElement) #tout repetter xbmc.executebuiltin("xbmc.playercontrol(RepeatAll)") oPlayer.startPlayer() return
def getLibrary(self): xbmc.executebuiltin("Container.Update(special://userdata/addon_data/plugin.video.vstream/)", True) #xbmc.executebuiltin('ActivateWindow(Videos,"special://userdata/addon_data/plugin.video.vstream/")', True) return True
def UptomyAccount(): addons = addon() if (addons.getSetting('hoster_uptobox_username') == '') and (addons.getSetting('hoster_uptobox_password') == ''): return oInputParameterHandler = cInputParameterHandler() sMediaUrl = oInputParameterHandler.getValue('sMediaUrl') oPremiumHandler = cPremiumHandler('uptobox') sHtmlContent = oPremiumHandler.GetHtml(URL_MAIN) cookies = GestionCookie().Readcookie('uptobox') aResult = re.search('<form id="fileupload" action="([^"]+)"', sHtmlContent, re.DOTALL) if (aResult): UPurl = aResult.group(1).replace('upload?','remote?') if UPurl.startswith('//'): UPurl = 'https:' + UPurl fields = {'urls':'["' + sMediaUrl + '"]'} mpartdata = MPencode(fields) req = urllib2.Request(UPurl, mpartdata[1], headers) req.add_header('Content-Type', mpartdata[0].replace(',', ';')) req.add_header('Cookie', cookies) req.add_header('Content-Length', len(mpartdata[1])) #penible ce dialog auth xbmc.executebuiltin("Dialog.Close(all,true)") xbmcgui.Dialog().notification('Requete envoyé', 'vous pouvez faire autre chose', xbmcgui.NOTIFICATION_INFO, 4000, False) try: rep = urllib2.urlopen(req) except urllib2.URLError, e: return '' sHtmlContent = rep.read() rep.close() sPattern = '{"id":.+?,(?:"size":|"progress":)([0-9]+)' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = aResult[1][0] del aResult[1][0] dialog = xbmcgui.DialogProgressBG() dialog.create(SITE_NAME, 'Transfert de fichiers sur votre compte Uptobox') for aEntry in aResult[1]: dialog.update(int(aEntry) * 100 / int(total),'Upload en cours...') xbmc.sleep(500) dialog.close() else: #penible ce dialog auth xbmc.executebuiltin("Dialog.Close(all,true)") xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable', xbmcgui.NOTIFICATION_INFO, 2000, False)
def onClick(self, controlId): xbmc.executebuiltin("Container.Refresh") self.close() return
def _close_dialog( self ): xbmc.executebuiltin("Container.Refresh") self.close()
sHtmlContent = rep.read() rep.close() sPattern = '{"id":.+?,(?:"size":|"progress":)([0-9]+)' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = aResult[1][0] del aResult[1][0] dialog = xbmcgui.DialogProgressBG() dialog.create(SITE_NAME, 'Transfert de fichiers sur votre compte Uptobox') for aEntry in aResult[1]: dialog.update(int(aEntry) * 100 / int(total),'Upload en cours...') xbmc.sleep(500) dialog.close() else: #penible ce dialog auth xbmc.executebuiltin("Dialog.Close(all,true)") xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable', xbmcgui.NOTIFICATION_INFO, 2000, False) else: #penible ce dialog auth xbmc.executebuiltin("Dialog.Close(all,true)") xbmcgui.Dialog().notification('Info upload', 'Erreur pattern', xbmcgui.NOTIFICATION_ERROR, 2000, False)
def getLibrary(self): xbmc.executebuiltin( 'Container.Update(special://userdata/addon_data/plugin.video.vstream/)', True) return True
def updateDirectory(self): xbmc.executebuiltin("Container.Refresh")
def ShowContent(self): oInputParameterHandler = cInputParameterHandler() sFolder = oInputParameterHandler.getValue('folder') xbmc.executebuiltin('Container.Update(' + sFolder + ')')
def searchGlobal(): cancel = False oGui = cGui() addons = addon() oInputParameterHandler = cInputParameterHandler() sSearchText = oInputParameterHandler.getValue('searchtext') sCat = oInputParameterHandler.getValue('sCat') oHandler = cRechercheHandler() oHandler.setText(sSearchText) oHandler.setCat(sCat) aPlugins = oHandler.getAvailablePlugins() if not aPlugins: return True total = len(aPlugins) #VSlog(str(aPlugins), xbmc.LOGNOTICE) progress_ = progress().VScreate() #kodi 17 vire la fenetre busy qui ce pose au dessus de la barre de Progress try: xbmc.executebuiltin("Dialog.Close(busydialog)") except: pass window(10101).setProperty('search', 'true') oGui.addText('globalSearch', addons.VSlang(30081) % (sSearchText), 'none.png') for count, plugin in enumerate(aPlugins): #text = '%s/%s - %s' % ((count+1), total, plugin['name']) progress_.VSupdatesearch(progress_, total, plugin['name']) if progress_.iscanceled(): cancel = True progress_.close() break #nom du site oGui.addText(plugin['identifier'], '%s. [COLOR olive]%s[/COLOR]' % ((count+1), plugin['name']), 'sites/%s.png' % (plugin['identifier'])) #recherche import _pluginSearch(plugin, sSearchText) window(10101).setProperty('search', 'false') #progress_.VSclose(progress_) #affichage total=len(oGui.searchResults) #progress_ = progress().VScreate() for count,result in enumerate(oGui.searchResults): #text = '%s/%s - %s' % ((count+1/total), total, result['guiElement'].getTitle()) #if(count == 0): # cConfig().updateDialogSearch(dialog, total, text,True) #else: # cConfig().updateDialogSearch(dialog, total, text) progress_.VSupdatesearch(progress_, total, "Patience...") #result['params'].addParameter('VSTRMSEARCH', 'True') oGui.addFolder(result['guiElement'],result['params']) #VSlog('%s - %s' % (middle, old_label), xbmc.LOGNOTICE) # if progress_.iscanceled(): # if cancel == True: # continue # else: # break progress_.VSclose(progress_) oGui.setEndOfDirectory() return True