Esempio n. 1
0
File: api.py Progetto: msports/mw
	def add_mirror(self,parts,name):
		if not self.terminate and isinstance(parts,list) and len(parts)>0:
			for part in parts:
				upname=part.get("url_provider_name",None)
				uphash=part.get("url_provider_hash",None)
				#sanity check
				if upname is None or uphash is None:
					return False
				#check if there is an appropriate url provider
				if not providers.is_loadable(self.content_type,"url",upname,self.loadable_uprv):
					self.add_log("no appropriate url provider. Skipping : %s , %s" % (str(self.content_type),str(upname)))
					return False
				#check if provider first time. checked ids are dynamic on provider name
				elif upname in self.checked_uids[self.content_type].keys():
				#check if already proccesed
					if uphash in self.checked_uids[self.content_type][upname]:
						self.add_log("already processed, skipping :%s , %s, %s " % (str(self.content_type),str(upname),str(uphash)))
						return False
				else:
				#if first time, create list dynamically
					self.checked_uids[self.content_type][upname]=[]
				self.checked_uids[self.content_type][upname].append(uphash)
			self.tm.add_queue(target=self._on_new_id, args=(parts,name),pri=5)
		else:
			return False
Esempio n. 2
0
	def add_mirror(self,parts,name,wait=0,missing="drop"):
		hs=re.match("\[HS\:(.*?)\]",name,re.IGNORECASE)
		d=re.match("\[D\:(.*?)\]",name,re.IGNORECASE)
		language=self.backwards.getLanguage(0).lower()
		link_provider=findcaller()
		if not (self.terminate or self.backwards.abortRequested()) and isinstance(parts,list) and len(parts)>0:
			for part in parts:
				part["link_provider_name"]=link_provider
				upname=part.get("url_provider_name",None)
				uphash=part.get("url_provider_hash",None)
				if addon.getSetting("dismiss_sub_other")=="true" and hs and not hs.group(1).lower() in [language,"en"]:
					self.add_log("HARD SUBTITLE, Dismissing : %s, %s , %s" % (str(self.content_type),name,str(upname)))
					return
				if addon.getSetting("dismiss_dub_other")=="true"and d and not d.group(1).lower() in [language,"en"]:
					self.add_log("OVERDUB, Dismissing : %s, %s , %s" % (str(self.content_type),name,str(upname)))
					return
				#sanity check
				if upname is None or uphash is None:
					return False
				#check if there is an appropriate url provider
				if not providers.is_loadable(self.content_type,"url",upname,self.loadable_uprv):
					self.add_log("no appropriate url provider. Skipping : %s , %s" % (str(self.content_type),str(upname)))
					return False
				#check if provider first time. checked ids are dynamic on provider name
				elif upname in self.checked_uids[self.content_type].keys():
				#check if already proccesed
					if uphash in self.checked_uids[self.content_type][upname]:
						self.add_log("already processed, skipping :%s , %s, %s " % (str(self.content_type),str(upname),str(uphash)))
						return False
				else:
				#if first time, create list dynamically
					self.checked_uids[self.content_type][upname]=[]
				self.checked_uids[self.content_type][upname].append(uphash)
			try:
				caller = inspect.getframeinfo(inspect.stack()[1][0])
				lpname=os.path.split(caller.filename)[-1].split(".")[0].split("_")[2]
			except:
				lpname=None
			self.tm.add_queue(target=self._on_new_id, args=(lpname,parts,name,wait,missing),pri=5)
		else:
			return False
Esempio n. 3
0
	elif ump.page== "urlselect":
		if not addon.getSetting("tn_chk_url_en").lower()=="false":
			from ump import webtunnel
			webtunnel.check_health(ump,True)
		if len(link_providers)==0:
			ump.dialog.notification("ERROR","There is no available providers for %s"%ump.content_type)
		else:
			for provider in link_providers:
				try:
					provider=providers.load(ump.content_type,"link",provider[2])
				except Exception, e:
					ump.notify_error(e)
					continue
				ump.tm.add_queue(provider.run, (ump,),pri=10)
			ump.window.doModal()
	elif providers.is_loadable(ump.content_type,"index",ump.module,indexers)==1:
		try:
			providers.load(ump.content_type,"index",ump.module).run(ump)
			ump._do_container()
		except Exception,e:
			ump.notify_error(e)
	elif providers.is_loadable(ump.content_type,"index",ump.module,indexers)==2:
		try:
			providers.load("ump","index",ump.module).run(ump)
			ump._do_container()
		except Exception,e:
			ump.notify_error(e)
	postrun.run(ump)		
	ump.shut()
	ump.add_log("PUBLISH      : %s"%str(ump.pub))
	if int(ump.handle)==-1:
Esempio n. 4
0
            li = xbmcgui.ListItem(provider_name,
                                  iconImage=img,
                                  thumbnailImage=img)
            xbmcplugin.addDirectoryItem(ump.handle,
                                        ump.link_to(module=provider_name), li,
                                        True)
        xbmcplugin.endOfDirectory(ump.handle)
elif ump.page == "urlselect":
    #	threads=[]
    if len(link_providers) == 0:
        ump.dialog.notification(
            "ERROR",
            "There is no available providers for %s" % ump.content_type)
    else:
        for provider in link_providers:
            try:
                provider = providers.load(ump.content_type, "link",
                                          provider[2])
            except Exception, e:
                ump.notify_error(e)
                continue
            ump.tm.add_queue(provider.run, (ump, ), pri=10)
        ump.window.doModal()
elif providers.is_loadable(ump.content_type, "index", ump.module, indexers):
    providers.load(ump.content_type, "index", ump.module).run(ump)
ump.shut()
print "CONTENT_CAT  : " + str(ump.content_cat)
del gc.garbage[:]
gc.collect()
print "EOF"