Este placar foi feito para as etapas regional e nacional da Maratona de Programação da SBC.
Pré-requisitos:
- Se você está no Ubuntu 20.04, deve instalar o build-essential, as libs do openssl e o pkg-config:
sudo apt-get install build-essential libssl-dev pkg-config
- Instale o Rust
- Instale o
cargo-make
:
cargo install cargo-make
Clone este repositório:
git clone https://github.com/wuerges/maratona-animeitor-rust
cd maratona-animeitor-rust
Compile e rode:
cargo make build_release
cargo run --release --bin simples -p lib-server <porta_tcp> <url_do_placar>
O repositório contém um exemplo, que pode ser usado para testes:
python -mhttp.server --directory lib-server/test/
cargo make build_release
cargo run --release --bin simples -p lib-server 3030 http://0.0.0.0:8000/webcast_1573336220.zip
Os parâmetros necessários para rodar são a porta HTTP e a URL disponibilizada pelo BOCA.
O programa também suporta a leitura dos arquivos do webcast direto de um arquivo, se desejado:
cargo make build_release
cargo run --release --bin simples -p lib-server 3030 lib-server/test/webcast_jones.zip
A partir deste momento, o placar e os runs ficarão disponíveis nas URLs que o programa mostrar:
Maratona Rustreimator rodando!
-> Runs em http://localhost:3030/seed/runspanel.html
-> Placar automatizado em http://localhost:3030/seed/automatic.html
-> Placar interativo em http://localhost:3030/seed/stepping.html
-> Timer em http://localhost:3030/seed/timer.html
-> Painel geral em http://localhost:3030/seed/everything.html
-> Reveleitor em http://localhost:3030/seed/reveleitor.html?secret=vYZgSm
Estas urls podem ser acessados no navegador, ou incluídas no OBS, através do browser incluso.
O placar e os runs podem ser customizados usando CSS, através do arquivo static/styles.css.
O rustreimeitor foi desenvolvido para apoiar a Maratona de Programação da SBC,
e contém um arquivo de configuração específico para a maratona: src/config.rs
.
Neste arquivo é possível declarar as sedes da prova.
Se o Rustreimeitor está usando na mesma máquina do banco de dados do BOCA, ele é capaz de acessar os dados do contest direto do banco (postgresql).
Para isso, é necessário:
- Se você está no Ubuntu, instalar as libs do postgresql:
sudo apt-get install libpq-dev
- Configurar a string de acesso do banco, que está no arquivo
.env
O arquivo vem configurado com o banco, senha e usuários padrão do BOCA:
DATABASE_URL=postgres://bocauser:boca@localhost/bocadb
- Descobrir os IDs do contest e do site do contest a mostrar o placar.
Na maioria dos casos, estes valores são 1 e 1.
- Compilar e rodar o turbineitor:
O formato de execução é
cargo make build_release
cargo run -p turbineitor <porta http> <contest id> <site id>
Na maioria dos casos o comando executado é este abaixo:
cargo make build_release
cargo run -p turbineitor 3030 1 1