def onClick(self, controlId): if controlId == 5: self.close() return elif controlId == 99: window = xbmcgui.Window(xbmcgui.getCurrentWindowId()) del window self.close() return elif controlId == 7: window = xbmcgui.Window(xbmcgui.getCurrentWindowId()) del window self.close() return elif controlId == 6: item = self.container.getSelectedItem() if item.isSelected() == True: label = item.getLabel().replace(valid,'') item.setLabel(label) item.select(False) sPluginSettingsName = ('plugin_%s') % (item.getProperty('sitename')) self.ADDON.setSetting(sPluginSettingsName, str('false')) else : label = ('%s %s') % (item.getLabel(), valid) item.setLabel(label) item.select(True) sPluginSettingsName = ('plugin_%s') % (item.getProperty('sitename')) self.ADDON.setSetting(sPluginSettingsName, str('true')) return
def StopDownloadList(self): #oInputParameterHandler = cInputParameterHandler() #path = oInputParameterHandler.getValue('sPath') #status = oInputParameterHandler.getValue('sStatus') #WINDOW_PROGRESS = xbmcgui.Window(10101) #WINDOW_PROGRESS.close() #xbmcgui.Window(10101).setProperty('arret', '1') #xbmc.executebuiltin('Dialog.Close(%s, true)' % 10101) #xbmc.getCondVisibility('Window.IsActive(10101)') #thread actif if xbmcgui.Window(10101).getProperty('arret') == '0': xbmcgui.Window(10101).setProperty('arret', '1') #si bug else: cDownloadProgressBar().StopAll() #On remet tout les status a 0 ou 2 cDb().Cancel_download() VSupdate() return
def StopAll(self): self.processIsCanceled = True #Memorise.unlock('VstreamDownloaderLock') #Memorise.set('SimpleDownloaderQueue', '0') xbmcgui.Window(10101).setProperty('SimpleDownloaderQueue', '0') xbmcgui.Window(10101).setProperty('arret', '1') try: self.__oDialog.close() except: pass return
def onClick(self, controlId): if controlId == 20: #button Valider solution = self.getControl(5000).getLabel() xbmcgui.Window(10101).setProperty('captcha', solution) self.close() return elif controlId == 30: #button fermer self.close() return elif controlId == 21: #button clavier self.getControl(2).setVisible(True) kb = xbmc.Keyboard( self.getControl(5000).getLabel(), '', False) kb.doModal() if (kb.isConfirmed()): self.getControl(5000).setLabel(kb.getText()) self.getControl(2).setVisible(False) else: self.getControl(2).setVisible(False)
def get_response(img,cookie): #on telecharge l'image import xbmcvfs dialogs = dialog() filename = "special://home/userdata/addon_data/plugin.video.vstream/Captcha.raw" #PathCache = xbmc.translatePath(xbmcaddon.Addon('plugin.video.vstream').getAddonInfo("profile")) #filename = os.path.join(PathCache, 'Captcha.raw') hostComplet = re.sub(r'(https*:\/\/[^/]+)(\/*.*)', '\\1', img) host = re.sub(r'https*:\/\/', '', hostComplet) url = img oRequestHandler = cRequestHandler(url) oRequestHandler.addHeaderEntry('User-Agent' , UA) #oRequestHandler.addHeaderEntry('Referer', url) oRequestHandler.addHeaderEntry('Cookie', cookie) htmlcontent = oRequestHandler.request() NewCookie = oRequestHandler.GetCookies() downloaded_image = xbmcvfs.File(filename, 'wb') #downloaded_image = file(filename, "wb") downloaded_image.write(htmlcontent) downloaded_image.close() #on affiche le dialogue solution = '' if (True): ####nouveau captcha try: ##affichage du dialog perso class XMLDialog(xbmcgui.WindowXMLDialog): #""" #Dialog class for captcha #""" def __init__(self, *args, **kwargs): xbmcgui.WindowXMLDialog.__init__(self) pass def onInit(self): #image background captcha self.getControl(1).setImage(filename.encode("utf-8"), False) #image petit captcha memory fail self.getControl(2).setImage(filename.encode("utf-8"), False) self.getControl(2).setVisible(False) ##Focus clavier self.setFocus(self.getControl(21)) def onClick(self, controlId): if controlId == 20: #button Valider solution = self.getControl(5000).getLabel() xbmcgui.Window(10101).setProperty('captcha', solution) self.close() return elif controlId == 30: #button fermer self.close() return elif controlId == 21: #button clavier self.getControl(2).setVisible(True) kb = xbmc.Keyboard(self.getControl(5000).getLabel(), '', False) kb.doModal() if (kb.isConfirmed()): self.getControl(5000).setLabel(kb.getText()) self.getControl(2).setVisible(False) else: self.getControl(2).setVisible(False) def onFocus(self, controlId): self.controlId = controlId def _close_dialog(self): self.close() def onAction(self, action): #touche return 61448 if action.getId() in (9, 10, 11, 30, 92, 216, 247, 257, 275, 61467, 61448): self.close() path = "special://home/addons/plugin.video.vstream" #path = cConfig().getAddonPath().decode("utf-8") wd = XMLDialog('DialogCaptcha.xml', path, 'default', '720p') wd.doModal() del wd finally: solution = xbmcgui.Window(10101).getProperty('captcha') if solution == '': dialogs.VSinfo("Vous devez taper le captcha") else: #ancien Captcha try: img = xbmcgui.ControlImage(450, 0, 400, 130, filename.encode("utf-8")) wdlg = xbmcgui.WindowDialog() wdlg.addControl(img) wdlg.show() #xbmc.sleep(3000) kb = xbmc.Keyboard('', 'Tapez les Lettres/chiffres de l\'image', False) kb.doModal() if (kb.isConfirmed()): solution = kb.getText() if solution == '': dialogs.VSinfo("Vous devez taper le captcha") else: dialogs.VSinfo("Vous devez taper le captcha") finally: wdlg.removeControl(img) wdlg.close() return solution, NewCookie
def _StartDownload(self): #print 'Thread actuel' #print threading.current_thread().getName() diag = self.createProcessDialog() #diag.isFinished() xbmcgui.Window(10101).setProperty('arret', '0') #self.Memorise.set('VstreamDownloaderWorking', '1') headers = self.oUrlHandler.info() #print headers iTotalSize = -1 if 'content-length' in headers: iTotalSize = int(headers['Content-Length']) chunk = 16 * 1024 TotDown = 0 #mise a jour pour info taille self.__updatedb(TotDown, iTotalSize) self.DIALOG.VSinfo('Téléchargement Démarré') while not (self.processIsCanceled or diag.isFinished()): data = self.oUrlHandler.read(chunk) if not data: print 'DL err' break self.file.write(data) TotDown = TotDown + data.__len__() self.__updatedb(TotDown, iTotalSize) self.__stateCallBackFunction(TotDown, iTotalSize) #if self.Memorise.get('VstreamDownloaderWorking') == '0': # self.processIsCanceled = True if xbmcgui.Window(10101).getProperty('arret') == '1': self.processIsCanceled = True #petite pause, ca ralentit le download mais evite de bouffer 100/100 ressources if not (self.__bFastMode): xbmc.sleep(300) self.oUrlHandler.close() self.file.close() self.__oDialog.close() #On autorise le prochain DL #???????????????? #Memorise.unlock('VstreamDownloaderLock') #fait une pause pour fermer le Dialog xbmc.sleep(900) #if download finish meta = {} meta['path'] = self.__fPath meta['size'] = TotDown meta['totalsize'] = iTotalSize if (TotDown == iTotalSize) and (iTotalSize > 10000): meta['status'] = 2 try: cDb().update_download(meta) self.DIALOG.VSinfo('Téléchargements Terminé', self.__sTitle) #print 'Téléchargements Terminé: %s' % self.__sTitle self.RefreshDownloadList() except: pass else: meta['status'] = 0 try: cDb().update_download(meta) self.DIALOG.VSinfo('Téléchargements Arrêté', self.__sTitle) #print 'Téléchargements Arrêté: %s' % self.__sTitle self.RefreshDownloadList() except: pass return #ok tout est bon on continu ou pas? #if Memorise.get('SimpleDownloaderQueue') == '1': if xbmcgui.Window(10101).getProperty('SimpleDownloaderQueue') == '1': print 'Download suivant' tmp = cDownload() data = tmp.GetNextFile() tmp.StartDownload(data)
def StartDownloadList(self): self.DIALOG.VSinfo('Démarrage de la liste complète') #Memorise.set('SimpleDownloaderQueue', '1') xbmcgui.Window(10101).setProperty('SimpleDownloaderQueue', '1') data = self.GetNextFile() self.StartDownload(data)
def StartDownloadOneFile(self, meta=[]): if not meta: meta = self.GetOnefile() xbmcgui.Window(10101).setProperty('SimpleDownloaderQueue', '0') self.StartDownload(meta)
def Captcha_Get_Reponse(img, cookie): #on telecharge l'image #PathCache = xbmc.translatePath(xbmcaddon.Addon('plugin.video.vstream').getAddonInfo("profile")) #filename = os.path.join(PathCache,'Captcha.raw').decode("utf-8") filename = "special://home/userdata/addon_data/plugin.video.vstream/Captcha.raw" headers2 = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0', #'Referer' : url , 'Host': 'protect.ddl-island.su', 'Accept': 'image/png,image/*;q=0.8,*/*;q=0.5', 'Accept-Language': 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4', 'Accept-Encoding': 'gzip, deflate', #'Content-Type' : 'application/x-www-form-urlencoded', } if cookie: headers2['Cookie'] = cookie try: req = urllib2.Request(img, None, headers2) image_on_web = urllib2.urlopen(req) if image_on_web.headers.maintype == 'image': buf = image_on_web.read() #downloaded_image = file(filename, "wb") downloaded_image = xbmcvfs.File(filename, 'wb') downloaded_image.write(buf) downloaded_image.close() image_on_web.close() else: return '' except: return '' #on affiche le dialogue solution = '' if (NewMethod): ####nouveau captcha try: ##affichage du dialog perso class XMLDialog(xbmcgui.WindowXMLDialog): #""" #Dialog class for captcha #""" def __init__(self, *args, **kwargs): xbmcgui.WindowXMLDialog.__init__(self) pass def onInit(self): #image background captcha self.getControl(1).setImage(filename.encode("utf-8"), False) #image petit captcha memory fail self.getControl(2).setImage(filename.encode("utf-8"), False) self.getControl(2).setVisible(False) ##Focus clavier self.setFocus(self.getControl(21)) def onClick(self, controlId): if controlId == 20: #button Valider solution = self.getControl(5000).getLabel() xbmcgui.Window(10101).setProperty( 'captcha', str(solution)) self.close() return elif controlId == 30: #button fermer self.close() return elif controlId == 21: #button clavier self.getControl(2).setVisible(True) kb = xbmc.Keyboard( self.getControl(5000).getLabel(), '', False) kb.doModal() if (kb.isConfirmed()): self.getControl(5000).setLabel(kb.getText()) self.getControl(2).setVisible(False) else: self.getControl(2).setVisible(False) def onFocus(self, controlId): self.controlId = controlId def _close_dialog(self): self.close() def onAction(self, action): #touche return 61448 if action.getId() in (9, 10, 11, 30, 92, 216, 247, 257, 275, 61467, 61448): self.close() path = "special://home/addons/plugin.video.vstream" wd = XMLDialog('DialogCaptcha.xml', path, 'default', '720p') wd.doModal() del wd finally: solution = xbmcgui.Window(10101).getProperty('captcha') if solution == '': dialogs.VSinfo("Vous devez taper le captcha") else: #ancien Captcha try: img = xbmcgui.ControlImage(450, 0, 400, 130, filename.encode("utf-8")) wdlg = xbmcgui.WindowDialog() wdlg.addControl(img) wdlg.show() #xbmc.sleep(3000) kb = xbmc.Keyboard('', 'Tapez les Lettres/chiffres de l\'image', False) kb.doModal() if (kb.isConfirmed()): solution = kb.getText() if solution == '': dialogs.VSinfo("Vous devez taper le captcha") else: dialogs.VSinfo("Vous devez taper le captcha") finally: wdlg.removeControl(img) wdlg.close() return solution
def StartDownloadList(self): self.DIALOG.VSinfo(self.ADDON.VSlang(30075)) #Memorise.set('SimpleDownloaderQueue', '1') xbmcgui.Window(10101).setProperty('SimpleDownloaderQueue', '1') data = self.GetNextFile() self.StartDownload(data)