-
Notifications
You must be signed in to change notification settings - Fork 0
/
movies.py
184 lines (144 loc) · 5.14 KB
/
movies.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
#--------------------------------
import pickle
import users
#================================
# Printa as opções de filmes
def opcoes(films_dict):
print("\n######### TEMOS ##########\n")
# Forma otimizada de printar elementos de dicionários dentro de dicionários
keys = films_dict.values()
for k in keys:
print(f"Título: {k['title']} ({k['release']})")
print(f"[COD.]: {k['code']}")
print("\n===========================")
# Verfica se tem filmes ou não
def tem_filme(films_dict):
if not films_dict:
print(" _____________________________ ")
print("| NÃO HÁ FILMES CADASTRADOS |")
print(" =---------------------------= ")
input("Tecle ENTER para continuar...\n\n")
return False
else:
return True
""""""
# CADASTRAR Filmes
""""""
def register():
print("\n#######################################")
print("|-(se tiver + de 1, separe por vírgula)--")
print("|")
title = input("| TÍTULO do filme: ")
genre = input("| GÊNERO(s): ")
director = input("| DIRETOR(es): ")
release = input("| DATA de Lançamento: ")
class_ind = input("| Classificação Indicativa: ")
duration = int(input("| Duração (em min): "))
code = input("(Código do Filme): ").upper()
genres = genre.split(", ")
directors = director.split(", ")
movie = {
'code': code,
"title": title,
"genre": genres,
"director": directors,
"release": release,
"class_ind": class_ind,
"duration": duration
}
return movie
""""""
# BUSCAR
""""""
def search(films_dict):
ha_filme = tem_filme(films_dict)
if (ha_filme):
print("\n###############################")
s = input("Digite o código do filme: ").upper()
print("========- RESULTADO -=======\n")
for key in films_dict.keys():
if (s in key):
print(f"1: {films_dict[s]['title']} | Lançamento: {films_dict[s]['release']}\n")
else:
print(" Não há filmes cadastrados com esse título\n")
print("################################\n")
input("Tecle ENTER para continuar...\n\n")
""""""
# ATUALIZAR
""""""
# if (users.verifica_cargo())
def update_film(films_dict):
ha_filme = tem_filme(films_dict)
if (ha_filme):
opcoes(films_dict)
print(" # - Qual filme atualizar [dgt o código]")
print("(0) - Cancelar")
filme = input("-> : ").upper()
if (filme) in films_dict.keys():
print("\n#######################################")
print(f" ... Atualizando {filme} ...")
print("Para atualizar TUDO, digite [T]")
print("P/ atualizar só uma chave específica, dgt em inglês")
print("#######################################")
upd = input("-> ")
if upd.upper()=="T":
movie = register()
movie['code'] = filme
return movie
elif upd in films_dict[filme].keys():
print("|-(se tiver + de 1, separe por vírgula)--")
print("|")
print(f"New {upd}: ", end="")
if upd!="duration":
val = input()
else:
val = int(input())
films_dict[filme][upd] = val
movie = films_dict[filme]
return movie
else:
print("\n => Update Cancelado!")
else:
print("\n => Update Cancelado! (ou não tem filmes com esse título)")
input("Tecle ENTER para continuar...\n\n")
""""""
# REMOVER
""""""
def delete_film(films_dict):
ha_filme = tem_filme(films_dict)
if (ha_filme):
# Printa as opções de filmes
print("\n########################")
print("Qual filme quer deletar:")
print("........................", end="")
opcoes(films_dict)
option = input("[Dgt o título] -> ").upper()
del films_dict[option]
# "Deletando" do Banco
arqFilmes = open('database/movies_db.dat', 'wb')
pickle.dump(films_dict, arqFilmes)
arqFilmes.close()
print("= Filme Deletado com Sucesso!")
input("Tecle ENTER para continuar...\n\n")
""""""
# VER
""""""
def see_all(films_dict):
ha_filme = tem_filme(films_dict)
if (ha_filme):
keys = films_dict.values()
for fk in (keys):
print(f"\n== • Filme [{fk['code']}]: {(fk['title']).upper()} • ==\n")
print("GÊNERO(s): \n•", end="")
for gnr in fk['genre']:
print("", gnr, end=" -")
print()
print("DIRETOR(es):", end="")
for dir in fk['director']:
print("", dir, end=" -")
print("\nDATA DE LANÇAMENTO: ", fk["release"])
print("CLASSIF. INDICATIVA: ", fk["class_ind"])
hora = (fk["duration"])//60
minutos = (fk["duration"])%60
print(f"DURAÇÃO: {hora}h {minutos}min\n--------------------------")
input("Tecle ENTER para continuar...\n\n")