Outils pour utilisateurs

Outils du site


issue75:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue75:python [2013/12/17 18:45] auntieeissue75:python [2013/12/22 08:11] (Version actuelle) fcm_-_ekel
Ligne 16: Ligne 16:
 Tout d'abord, regardons comment fonctionne l'application existante. Tout d'abord, regardons comment fonctionne l'application existante.
 Voici un aperçu brut : Voici un aperçu brut :
-• Créer une connexion à la base de données qui crée la base de données si nécessaire. +• Créer une connexion à la base de donnéesqui crée la base de données si nécessaire. 
-• Créer un curseur à la base de données.+• Créer un pointeur sur la base de données.
 • Créer la table si elle n'existe pas. • Créer la table si elle n'existe pas.
 • Attribuer le(s) dossier(s) vidéo à une variable. • Attribuer le(s) dossier(s) vidéo à une variable.
-• Rechercher des fichiers vidéo dans le(s) dossier(s). ro de la saison, le numéro de l'épisode.+• Rechercher les fichiers vidéo dans le(s) dossier(s) 
 +• Obtenir le nom du fichier, le nom de la série, le numéro de la saison, le numéro de l'épisode.
 • Vérifiez si l'épisode existe dans la base de données. • Vérifiez si l'épisode existe dans la base de données.
 • S'il n'y est pas, l'ajouter à la base de données avec un « -1 » comme ID TvRage. • S'il n'y est pas, l'ajouter à la base de données avec un « -1 » comme ID TvRage.
Ligne 44: Ligne 45:
 ** **
  
-Nous allons repenser la base de données pour inclure une autre table et modifier la table de données existante. Tout d'abord, nous allons créer notre nouvelle table appelée Séries. Elle contiendra toutes les informations sur les séries TV que nous avons sur notre système. La nouvelle table comprendra les champs suivants :+Nous allons repenser la base de données pour inclure une autre table et modifier la table de données existante. Tout d'abord, nous allons créer notre nouvelle table appelée Series. Elle contiendra toutes les informations sur les séries TV que nous avons sur notre système. La nouvelle table comprendra les champs suivants :
 • PKID. • PKID.
 • Nom de la série. • Nom de la série.
-• TvRage série ID.+• ID série TvRage.
 • Nombre de saisons. • Nombre de saisons.
 • Date de début. • Date de début.
Ligne 77: Ligne 78:
 sqlquery = 'SELECT count(pkid) as rowcount from series where seriesName = "%s";' % showname** sqlquery = 'SELECT count(pkid) as rowcount from series where seriesName = "%s";' % showname**
  
-Nous pouvons utiliser la routine MakeDataBase existante pour créer notre nouvelle table. Avant le code existant, ajoutez le code ci-dessus à droite.+Nous pouvons utiliser la routine FabriquerBase existante pour créer notre nouvelle table. Avant le code existant, ajoutez le code ci-dessus à droite.
  
-L'instruction SQL ("sql = ...") doit être sur une seule ligne, mais est éclatée ici pour la facilité de votre compréhension. Nous laisserons la modification de la table existante pour plus tard.+L'instruction SQL ("sql = ...") doit être sur une seule ligne, mais est éclatée ici pour faciliter votre compréhension. Nous laisserons la modification de la table existante pour plus tard.
  
-Maintenant, nous devons modifier notre routine WalkThePath pour enregistrer le nom de la série et le chemin dans la table de Séries.+Maintenant, nous devons modifier notre routine ParcourirChemin pour enregistrer le nom de la série et le chemin dans la table de Series.
  
 Remplacez la ligne qui dit Remplacez la ligne qui dit
  
-sqlquery = 'SELECT count(pkid) as rowcount from TvShows where Filename = "%s";' % fl+sqlquery = 'SELECT count(pkid) as rowcount from TvShows where NomFichier = "%s";' % fl
  
 par par
  
-sqlquery = 'SELECT count(pkid) as rowcount from series where seriesName = "%s";'showname+sqlquery = 'SELECT count(pkid) as rowcount from Series where NomSerie = "%s";'NomEmission
  
 **This (to refresh your memory) will check to see if we have already put the series into the table. Now find the two lines that say: **This (to refresh your memory) will check to see if we have already put the series into the table. Now find the two lines that say:
Ligne 101: Ligne 102:
     cursor.execute(sql,(showname,root,-1))**     cursor.execute(sql,(showname,root,-1))**
  
-Cela (pour vous rafraîchir la mémoire) va vérifier si nous avons déjà mis les séries dans la table. Maintenant, trouver les deux lignes qui disent :+Cela (pour vous rafraîchir la mémoire) va vérifier si nous avons déjà mis les séries dans la table. 
  
-sql = 'INSERT INTO TvShows (Series,RootPath,Filename,Season,Episode,tvrageid) VALUES (?,?,?,?,?,?)' +Maintenant, trouver les deux lignes qui disent : 
-    cursor.execute(sql,(showname,root,fl,season,episode,-1))+ 
 +sql = 'INSERT INTO EmissionsTV (Series,CheminRacine,NomFichier,saison,episode,tvrageid) VALUES (?,?,?,?,?,?)' 
 +    cursor.execute(sql,(NomEmission,Racine,fl,saison,episode,-1))
  
 et les remplacer par  et les remplacer par 
  
-sql = 'INSERT INTO Series (SeriesName,Path,SeriesID) VALUES (?,?,?)' +sql = 'INSERT INTO Series (NomSerie,Chemin,SerieID) VALUES (?,?,?)' 
-    cursor.execute(sql,(showname,root,-1))+    cursor.execute(sql,(NomEmission,Racine,-1))
  
 **This will insert the series name (showname), path to the series, and a “-1” as the TvRage id. We use the “-1”  **This will insert the series name (showname), path to the series, and a “-1” as the TvRage id. We use the “-1” 
Ligne 126: Ligne 129:
 Ceci va insérer le nom de la série (showname), le chemin de la série, et un « -1 » comme identifiant de TvRage. Nous utilisons le « -1 » comme un drapeau pour savoir que nous avons besoin d'obtenir l'information de série de TvRage. Ceci va insérer le nom de la série (showname), le chemin de la série, et un « -1 » comme identifiant de TvRage. Nous utilisons le « -1 » comme un drapeau pour savoir que nous avons besoin d'obtenir l'information de série de TvRage.
  
-Ensuite, nous allons retravailler la routine WalkTheDatabase pour alimenter ces séries pour lesquelles nous n'avons pas d'informations (SeriesID = -1) et mettre à jour ce dossier.+Ensuite, nous allons retravailler la routine ParcourirBase pour alimenter ces séries pour lesquelles nous n'avons pas d'informations (SeriesID = -1) et mettre à jour ce dossier.
  
-Modifiez la chaîne de requête de +Modifiez la chaîne de requête de :
  
-sqlstring = "SELECT DISTINCT series FROM TvShows WHERE tvrageid = -1"+sqlstring = "SELECT DISTINCT series FROM EmissionsTV WHERE tvrageid = -1"
  
-en+en :
  
-sqlstring = "SELECT pkid,SeriesName FROM Series WHERE SeriesID = -1"+sqlstring = "SELECT pkid,NomSerie FROM Series WHERE SerieID = -1"
  
 **This will create a result-set that we can then use to query TvRage for each series. Now find/replace the following two lines **This will create a result-set that we can then use to query TvRage for each series. Now find/replace the following two lines
Ligne 150: Ligne 153:
 searchname = string.capwords(x[1]," ")** searchname = string.capwords(x[1]," ")**
  
-Cela va créer un ensemble de résultats que nous pourrons ensuite utiliser pour interroger TvRage pour chaque série. Maintenant, trouver / remplacer les deux lignes suivantes :+Cela va créer un ensemble de résultats que nous pourrons ensuite utiliser pour interroger TvRage pour chaque série. Maintenant, trouver/remplacer les deux lignes suivantes :
  
-seriesname = x[0]+NomSerie = x[0]
  
 searchname = string.capwords(x[0]," ") searchname = string.capwords(x[0]," ")
  
-par+par :
  
 pkid = x[0] pkid = x[0]
  
-seriesname = x[1]+NomSerie = x[1]
  
 searchname = string.capwords(x[1]," ") searchname = string.capwords(x[1]," ")
Ligne 179: Ligne 182:
 Which will be a new routine we will create in a moment.** Which will be a new routine we will create in a moment.**
  
-Nous allons utiliser le PKID pour la déclaration de mise à jour. Ensuite, nous devrons modifier l'appel à la routine UpdateDatabase pour inclure le PKID.+Nous allons utiliser le PKID pour la déclaration de mise à jour. Ensuite, nous devrons modifier l'appel à la routine MettreAJourBase pour inclure le PKID.
  
-Modifiez la ligne+Modifiez la ligne :
  
-UpdateDatabase(seriesname,id)+MettreAJourBase(NomSerie,id)
  
-en +en : 
-    UpdateDatabase(seriesname,id,pkid)+    MettreAJourBase(NomSerie,id,pkid)
  
-et changez la ligne+et changez la ligne :
  
-    GetShowStatus(seriesname,id)+    RecupereEtatEmission(NomSerie,id
 + 
 +en : 
 + 
 +    RecupererDonneesEmission(NomSerie,id,pkid)
  
-en 
-    GetShowData(seriesname,id,pkid) 
 qui sera une nouvelle routine ; nous allons la créer dans un instant.     qui sera une nouvelle routine ; nous allons la créer dans un instant.    
          
Ligne 205: Ligne 210:
 def UpdateDatabase(seriesname,id,pkid):** def UpdateDatabase(seriesname,id,pkid):**
  
-Ensuite, modifiez la définition de la routine de UpdateDatabase de :+Ensuite, modifiez la définition de la routine de MettreAJourBase de :
  
-def UpdateDatabase(seriesname,id):+def MettreAJourBase(NomSerie,id):
  
-à+à :
  
-def UpdateDatabase(seriesname,id,PKID):+def MettreAJourBase(NomSerie,id,PKID):
  
 **Next, we need to change the query string from **Next, we need to change the query string from
Ligne 223: Ligne 228:
 Ensuite, nous devons changer la chaîne de requête de : Ensuite, nous devons changer la chaîne de requête de :
  
-sqlstring = 'UPDATE tvshows SET tvrageid = ' + id + ' WHERE series = "'seriesname + '"'+sqlstring = 'UPDATE EmissionsTV SET tvrageid = ' + id + ' WHERE Series = "'NomSerie + '"'
  
-à+en :
  
-sqlstring = 'UPDATE Series SET SeriesID = ' + id + ' WHERE pkID = %d' % pkid+sqlstring = 'UPDATE Series SET SerieID = ' + id + ' WHERE pkID = %d' % pkid
  
 **Now we need to create the GetShowData routine (top). We’ll grab the information from TvRage and insert it into the Series table. **Now we need to create the GetShowData routine (top). We’ll grab the information from TvRage and insert it into the Series table.
Ligne 233: Ligne 238:
 Just as a memory refresher, we are creating an instance of the TvRage routines and creating a dictionary that holds the information on our series. We will then create variables to hold the data for updating the table (above).** Just as a memory refresher, we are creating an instance of the TvRage routines and creating a dictionary that holds the information on our series. We will then create variables to hold the data for updating the table (above).**
  
-Maintenant, nous devons créer la routine GetShowData (ci-dessus). Nous allons obtenir les informations de TvRage et les insérer dans la table Séries.+Maintenant, nous devons créer la routine RecupererDonneesEmission (ci-dessus). Nous allons obtenir les informations de TvRage et les insérer dans la table Series.
  
-Comme aide-mémoire : nous créons une instance des routines de TvRage et un dictionnaire qui contient les informations sur notre série. Nous allons ensuite créer des variables pour contenir les données de mise à jour du tableau (ci-dessus).+En guise d'aide-mémoire : nous créons une instance des routines de TvRage et un dictionnaire qui contient les informations sur notre série. Nous allons ensuite créer des variables pour contenir les données de mise à jour du tableau (ci-dessus).
  
 **Remember that Genres come in as subelements and contain one or many genre listings. Luckily when we coded the TvRage routines, we created a string that holds all the genres, no matter how many are returned, so we can just use the genre string: **Remember that Genres come in as subelements and contain one or many genre listings. Luckily when we coded the TvRage routines, we created a string that holds all the genres, no matter how many are returned, so we can just use the genre string:
Ligne 248: Ligne 253:
  
 Rappelez-vous que Genres vient en tant que sous-élément et contient une ou plusieurs listes de genres. Heureusement, quand nous avons codé les routines de TvRage, nous avons créé une chaîne qui contient tous les genres, peu importe combien sont retournés ; nous pouvons ainsi tout simplement utiliser la chaîne de caractères genre : Rappelez-vous que Genres vient en tant que sous-élément et contient une ou plusieurs listes de genres. Heureusement, quand nous avons codé les routines de TvRage, nous avons créé une chaîne qui contient tous les genres, peu importe combien sont retournés ; nous pouvons ainsi tout simplement utiliser la chaîne de caractères genre :
-genres = dict['Genres'] 
-runtime = dict['Runtime'] 
- 
-network = dict['Network'] 
- 
-airday = dict['Airday'] 
  
-airtime = dict['Airtime']+genres = dict['Genre'
 +runtime = dict['Duree'
 +network = dict['Reseau'
 +airday = dict['JourDiffusion'
 +airtime = dict['HoraireDiffusion']
  
 **Finally, we create the query string to do the update (bottom). Again, this should all be on one line, but I’ve broken it up here to make it easy to understand. **Finally, we create the query string to do the update (bottom). Again, this should all be on one line, but I’ve broken it up here to make it easy to understand.
Ligne 265: Ligne 268:
 That is all for this time. Next time, we’ll continue as I laid out at the beginning of the article. Until next time, Enjoy.** That is all for this time. Next time, we’ll continue as I laid out at the beginning of the article. Until next time, Enjoy.**
  
-Enfin, nous créons la chaîne de requête pour faire la mise à jour (en bas). Encore une fois, tout cela doit être sur une seule ligne, mais je l'ai cassé ici pour la rendre facile à comprendre.+Enfin, nous créons la chaîne de requête pour réaliser la mise à jour (en bas). Encore une fois, tout cela doit être sur une seule ligne, mais je l'ai cassée ici pour la rendre facile à comprendre.
  
 La  partie {number} (à titre d'information) est similaire à l'option de formatage « %s ». Cela crée notre chaîne de requête en remplaçant le {number} avec les données réelles que nous voulons. Puisque nous avons déjà défini tous ces champs comme texte, nous devons utiliser les guillemets doubles (") pour encadrer les données ajoutées. La  partie {number} (à titre d'information) est similaire à l'option de formatage « %s ». Cela crée notre chaîne de requête en remplaçant le {number} avec les données réelles que nous voulons. Puisque nous avons déjà défini tous ces champs comme texte, nous devons utiliser les guillemets doubles (") pour encadrer les données ajoutées.
issue75/python.1387302308.txt.gz · Dernière modification : 2013/12/17 18:45 de auntiee