def downloadfileGzipped(url,pathfichero):
	logger.info("[downloadtools.py] downloadfileGzipped: url="+url)
	nombrefichero = pathfichero
	logger.info("[downloadtools.py] downloadfileGzipped: nombrefichero="+nombrefichero)

	nombrefichero = xbmc.makeLegalFilename(nombrefichero)
	logger.info("[downloadtools.py] downloadfileGzipped: nombrefichero="+nombrefichero)
	patron = "(http://[^/]+)/.+"
	matches = re.compile(patron,re.DOTALL).findall(url)
	
	if len(matches):
		logger.info("[downloadtools.py] URL principal :"+matches[0])
		url1= matches[0]
	else:
		url1 = url
	
	txheaders =  {'User-Agent':'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)',
	              'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
	              'Accept-Language':'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3',
	              'Accept-Encoding':'gzip,deflate',
	              'Accept-Charset':'UTF-8,utf-8;q=0.7,*;q=0.7',
	              'Keep-Alive':'115',
	              'Connection':'keep-alive',
	              'Referer':url1,
	              }
	              
		
	txdata = ""
	


	# Crea el di�logo de progreso
	progreso = xbmcgui.DialogProgress()
	progreso.create( config.getPluginId() , "Descargando file..." , url , nombrefichero )

	# Timeout del socket a 60 segundos
	socket.setdefaulttimeout(10)

	h=urllib2.HTTPHandler(debuglevel=0)
	request = urllib2.Request(url, txdata, txheaders)
	#if existSize > 0:
	#	request.add_header('Range', 'bytes=%d-' % (existSize, ))

	opener = urllib2.build_opener(h)
	urllib2.install_opener(opener)
	try:
		connexion = opener.open(request)
	except urllib2.HTTPError,e:
		logger.info("[downloadtools.py] downloadfile: error %d (%s) al abrir la url %s" % (e.code,e.msg,url))
		#print e.code
		#print e.msg
		#print e.hdrs
		#print e.fp
		f.close()
		progreso.close()
		# El error 416 es que el rango pedido es mayor que el fichero => es que ya est� completo
		if e.code==416:
			return 0
		else:
			return -2
示例#2
0
def downloadfileGzipped(url,pathfichero):
	logger.info("[downloadtools.py] downloadfileGzipped: url="+url)
	nombrefichero = pathfichero
	logger.info("[downloadtools.py] downloadfileGzipped: nombrefichero="+nombrefichero)

	import xbmc
	nombrefichero = xbmc.makeLegalFilename(nombrefichero)
	logger.info("[downloadtools.py] downloadfileGzipped: nombrefichero="+nombrefichero)
	patron = "(http://[^/]+)/.+"
	matches = re.compile(patron,re.DOTALL).findall(url)
	
	if len(matches):
		logger.info("[downloadtools.py] URL principal :"+matches[0])
		url1= matches[0]
	else:
		url1 = url
	
	txheaders =  {'User-Agent':'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)',
	              'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
	              'Accept-Language':'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3',
	              'Accept-Encoding':'gzip,deflate',
	              'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
	              'Keep-Alive':'115',
	              'Connection':'keep-alive',
	              'Referer':url1,
	              }
		
	txdata = ""

	# Crea el diálogo de progreso
	import xbmcgui
	progreso = xbmcgui.DialogProgress()
	progreso.create( config.getPluginId() , "Descargando file..." , url , nombrefichero )

	# Timeout del socket a 60 segundos
	socket.setdefaulttimeout(10)

	h=urllib2.HTTPHandler(debuglevel=0)
	request = urllib2.Request(url, txdata, txheaders)
	#if existSize > 0:
	#	request.add_header('Range', 'bytes=%d-' % (existSize, ))

	opener = urllib2.build_opener(h)
	urllib2.install_opener(opener)
	try:
		connexion = opener.open(request)
	except urllib2.HTTPError,e:
		logger.info("[downloadtools.py] downloadfile: error %d (%s) al abrir la url %s" % (e.code,e.msg,url))
		#print e.code
		#print e.msg
		#print e.hdrs
		#print e.fp
		progreso.close()
		# El error 416 es que el rango pedido es mayor que el fichero => es que ya está completo
		if e.code==416:
			return 0
		else:
			return -2
示例#3
0
def downloadfile(url,nombrefichero):
	logger.info("[downloadtools.py] downloadfile: url="+url)
	logger.info("[downloadtools.py] downloadfile: nombrefichero="+nombrefichero)
	# antes
	#f=open(nombrefichero,"wb")
	try:
		import xbmc
		nombrefichero = xbmc.makeLegalFilename(nombrefichero)
	except:
		pass
	logger.info("[downloadtools.py] downloadfile: nombrefichero="+nombrefichero)

	# despues
	if os.path.exists(nombrefichero):
		f = open(nombrefichero, 'r+b')
		existSize = os.path.getsize(nombrefichero)
		logger.info("[downloadtools.py] downloadfile: el fichero existe, size=%d" % existSize)
		grabado = existSize
		f.seek(existSize)
	else:
		existSize = 0
		logger.info("[downloadtools.py] downloadfile: el fichero no existe")
		f = open(nombrefichero, 'wb')
		grabado = 0

	# Crea el diálogo de progreso
	import xbmcgui
	progreso = xbmcgui.DialogProgress()
	progreso.create( config.getPluginId() , "Descargando vídeo..." , url , nombrefichero )

	# Timeout del socket a 60 segundos
	socket.setdefaulttimeout(10)

	h=urllib2.HTTPHandler(debuglevel=0)
	request = urllib2.Request(url)
	if existSize > 0:
		request.add_header('Range', 'bytes=%d-' % (existSize, ))

	opener = urllib2.build_opener(h)
	urllib2.install_opener(opener)
	try:
		connexion = opener.open(request)
	except urllib2.HTTPError,e:
		logger.info("[downloadtools.py] downloadfile: error %d (%s) al abrir la url %s" % (e.code,e.msg,url))
		#print e.code
		#print e.msg
		#print e.hdrs
		#print e.fp
		f.close()
		progreso.close()
		# El error 416 es que el rango pedido es mayor que el fichero => es que ya está completo
		if e.code==416:
			return 0
		else:
			return -2