{"id":27424080,"url":"https://github.com/cumbucadev/cinemaempoa","last_synced_at":"2025-04-14T11:09:24.495Z","repository":{"id":191071392,"uuid":"683864905","full_name":"cumbucadev/cinemaempoa","owner":"cumbucadev","description":"Site que agrega filmes em cartaz em algumas das diversas salas de cinema de Porto Alegre.","archived":false,"fork":false,"pushed_at":"2024-11-08T23:13:00.000Z","size":42058,"stargazers_count":34,"open_issues_count":37,"forks_count":16,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-14T11:09:03.318Z","etag":null,"topics":["flask","hacktoberfest","movies","python3","scraping"],"latest_commit_sha":null,"homepage":"https://cinemaempoa.com.br","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cumbucadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-27T23:54:48.000Z","updated_at":"2025-03-27T16:26:25.000Z","dependencies_parsed_at":"2023-08-28T01:25:56.963Z","dependency_job_id":"96ec5798-d849-4b7c-8f21-4063cf43c5a9","html_url":"https://github.com/cumbucadev/cinemaempoa","commit_stats":null,"previous_names":["guites/cinemaempoa","cumbucadev/cinemaempoa"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cumbucadev%2Fcinemaempoa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cumbucadev%2Fcinemaempoa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cumbucadev%2Fcinemaempoa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cumbucadev%2Fcinemaempoa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cumbucadev","download_url":"https://codeload.github.com/cumbucadev/cinemaempoa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868766,"owners_count":21174758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","hacktoberfest","movies","python3","scraping"],"created_at":"2025-04-14T11:09:23.720Z","updated_at":"2025-04-14T11:09:24.488Z","avatar_url":"https://github.com/cumbucadev.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CINEMA EM POA\n\nCINEMA EM POA é um portal agregador de filmes das casas de cinema de Porto Alegre.\n\nEstá rodando em \u003chttps://cinemaempoa.com.br\u003e.\n\n![Home page do site - b4252b9c824a4ba5d068e40144ea8d7d6c79a74f](README/b4252b9c824a4ba5d068e40144ea8d7d6c79a74f.png)\n\nO conteúdo é agregado realizando _web scrapping_ em quatro diferentes sites:\n\n- [CineBancários](http://cinebancarios.blogspot.com/?view=classic)\n- [Cinemateca Paulo Amorim](https://www.cinematecapauloamorim.com.br)\n- [Cinemateca Capitólio](http://www.capitolio.org.br)\n- [Sala Redenção](https://www.ufrgs.br/difusaocultural/salaredencao/)\n\nO projeto encoraja contribuições (veja [Contribuições](#contribuicoes)).\n\n## Desenvolvimento\n\nO projeto é composto de dois módulos: `scrapers/`, que contém a lógica para coleção de dados e `flask_backend/`, onde fica o código do portal.\n\nO projeto foi desenvolvido em Python 3.10 e funciona com qualquer versão superior.\n\nA instalação recomendada é usando um [ambiente virtual (venv)](https://docs.python.org/3/library/venv.html).\n\n    python3 -m venv .venv\n    source .venv/bin/activate\n    pip3 install -r requirements.txt\n\nO banco de dados utilizado é o [sqlite3](https://www.sqlite.org/).\n\nApós fazer suas alterações, rode os comandos abaixo no seu terminal para validar e formatar o código:\n\n```bash\nruff check # roda o linter para código python\nruff format # roda o formatter para código python\ndjlint flask_backend/templates --lint --profile=jinja # roda o linter para os arquivos .html\ndjlint --reformat flask_backend/templates --format-css --format-js # roda o formatter para os arquivos .html\n```\n\nOpcionalmente, o [pre-commit](https://pre-commit.com/) pode automatizar a formatação do código quando você rodar um `git commit`.\n\nPara utilizá-lo, instale com:\n\n    pre-commit install\n\n### Rodando o projeto\n\nPara rodar o portal, você vai precisar de três comando (todos rodados a partir da raíz do projeto):\n\n    flask --app flask_backend init-db # inicializa as tabelas no banco de dados\n    flask --app flask_backend seed-db # optional: popula o banco com dados iniciais\n    flask --app flask_backend run --debug # inicia o projeto em modo desenvolvimento\n\nO projeto vai rodar em \u003chttp://localhost:5000\u003e.\n\nSe você rodou o comando para popular o banco de dados, vai ter um usuário admin criado com login: cinemaempoa e senha: 123123.\n\nVocê pode fazer login via \u003chttp://localhost:5000/auth/login\u003e.\n\n### Utilizando os scrappers\n\nOs scrappers podem ser disparados através da interface web na URL \u003chttp://127.0.0.1:5000/screening/import\u003e, clicando no botão \"Fazer Scrapping dos cinemas selecionados\".\n\nAlternativamente, os scrappers também podem ser rodados via linha de comandos, com o script\n\n    ./cinemaempoa.py -h\n\n    usage: cinemaempoa [-h] [-b] [--deploy] [--date DATE] [-r ROOMS [ROOMS ...] | -j JSON]\n\n    Grab the schedule for Porto Alegre's finest features\n\n    options:\n    -h, --help            show this help message and exit\n    -b, --build           Builds scrapped json as an html file\n    --deploy              Saves generated html at docs/index.html - saves the old index file in YYYY-MM-DD.html format\n    --date DATE           Runs the scrapper as if the current date is the given YYYY-MM-DD value\n    -r ROOMS [ROOMS ...], --rooms ROOMS [ROOMS ...]\n                            Filter specific rooms. Available: capitolio, sala-redencao, cinebancarios, paulo-amorim\n    -j JSON, --json JSON  JSON filepath to build index.html from\n\nPara disparar os scrappers e conseguir os filmes em cartaz em formato json (que pode ser importado no portal), rode o comando com a flag `r`, listando as salas de cinema desejadas, e direcione a saída para um arquivo.\n\n    ./cinemaempoa.py -r capitolio sala-redencao cinebancarios paulo-amorim \u003e import.json\n\nVocê pode inspecionar o arquivo `import.json` resultante para entender melhor a estrutura de saída dos scrappers.\n\n### Importando dados no portal\n\nCaso você tenha rodado os scrappers via linha de comando, você vai precisar importar o arquivo .json resultante no portal.\n\nApós logar, vá para a página \u003chttp://localhost:5000/screening/import\u003e.\n\nLá, selecione o arquivo gerado na etapa anterior e clique em **Enviar**.\n\nAs sessões importadas vão estar disponíveis na home.\n\n\u003ch2 id=\"contribuicoes\"\u003eContribuições\u003c/h2\u003e\n\nVeja nossos [issues](https://github.com/guites/cinemaempoa/issues) pra entender o que está sendo feito no projeto.\n\nImplementações mais simples estão marcadas com [good first issue](https://github.com/guites/cinemaempoa/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).\n\n## Deploy (produção)\n\nAtualmente o projeto (em \u003chttps://cinemaempoa.com.br\u003e) está hospedado em uma máquina virtual no [hetzner](https://www.hetzner.com/).\n\nOs arquivos usados para o deployment são:\n\n- .env (deve ser criado a partir do example.env).\n- docker-compose.production.yml\n- Dockerfile.prod\n\nA cada novo merge no branch principal, eu entro na máquina virtual, puxo as alterações e depois reinicio o servidor.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcumbucadev%2Fcinemaempoa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcumbucadev%2Fcinemaempoa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcumbucadev%2Fcinemaempoa/lists"}