-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcomando_buscar_videos.py
42 lines (34 loc) · 1.94 KB
/
comando_buscar_videos.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
import comando_buscar_videos_IMP
def processa(ses, cmd_args):
"""
Esta função é chamada quando o usuário aperta o botão "Buscar" em
uma formulário de busca de vídeos (vide
{html_form_buscar_videos.gera}). Ela procura na base de dados os
vídeos cujos atributos casam os dados especificados em {cmd_args}.
O resultado será uma página com a lista dos vídeos encontrados, em
forma resumida. Vide {html_bloco_lista_de_videos.gera}.
O parâmetro {ses} deve ser {None} (indicando que o leitor não está
logado), ou o objeto {obj_sessao.Classe} de uma sessão atualmente aberta.
O parâmetro {cmd_args} deve ser um dicionário que contém os parâmetros
da busca, que o usuário preencheu no formulário. Devem ser um
subconjunto dos atributos de um objeto vídeo ({obj_video.Classe}) ---
por exemplo, {{'autor': "U-00000007", 'data': "2024", 'titulo':
"bananas"}}. O dicionário {cmd_args} pode ter também um campo 'video'
com o ID de um vídeo específico.
Note que atributos de {obj_video.Classe} cujos valores são objetos
(como 'autor') devem ser representados em {cmd_args} pelos seus
identificadores.
Atributos de {obj_video.Classe} que tem valor {None} em
{cmd_args} (ou estão omitidos) serão ignorados na busca.
No casos dos campos 'video', 'autor' e 'data' de {cmd_args}, a busca
será feita pelo valor exato. Nos caso do campo 'titulo', será feita
uma busca por valor aproximado. Especificamente, será usado o operador
SQL "LIKE" com argumento "%{tit}%" onde {tit} é o valor de
{cmd_args['titulo']} Quaisquer caracteres "%" e "_" em {tit} serão
interpretados como nesse operador SQL. A busca vai ignorar a distinção
maiúsculas e minúsculas.
Se houver erros nos argumentos, ou a busca não encontrar nenhum vídeo,
devolve o formulário de buscar vídeos com os campos {cmd_args}
preenchidos, mais os avisos de erro.
"""
return comando_buscar_videos_IMP.processa(ses, cmd_args)