O sesc.py é um script em python que mostra o cardápio para o dia atual ou da semana dos restaurantes do SESC.
Ele busca um novo cardápio no site do SESC, baixa esse cardápio em PDF, processa esse arquivo e, através de expressões regulares, extrai os cardápios para cada dia. Os dados são salvos em um arquivo JSON para que novas consultas possam ser feitas instantaneamente e sem acesso a internet.
Esse é um programa independente, não possuindo nenhuma relação oficial com o SESC nem tenho a permissão de uso do nome ou da marca.
Basta executar o script em linha de comando:
$ python sesc.py
Ou você pode dar permissões de execução ao script: $ chmod +x sesc.py $ ./sesc.py
Ou, se você colocou o script no path:
$ sesc.py
Se você utiliza Ubuntu, pode colocar o script em ~/bin
, pois essa pasta também está no path do sistema.
Para ver as opções disponíveis utiliza a opção -h
$ sesc.py -h
Você pode configurar a execução do sesc.py através de opções na linha de comando:
Atenção: Para que funcione o recurso de aviso por e-mail, é necessário que as três opções -
guser
,gpass
enotify
- tenham sido configuradas. Além disso,gpass
não é a senha normal de usuário do e-mail mas uma senha de aplicativo criada para esse fim.
É possível agendar o script para exibir, em uma janela, o cardápio do dia em horários específicos. Por exemplo, para exibir o cardápio todos os dias da semana as 11 horas da manhã:
Usando o cron no Linux:
$ crontab -e
Adicione no final do arquivo a linha:
0 11 * * 1-5 export DISPLAY=:0 && /usr/bin/python /caminho/para/onde/está/o/script/sesc.py -g
No Windows também é possível agendar a execução do script utilizando o Agendador de tarefas
Como o pdfminer é escrito inteiramente em python (compatível com python 2.4 ou mais recente) essa solução deve funcionar em qualquer máquina com um interpretador python instalado.
O comportamento padrão do sesc.py pode ser alterado modificando-se as variáveis no início do script:
default_unit = 'pinheiros'
default_home = join(expanduser("~"),'.sesc')
default_keep = False
cache_filename = 'cache.json'
Para se adicionar novas unidades, basta colocá-las no dicionário sesc_unit
.
sesc_unit = {
'pinheiros' : {
'url' : 'http://www.sescsp.org.br/sesc/busca/index.cfm?unidadesdirector=57#',
'pdf' : r'(?i).*?card.+?pio.*?',
'entries' : r'^.?\d\d\s•.+?(?=\n\n)',
'day' : r'(?P<day>\d\d?)\s',
'menus' : r'brasileirinho\s*?\n((?:.|\n)+?)\nfog.*?o\scultural\s*\n((?:.|\n)+)'
}
}
day
na expressão, do qual será extraído o dia;Atenção: Use parênteses para capturar os grupos nas expressões regulares que contêm a informação desejada. O script usará esses grupos para extrair os dados.
Para mais informações, reportar erros ou obter novas versões do script acesse a página do projeto.