2017-09-23 23:56:09 +02:00
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 21 13 : 54 : 39 2017
@author : alice
"""
2017-09-26 18:22:15 +02:00
import shelve
2017-09-24 00:11:44 +02:00
import pickle
2017-09-23 23:56:09 +02:00
class film ( ) :
2017-09-24 00:11:44 +02:00
def __init__ ( self , _i , _idN , _date , _nom , _acteurs , _realisateur , _duree , _synopsis , _pays , _annee , _youtube , _couleur ) :
2018-01-16 15:05:20 +01:00
""" ceci est une aide """
2017-09-24 00:11:44 +02:00
self . i = _i
self . idN = _idN
self . date = _date
self . nom = _nom
self . acteurs = _acteurs
self . realisateur = _realisateur
self . duree = _duree
self . synopsis = _synopsis
self . pays = _pays
self . annee = _annee
self . youtube = _youtube
self . couleur = _couleur
2017-09-23 23:56:09 +02:00
2017-09-24 00:11:44 +02:00
def blog ( self ) :
res = u ' <div class= " entry-trailer " ><iframe src= " '
res + = self . youtube
res + = u ' " width= " 560 " height= " 315 " frameborder= " 0 " allowfullscreen= " allowfullscreen " ></iframe></div><br /> '
res + = u ' <!-- Commentaire pertinent quelconque vis-à-vis du film --> <div class= " entry-mainblock " > \
< div class = " entry-separator " > < a href = " http://www.cineclub.ens.fr/wp-content/uploads/2017/08/toujoursReveGangster.jpg " > < img class = " alignnone wp-image-1873 size-medium " src = " http://www.cineclub.ens.fr/wp-content/uploads/2017/08/toujoursReveGangster-300x300.jpg " alt = " " width = " 300 " height = " 300 " / > < / a > < / div > \
< div class = " entry-text-info " > < b > Durée < / b > : '
res + = self . duree
if self . couleur :
res + = u ' <br /><b>Couleur</b> '
else :
res + = u ' <br /><b>Noir et blanc</b> '
res + = u ' <br /><b>Pays :</b> ' + self . pays
res + = u ' <br /><b>Année :</b> ' + str ( self . annee )
res + = u ' <br /><b>Avec :</b> ' + strListe ( self . acteurs )
res + = u ' <br /><div class= " entry-text-info " ><strong>Synopsis</strong> : ' + self . synopsis + ' </div> '
res + = u " <br /></div> "
res + = u " Comme d ' habitude, l ' entrée coûte 4 euros, 3 pour les membres du COF et vous avez la possibilité d ' acheter des cartes de 10 places pour respectivement 30 et 20 euros. L ' entrée est gratuite pour les étudiant.e.s invité.e.s. "
res + = u ' <div class= " entry-resume " > Et pour résumer : <div class= " resume-bloc " ><span class= " resume-date " >Rendez-vous le ' + self . date
res + = u ' , 20h30</span><br /><span class= " resume-place " >en salle Dussane, au 45 rue ' + " d ' Ulm</span><br /> " + ' <span class= " resume-see " >pour voir et revoir</span> <br /><span class= " resume-title " > '
res + = self . nom + u ' </span><br /><span class= " resume-director " > de ' + self . realisateur
res + = u " </span><br /></div></div><!-- Balise de commentaire à retirer lors de l ' insertion de l ' analyse " + u ' <div class= " entry-analyse " > '
res + = u " <h2>Proposition d ' analyse</h2>Bientôt…</div>--> "
return res
def calendrier ( self ) :
2017-09-25 20:38:02 +02:00
res = ' <!-- Film # ' + str ( self . i ) + ' --> \n \n <div class= " entry-mainblock " > <div class= " entry-separator " > '
2017-09-24 00:11:44 +02:00
res + = ' <img class= " entry-poster " src= " http://www.cof.ens.fr/cineclub/blogImages/2016-2017/affiche-1-thumbnail200.jpg " alt= " " /></div> '
res + = ' <div class= " entry-text-info " ><br /><br /><b> ' + self . date + ' , 20h30 <br /><i> '
res + = self . nom + ' </i> de ' + self . realisateur + ' ( ' + str ( self . annee ) + ' )</b><br /><br /> '
res + = self . duree + ' . '
if self . couleur :
res + = " Couleurs "
else :
res + = " Noir & Blanc "
res + = " . " + self . pays + " . <br /> Avec : " + strListe ( self . acteurs ) + " .<br/><br/> "
res + = ' <span class= " entry-synopsis " > ' + self . synopsis + ' </span><br/><br/></div> '
res + = ' </div><br/><a style= " float: right; " href= " #haut " >Retour en haut de page</a> '
2017-09-25 20:38:02 +02:00
res + = " <br/> \n \n <!-- END OF POST --><br/> "
2017-09-24 00:11:44 +02:00
return res
def bocal ( self ) :
res = " \ centerline { \ date { " + self . date + " , 20h30}} \n "
res + = " \ centerline { Salle Dussane} \n "
res + = " \ centerline { \ emph { \ Large " + self . nom + " }} \n "
res + = " \ centerline { " + self . realisateur + " ( " + str ( self . annee ) + " ) } \n "
res + = " \ medskip \n "
2017-09-26 18:22:15 +02:00
if len ( self . acteurs ) == 1 :
res + = " \ centerline { " + self . acteurs [ 0 ] + " } \n "
if len ( self . acteurs ) > = 2 :
res + = " \ centerline { " + self . acteurs [ 0 ] + ' , ' + self . acteurs [ 1 ] + " } \n "
if len ( self . acteurs ) > 2 :
res + = " \ centerline { " + self . acteurs [ 2 ] + " } \n "
2017-09-24 00:11:44 +02:00
res + = " \ medskip \n "
res + = " \ centerline { \\ textit { " + self . duree + " }} \n \n "
res + = " \ medskip \n "
res + = " \ medskip \n \ centerline { 4~€~/~3~€ COF} \n \ medskip \n \n "
res + = " \ centerline { \ includegraphics[width=5cm] {cine} } \n \n "
res + = " \ medskip \n "
res + = self . synopsis
return res
def mail ( self ) :
res = ' <html> \n \t <head> \n \n <meta http-equiv= " content-type " content= " text/html; charset=utf-8 " > \n \t \t '
res + = ' <style type= " text/css " >p { margin: 0; }</style> \n \t \t '
res + = ' <title>[cine-info] ' + self . nom + ' de ' + self . realisateur + ' ( ' + self . date + ' , 20h30)</title> \n \t '
res + = ' </head> \n \t <body text= " #000000 " bgcolor= " #FFFFFF " > \n \t \t <div style= " font-family: arial,helvetica,sans-serif; font-size: 12pt; color: #000000 " > '
res + = ' \n \t \t \t <style>p { margin: 0; }</style> \n \t \t \t '
res + = ' <div style= " font-family: arial,helvetica,sans-serif; font-size: 12pt; color: #000000 " > \n <style>p { margin: 0; }</style> \n <div style= " font-family: arial,helvetica,sans-serif; font-size: 12pt; color: #000000 " > '
res + = ' \n \t \t \t \t \t <style>p { margin: 0; }</style> \n \t \t \t \t <div style= " font-family: arial,helvetica,sans-serif;font-size: 12pt; color: #000000 " > \n '
res + = ' <p>Bonjour à toutes et à tous,</p> \n <p><i>Ce mail contient du HTML. Si vous ne pouvez pas le lire, allez sur notre site : <a class= " moz-txt-link-freetext " href= " http://www.cineclub.ens.fr " target= " _blank " >http://www.cineclub.ens.fr</a></i></p> '
res + = ' \n <p style= " text-align:justify " >Retrouvez-nous en salle Dussane <b> ' + self . date + " , 20h30</b> ! Comme d ' habitude, l ' entrée coûte <b>4€, 3€</b> pour les membres du COF et vous avez la possibilité d ' acheter des cartes de 10 places pour respectivement 30€ et 20€. L ' entrée est gratuite pour les étudiants invités.<br> "
res + = ' </p> <div style= " border:grey 1px solid; padding:5px; text-align:justify; " > '
res + = ' <center><b><i> ' + self . nom + ' </i></b> \n de <b> ' + self . realisateur + ' <br> \n </b></center> \n <br> '
res + = ' <b>Durée </b>: ' + self . duree + ' .<br> \n '
if self . couleur :
res + ' <b>Couleur</b>. <br> \n '
else :
res + = ' <b>Noir et blanc</b> < \b r> \n '
res + = ' <b>Pays :</b> ' + self . pays + ' <br> \n '
res + = ' <b>Année :</b> ' + str ( self . annee ) + ' .<br> \n '
res + = ' <b>Avec :</b> ' + strListe ( self . acteurs ) + ' ...<br> \n '
res + = ' <b>Rapide synopsis :</b> ' + self . synopsis + ' <br> <br> '
res + = ' <span class= " entry-synopsis " > </span> <br> <center><a href= " http://cineclub.ens.fr " title= " Plus d \' informations (bande-annonce, synopsis, etc.) sur notre blog ! " target= " _blank " >Plus d \' informations (bande-annonce, etc.) sur notre blog !</a></center> '
res + = ' </div> <p style= " text-align:justify " >Vous ne pouvez pas venir à cette séance mais vous aimeriez aller au ciné-club une prochaine fois ?<br> '
res + = ' <a href= " http://cineclub.ens.fr/calendrier " title= " Découvrez le calendrier de nos prochaines séances. " target= " _blank " >Découvrez le calendrier de nos prochaines séances.</a></p> '
res + = ' <p>À très bientôt en salle Dussane !<br> L \' équipe du ciné-club<br> <a href= " http://cineclub.ens.fr " title= " http://cineclub.ens.fr " target= " _blank " >http://cineclub.ens.fr</a></p> '
res + = ' <p>Toutes les séances du ciné-club se déroulent en salle Dussane, au 45 rue d \' Ulm, Paris. <br> Métro : Luxembourg, Place Monge. Bus: Feuillantine.</p> '
res + = ' <p style= " text-align:center " ><small>Vous ne souhaitez plus recevoir notre newsletter ? <a href= " http://www.cineclub.ens.fr/newsletter-desinscription/ " target= " _blank " > Désinscrivez-vous</a></small></p> '
res + = ' </div> </div> </body> </html> '
return res
2017-09-23 23:56:09 +02:00
def strListe ( liste ) :
res = " "
for l in liste [ : - 1 ] :
res + = l + ' , '
2017-09-24 00:11:44 +02:00
if liste != [ ] :
res + = liste [ - 1 ]
2017-09-23 23:56:09 +02:00
return res
2017-09-25 20:38:02 +02:00
i = 38
2017-09-26 18:22:15 +02:00
def nouveauFilmIn ( dicFilms , index = { } ) :
2017-09-25 20:38:02 +02:00
if index == { } :
with open ( ' index ' , ' rb ' ) as index :
pickler = pickle . Unpickler ( index )
dicIndex = pickler . load ( )
i = pickler . load ( ) + 1
ind = False
2017-09-24 00:11:44 +02:00
idN = input ( " identifiant du film ? " )
date = input ( " date de la séance (format mardi JJ MOIS AAAA) " )
nom = input ( " titre ? " )
2017-09-26 17:21:48 +02:00
acteurs = eval ( input ( " acteurs (format [acteur1, acteur2, ..]) ? " ) )
2017-09-24 00:11:44 +02:00
realisateur = input ( " realisateur ? " )
duree = input ( " durée du film ? " )
synopsis = input ( " Donnez ici un synopsis rapide du film " )
pays = input ( " pays de diffusion du film ? " )
annee = input ( " année de sortie du film (format AAAA) ? " )
youtube = input ( " adresse youtube de la bande-annonce ? " )
2017-10-19 13:49:10 +02:00
couleur = eval ( input ( " le film est-il en couleur (format True/False) ? " ) )
2017-09-24 00:11:44 +02:00
seance = film ( i , idN , date , nom , acteurs , realisateur , duree , synopsis , pays , annee , youtube , couleur )
dicIndex [ i ] = idN
dicFilms [ idN ] = seance
2017-09-25 20:38:02 +02:00
if not ( ind ) :
with open ( ' index ' , ' wb ' ) as index :
pickler = pickle . Pickler ( index )
pickler . dump ( dicIndex )
pickler . dump ( i )
2017-09-24 00:11:44 +02:00
return seance
2018-01-16 15:05:20 +01:00
def updateFilmIn ( dicFilms , key , index = { } ) :
if index == { } :
with open ( ' index ' , ' rb ' ) as index :
pickler = pickle . Unpickler ( index )
dicIndex = pickler . load ( )
ind = False
i = dicFilms [ key ] . i
idN = input ( " identifiant du film ? " )
date = input ( " date de la séance (format mardi JJ MOIS AAAA) " )
nom = input ( " titre ? " )
acteurs = eval ( input ( " acteurs (format [acteur1, acteur2, ..]) ? " ) )
realisateur = input ( " realisateur ? " )
duree = input ( " durée du film ? " )
synopsis = input ( " Donnez ici un synopsis rapide du film " )
pays = input ( " pays de diffusion du film ? " )
annee = input ( " année de sortie du film (format AAAA) ? " )
youtube = input ( " adresse youtube de la bande-annonce ? " )
couleur = eval ( input ( " le film est-il en couleur (format True/False) ? " ) )
seance = film ( i , idN , date , nom , acteurs , realisateur , duree , synopsis , pays , annee , youtube , couleur )
dicIndex [ i ] = key
dicFilms [ idN ] = seance
dicFilms . remove ( key )
if not ( ind ) :
with open ( ' index ' , ' wb ' ) as index :
pickler = pickle . Pickler ( index )
pickler . dump ( dicIndex )
pickler . dump ( i )
return seance
2017-09-24 00:11:44 +02:00
2017-09-26 18:22:15 +02:00
def nouveauFilm ( ) :
with shelve . open ( ' filmsShelve ' ) as db :
2017-09-26 18:22:48 +02:00
seance = nouveauFilmIn ( db )
return seance
2017-09-26 18:22:15 +02:00
2018-01-16 15:05:20 +01:00
def updateFilm ( key ) :
with shelve . open ( ' filmsShelve ' ) as db :
seance = updateFilmIn ( db , key )
return seance
2017-09-24 00:19:55 +02:00
def getIndex ( ) :
with open ( ' index ' , ' rb ' ) as index :
pickler = pickle . Unpickler ( index )
dicIndex = pickler . load ( )
return dicIndex
def getFilms ( ) :
2017-09-26 18:22:15 +02:00
res = { }
with shelve . open ( ' filmsShelve ' ) as db :
for f in db :
res [ f ] = updateFilm ( db [ f ] )
return res
2017-09-24 00:11:44 +02:00
2017-09-24 00:19:55 +02:00
def setFilms ( dico ) :
2017-09-26 18:22:15 +02:00
with shelve . open ( ' filmsShelve ' , writeback = True ) as db :
for f in dico :
db [ f ] = updateFilm ( dico [ f ] )
2017-09-24 00:19:55 +02:00
2018-01-16 15:05:20 +01:00
def correctFilm ( a ) :
2017-09-26 17:21:48 +02:00
res = film ( a . i , a . idN , a . date , a . nom , a . acteurs , a . realisateur , a . duree , a . synopsis , a . pays , a . annee , a . youtube , a . couleur )
return res
2018-01-16 15:05:20 +01:00
def correctShelf ( ) :
2017-09-26 18:22:15 +02:00
with shelve . open ( ' filmsShelve ' ) as db :
for f in db :
2018-01-16 15:05:20 +01:00
db [ f ] = correctFilm ( db [ f ] )
def liste ( db ) :
lis = [ ( db [ k ] . i , k ) for k in db . keys ( ) ]
lis = sorted ( lis )
for tup in lis :
k = tup [ 1 ]
print ( k , ' : ' , db [ k ] . nom )
return None
2017-09-26 18:22:15 +02:00
2017-09-26 17:21:48 +02:00
2017-09-24 00:19:55 +02:00
#print(enqSex.mail())
2017-09-24 00:11:44 +02:00