Ruina Is Not an Agendator
Um script feito em Python para automaticamente agendar suas refeições nos restaurantes universitários da UFSM.
Ruína
a diariamente as 7 horas da manhã utilizando o GitHub Actions.
Ele lê seu cronograma definido no arquivo config.yaml e, por meio do aplicativo da UFSM, agenda todas as refeições
programadas para o dia posterior. Além disso, sempre que ocorrer algum erro durante os agendamentos, o GitHub
mandará um e-mail para você avisando que o script falhou.
- Crie um fork desse repositório e, dentro dele, siga as instruções seguintes.
- Edite o arquivo
config.yamlpara se adequar ao seu cronograma (veja Configuração). - Dentro da aba
Settings, seçãoSecret and Variablese itemActions, adicione duas secrets: - Dentro da aba
Actions, clique em ativar workflows.
- Depois, ainda dentro dessa aba, clique em
Ruinae ativar.
- Pronto, a partir de agora, Ruína irá executar diariamente e agendar as suas refeições do dia seguinte. Você pode ver as logs e
executá-la manualmente na aba
Actions.
Por favor, sempre que não for almoçar, cancele o agendamento ou disponibilize a refeição.
A configuração é feita a partir da edição do arquivo config.yaml que contém as seguintes opções:
⚠️ Não é recomendado alterar as configurações dessa seção. As informações padrões foram obtidas a partir da engenharia reversa do aplicativo UFSMDigital.
app: O nome do aplicativo realizando o log in.device-id: O identificador único do dispositivo.device-info: Informações sobre o dispositivo, incluindo o tipo e o sistema operacional.message-token: Uma constante que não descobri a utilidade.
A seção de schedules permite você definir uma lista de cronogramas para diferentes dias da semana.
Cada cronograma consiste nas seguintes opções:
weekday: O dia da semana para o cronograma (por exemplo, "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")restaurant: O restaurante associado ao agendamento (1 para o RU I e 2 para o RU II).vegetarian: Se o agendamento será com a opção vegetariana (true ou false).coffee: Se o agendamente inclui o café da manhã (true ou false).lunch: Se o agendamento inclui o almoço (true ou false).dinner: Se o agendamento inclui a janta (true ou false).
Obrigado, @guikage pela ideia de nome.
Desenvolvido com ☕ por @jaimeadf para propósitos educacionais.
