Skip to content

aitormagan/covid19spainbot

Repository files navigation

Covid 19 Spain Bot

Build Status Coverage Status

Script que publica en Twitter las siguientes estadísticas relacionadas con el SARS-CoV-2:

  • PCR+ y PCR+ en las últimas 24 horas
  • Fallecimientos
  • IA 14 días
  • % Hospitalizados
  • % UCI
  • Vacunaciones

A diferencia de los datos del ministerio, que únicamente da las PCR+ que se ejecutaron y obtuvieron resultado el día anterior, este script comprueba la diferencia de datos entre el reporte del día actual y el anterior, para notificar el número total de nuevos positivos del día.

Links:

Ejecución

El repositorio cuenta con tres scripts:

  • main_daily: debe lanzarse de lunes a viernes en intervalos de 5 minutos. Comprueba si se ha publicado el nuevo informe de casos/fallecimientos/hospitalizaciones y en caso positivo actualiza la BBDD y publica los tweets.
  • main_vaccination: debe lanzarse de lunes a viernes en intervalos de 5 minutos. Comprueba si se ha publicado el nuevo informe de vacunación y en caso positivo actualiza la BBDD y publica los tweets.
  • main_weekly: debe lanzarse una única vez los domingos para publicar las estadísticas semanales.

Para planificar la ejecución de ambos scripts puedes hacer uso de cron. En concreto, estas son las expresiones que se están usando para cada uno de los scripts:

  • main_daily y main_vaccination: */5 16-21 * * 1-5 (cada 5 minutos de 16 a 21.55h de lunes a viernes)
  • main_weekly: 0 18 * * 0 (los domingos a las 18.00h)

Ten en cuenta que deben definirse ciertas variables de entorno para lanzar los scripts:

  • API_SECRET: Twitter API Secret (required)
  • API_SECRET_KEY: Twitter API Secret Key (required)
  • ACCESS_TOKEN: Twitter Access Token (required)
  • ACCESS_TOKEN_SECRET: Twitter Access Token Secret (required)
  • INFLUX_HOST: InfluxDB host (not required, default: localhost)
  • GRAFANA_SERVER: Protocol + Host + Port where Grafana server is hosted (not required, default: http://localhost:3000/)

Para la ejecución por tanto, puedes crear unos scripts que defininan dichas variables y lancen los scripts. Por ejemplo:

export API_SECRET="<YOUR_API_SECRET>"
export API_SECRET_KEY="<YOUR_API_SECRET_KEY>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export ACCESS_TOKEN_SECRET="<YOUR_ACCESS_TOKEN_SECRET>"
export INFLUX_HOST="<INFLUX_HOST>"
export GRAFANA_SEVER="<GRAFANA_SERVER>"

python3 <PATH_TO_REPO_FOLDER>/main_daily.py     # Daily
python3 <PATH_TO_REPO_FOLDER>/main_weekly.py    # Weekly

Tests

Puedes ejecutar los tests mediante la ejecución del siguiente comando:

$ tox

Si no tienes instalado tox, puedes instalarlo ejecutando:

$ pip3 install tox