# -*- coding: utf-8 -*-
"""
Created on Mon Aug 21 13:54:39 2017
@author: alice
"""
import shelve
import pickle
class film():
def __init__(self, _i, _idN, _date, _nom, _acteurs, _realisateur, _duree, _synopsis, _pays, _annee, _youtube, _couleur):
"""ceci est une aide"""
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
def blog(self):
res = u'
\
\
Durée :'
res += self.duree
if self.couleur:
res += u'
Couleur'
else:
res += u'
Noir et blanc'
res += u'
Pays :' + self.pays
res += u'
Année :' + str(self.annee)
res += u'
Avec :' + strListe(self.acteurs)
res += u'
Synopsis : ' + self.synopsis + '
'
res += u"
"
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'
Et pour résumer :
Rendez-vous le ' + self.date
res += u', 20h30
en salle Dussane, au 45 rue ' + "d'Ulm
" + 'pour voir et revoir
'
res += self.nom + u'
de ' + self.realisateur
res += u"
"
return res
def calendrier(self):
res = ' \n \n
'
res += '
'
res += '
' + self.date +', 20h30
'
res += self.nom + ' de ' + self.realisateur +' (' +str(self.annee) + ')
'
res += self.duree + ' . '
if self.couleur:
res += "Couleurs"
else:
res += "Noir & Blanc"
res += " . " + self.pays + ".
Avec : " + strListe(self.acteurs) + ".
"
res += '' + self.synopsis + '
'
res += '
Retour en haut de page'
res += "
\n \n
"
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"
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"
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 = ' \n \t \n \n
\n \t \t'
res += ' \n \t \t'
res += '
[cine-info] ' + self.nom + ' de ' + self.realisateur + ' (' + self.date + ', 20h30) \n \t'
res += ' \n \t \n \t \t
'
res += '\n \t \t \t \n \t\t\t'
res += '
\n \n
'
res += '\n \t\t\t\t\t \n\t\t\t\t
\n'
res += '
Bonjour à toutes et à tous,
\n
Ce mail contient du HTML. Si vous ne pouvez pas le lire, allez sur notre site : http://www.cineclub.ens.fr
'
res += '\n
Retrouvez-nous en salle Dussane ' + self.date + ", 20h30 ! Comme d'habitude, l'entrée coûte 4€, 3€ 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.
"
res += '
'
res += '
'+ self.nom +' \n de ' + self.realisateur + '
\n \n
'
res += '
Durée : '+ self.duree + '.
\n'
if self.couleur:
res +'
Couleur.
\n'
else:
res += '
Noir et blanc <\br> \n'
res += '
Pays : ' + self.pays + '
\n'
res += '
Année : ' + str(self.annee) + '.
\n'
res += '
Avec : ' + strListe(self.acteurs) + '...
\n'
res += '
Rapide synopsis : ' + self.synopsis + '
'
res += '
Plus d\'informations (bande-annonce, etc.) sur notre blog !'
res += '
Vous ne pouvez pas venir à cette séance mais vous aimeriez aller au ciné-club une prochaine fois ?
'
res += 'Découvrez le calendrier de nos prochaines séances.
'
res += '
À très bientôt en salle Dussane !
L\'équipe du ciné-club
http://cineclub.ens.fr
'
res += '
Toutes les séances du ciné-club se déroulent en salle Dussane, au 45 rue d\'Ulm, Paris.
Métro : Luxembourg, Place Monge. Bus: Feuillantine.
'
res += '
Vous ne souhaitez plus recevoir notre newsletter ? Désinscrivez-vous
'
res += '
'
return res
def strListe(liste):
res = ""
for l in liste[:-1]:
res += l +', '
if liste != []:
res += liste[-1]
return res
i = 38
def nouveauFilmIn(dicFilms, index = {}):
if index == {}:
with open('index', 'rb') as index:
pickler = pickle.Unpickler(index)
dicIndex = pickler.load()
i = pickler.load() + 1
ind = False
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] = idN
dicFilms[idN] = seance
if not(ind) :
with open('index', 'wb') as index:
pickler = pickle.Pickler(index)
pickler.dump(dicIndex)
pickler.dump(i)
return seance
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
def nouveauFilm():
with shelve.open('filmsShelve') as db:
seance = nouveauFilmIn(db)
return seance
def updateFilm(key):
with shelve.open('filmsShelve') as db:
seance = updateFilmIn(db, key)
return seance
def getIndex():
with open('index', 'rb') as index:
pickler = pickle.Unpickler(index)
dicIndex = pickler.load()
return dicIndex
def getFilms():
res = {}
with shelve.open('filmsShelve') as db:
for f in db:
res[f] = updateFilm(db[f])
return res
def setFilms(dico):
with shelve.open('filmsShelve', writeback = True) as db:
for f in dico:
db[f] = updateFilm(dico[f])
def correctFilm(a):
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
def correctShelf():
with shelve.open('filmsShelve') as db:
for f in db:
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
#print(enqSex.mail())