本文整理汇总了Python中Configuration.Configuration.writeConfig方法的典型用法代码示例。如果您正苦于以下问题:Python Configuration.writeConfig方法的具体用法?Python Configuration.writeConfig怎么用?Python Configuration.writeConfig使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Configuration.Configuration
的用法示例。
在下文中一共展示了Configuration.writeConfig方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PluzzDLF4M
# 需要导入模块: from Configuration import Configuration [as 别名]
# 或者: from Configuration.Configuration import writeConfig [as 别名]
#.........这里部分代码省略.........
playerData = self.navigateur.getFichier( "http://static.francetv.fr/players/Flash.H264/player.swf" )
# Uncompress SWF player
playerDataUncompress = self.decompressSWF( playerData )
# Perform sha256 of uncompressed SWF player
hashPlayer = hashlib.sha256( playerDataUncompress ).hexdigest()
# Perform base64
return base64.encodestring( hashPlayer.decode( 'hex' ) )
def debutVideo( self, fragID, fragData ):
"""
Trouve le debut de la video dans un fragment
"""
# Skip fragment header
start = fragData.find( "mdat" ) + 4
# For all fragment (except frag1)
if( fragID > 1 ):
# Skip 2 FLV tags
for dummy in range( 2 ):
tagLen, = struct.unpack_from( ">L", fragData, start ) # Read 32 bits (big endian)
tagLen &= 0x00ffffff # Take the last 24 bits
start += tagLen + 11 + 4 # 11 = tag header len ; 4 = tag footer len
return start
def telecharger( self ):
# Verifie si le lien du manifest contient la chaine "media-secure"
if( self.manifestURL.find( "media-secure" ) != -1 ):
raise PluzzDLException( "pluzzdl ne sait pas gérer ce type de vidéo (utilisation de DRMs)..." )
# Lien du manifest (apres le token)
self.manifestURLToken = self.navigateur.getFichier( "http://hdfauth.francetv.fr/esi/urltokengen2.html?url=%s" % ( self.manifestURL[ self.manifestURL.find( "/z/" ) : ] ) )
# Recupere le manifest
self.manifest = self.navigateur.getFichier( self.manifestURLToken )
# Parse le manifest
self.parseManifest()
# Calcul les elements
self.hdnea = self.manifestURLToken[ self.manifestURLToken.find( "hdnea" ) : ]
self.pv20, self.hdntl = self.pv2.split( ";" )
self.pvtokenData = r"st=0000000000~exp=9999999999~acl=%2f%2a~data=" + self.pv20 + "!" + self.playerHash
self.pvtoken = "pvtoken=%s~hmac=%s" % ( urllib.quote( self.pvtokenData ), hmac.new( self.hmacKey, self.pvtokenData, hashlib.sha256 ).hexdigest() )
#
# Creation de la video
#
self.premierFragment = 1
self.telechargementFini = False
video = self.historique.getVideo( self.urlFrag )
# Si la video est dans l'historique
if( video is not None ):
# Si la video existe sur le disque
if( os.path.exists( self.nomFichier ) ):
if( video.finie ):
logger.info( "La vidéo a déjà été entièrement téléchargée" )
return
else:
self.ouvrirVideoExistante()
self.premierFragment = video.fragments
logger.info( "Reprise du téléchargement de la vidéo au fragment %d" % ( video.fragments ) )
else:
self.ouvrirNouvelleVideo()
logger.info( "Impossible de reprendre le téléchargement de la vidéo, le fichier %s n'existe pas" % ( self.nomFichier ) )
else: # Si la video n'est pas dans l'historique
self.ouvrirNouvelleVideo()
# Calcul l'estimation du nombre de fragments
self.nbFragMax = round( self.duree / 6 )
logger.debug( "Estimation du nombre de fragments : %d" % ( self.nbFragMax ) )
# Ajout des fragments
logger.info( "Début du téléchargement des fragments" )
try :
i = self.premierFragment
self.navigateur.appendCookie( "hdntl", self.hdntl )
while( not self.stopDownloadEvent.isSet() ):
# frag = self.navigateur.getFichier( "%s%d?%s&%s&%s" %( self.urlFrag, i, self.pvtoken, self.hdntl, self.hdnea ) )
frag = self.navigateur.getFichier( "%s%d" % ( self.urlFrag, i ), referer = self.adobePlayer )
debut = self.debutVideo( i, frag )
self.fichierVideo.write( frag[ debut : ] )
# Affichage de la progression
self.progressFnct( min( int( ( i / self.nbFragMax ) * 100 ), 100 ) )
i += 1
except urllib2.URLError, e :
if( hasattr( e, 'code' ) ):
if( e.code == 403 ):
if( e.reason == "Forbidden" ):
logger.info( "Le hash du player semble invalide ; calcul du nouveau hash" )
newPlayerHash = self.getPlayerHash()
if( newPlayerHash != self.playerHash ):
self.configuration[ "player_hash" ] = newPlayerHash
self.configuration.writeConfig()
logger.info( "Un nouveau hash a été trouvé ; essayez de relancer l'application" )
else:
logger.critical( "Pas de nouveau hash disponible..." )
else:
logger.critical( "Impossible de charger la vidéo" )
elif( e.code == 404 ):
self.progressFnct( 100 )
self.telechargementFini = True
logger.info( "Fin du téléchargement" )
except KeyboardInterrupt:
logger.info( "Interruption clavier" )
示例2: PluzzDL
# 需要导入模块: from Configuration import Configuration [as 别名]
# 或者: from Configuration.Configuration import writeConfig [as 别名]
#.........这里部分代码省略.........
page = self.navigateur.getFichier( self.url )
try:
self.manifestURL = re.findall( "(http://.+?manifest.f4m)", page )[ 0 ]
except:
logger.critical( "Pas de lien vers le manifest" )
sys.exit( -1 )
try:
self.nomFichier = os.path.join( self.outDir, "%s.flv" %( self.url.split( "/" )[ -1 ] ) )
except:
self.nomFichier = os.path.join( self.outDir, "video.flv" )
self.generateNomFichier()
if self.mode == "manifest":
self.getVideoViaManifest()
if self.mode == "playlist":
self.getVideoViaPlaylist()
def getVideoViaManifest( self ):
# Verifie si le lien du manifest contient la chaine "media-secure"
if( self.manifestURL.find( "media-secure" ) != -1 ):
logger.critical( "pluzzdl ne sait pas encore gérer ce type de vidéo..." )
sys.exit( 0 )
# Lien du manifest (apres le token)
self.manifestURLToken = self.navigateur.getFichier( "http://hdfauth.francetv.fr/esi/urltokengen2.html?url=%s" %( self.manifestURL[ self.manifestURL.find( "/z/" ) : ] ) )
# Recupere le manifest
self.manifest = self.navigateur.getFichier( self.manifestURLToken )
# Parse le manifest
self.parseManifest()
# Calcul les elements
self.hdnea = self.manifestURLToken[ self.manifestURLToken.find( "hdnea" ) : ]
self.pv20, self.hdntl = self.pv2.split( ";" )
self.pvtokenData = r"st=0000000000~exp=9999999999~acl=%2f%2a~data=" + self.pv20 + "!" + self.playerHash
self.pvtoken = "pvtoken=%s~hmac=%s" %( urllib.quote( self.pvtokenData ), hmac.new( self.hmacKey, self.pvtokenData, hashlib.sha256 ).hexdigest() )
#
# Creation de la video
#
self.premierFragment = 1
self.telechargementFini = False
# S'il faut reprendre le telechargement
if( self.resume ):
video = self.historique.getVideo( self.urlFrag )
# Si la video est dans l'historique
if( video is not None ):
# Si la video existe sur le disque
if( os.path.exists( self.nomFichier ) ):
if( video.finie ):
logger.info( "La vidéo a déjà été entièrement téléchargée" )
sys.exit( 0 )
else:
self.ouvrirVideoExistante()
self.premierFragment = video.fragments
logger.info( "Reprise du téléchargement de la vidéo au fragment %d" %( video.fragments ) )
else:
self.ouvrirNouvelleVideo()
logger.info( "Impossible de reprendre le téléchargement de la vidéo, le fichier %s n'existe pas" %( self.nomFichier ) )
else: # Si la video n'est pas dans l'historique
self.ouvrirNouvelleVideo()
else: # S'il ne faut pas reprendre le telechargement
self.ouvrirNouvelleVideo()
# Calcul l'estimation du nombre de fragments
self.nbFragMax = round( self.duree / 6 )
logger.debug( "Estimation du nombre de fragments : %d" %( self.nbFragMax ) )
# Ajout des fragments
logger.info( "Début du téléchargement des fragments" )
try :
i = self.premierFragment
while( not self.stopDownloadEvent.isSet() ):
frag = self.navigateur.getFichier( "%s%d?%s&%s&%s" %( self.urlFrag, i, self.pvtoken, self.hdntl, self.hdnea ) )
debut = self.debutVideo( i, frag )
self.fichierVideo.write( frag[ debut : ] )
# Affichage de la progression
self.progressFnct( min( int( ( i / self.nbFragMax ) * 100 ), 100 ) )
i += 1
except urllib2.URLError, e :
if( hasattr( e, 'code' ) ):
if( e.code == 403 ):
if( e.reason == "Forbidden" ):
logger.info( "Le hash du player semble invalide ; calcul du nouveau hash" )
newPlayerHash = self.getPlayerHash()
if( newPlayerHash != self.playerHash ):
self.configuration[ "player_hash" ] = newPlayerHash
self.configuration.writeConfig()
logger.info( "Un nouveau hash a été trouvé ; essayez de relancer l'application" )
else:
logger.critical( "Pas de nouveau hash disponible..." )
else:
logger.critical( "Impossible de charger la vidéo" )
elif( e.code == 404 ):
self.progressFnct( 100 )
self.telechargementFini = True
logger.info( "Fin du téléchargement" )
self.convertVideo()
except KeyboardInterrupt:
logger.info( "Interruption clavier" )