Skip to content

Bot de Telegram para recibir las últimas noticias publicadas en la página web de la Consejería de Educación de la Junta de Andalucía.

Notifications You must be signed in to change notification settings

josejuansanchez/novedades-educacion-andalucia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EducaBot - Bot de Telegram

Bot de Telegram para recibir las últimas noticias publicadas en la página web de la Consejería de Educación de la Junta de Andalucía.

Índice de contenidos

Creación del archivo config.json

Clonamos el repositorio:

git clone https://github.com/josejuansanchez/novedades-educacion-andalucia.git

Accedemos al directorio config:

cd novedades-educacion-andalucia/educabot/config

Creamos un nuevo archivo de configuración con el nombre config.json a partir del archivo de ejemplo config.example.json:

cp config.example.json config.json

Configuración del archivo config.json

Una vez que hemos creado el archivo config.json tenemos que configurar los parámetros de nuestro bot.

  • bot-token: Es el token que Telegram nos devuelve al crear nuestro bot.
  • database: Es la ruta y el nombre de nuestra base de datos sqlite.
  • urls: Es la lista de urls con los feeds RSS que queremos parsear.
{
    "bot-token" : "PUT-YOUR-TELEGRAM-BOT-TOKEN-HERE",

    "database_path" : "database/educabot.sqlite",

    "sources" : [
        {
            "name" : "Alumnado",
            "url" : "http://www.juntadeandalucia.es/educacion/portals/delegate/rss/ced/portalconsejeria/alumnado/-/-/true/AND/true/ishare_noticefrom/DESC/"
        },
        {
            "name" : "Profesorado",
            "url" : "http://www.juntadeandalucia.es/educacion/portals/delegate/rss/ced/portalconsejeria/profesorado/-/-/true/OR/_self/ishare_noticefrom/DESC/"
        },
        {
            "name" : "Familias",
            "url" : "http://www.juntadeandalucia.es/educacion/portals/delegate/rss/ced/portalconsejeria/familia/-/-/true/AND/false/ishare_noticefrom/DESC/"
        },
        {
            "name" : "Centros",
            "url" : "http://www.juntadeandalucia.es/educacion/portals/delegate/rss/ced/portalconsejeria/centro-1/-/-/true/OR/true/cm_modified/DESC/"
        }
    ]
}

Instalación de un entorno virtual con virtualenv

Instalamos virtualenv con pip3:

pip3 install virtualenv

Comprobamos que se ha instalado correctamente:

virtualenv --version

Creación de un entorno virtual con virtualenv

Creamos un entorno virtual para nuestro proyecto:

virtualenv my_virtualenv

Para poder usar nuestro entorno virtual es necesario activarlo:

source my_virtualenv/bin/activate

Para desactivar el entorno virtual ejecutaremos:

deactivate

Instalación de dependencias

Instalamos los paquetes necesarios para trabajar con nuestro proyecto. La lista de paquetes está definida en el archivo requirements.txt:

(my_virtualenv)$ pip3 install -r requirements.txt

Ejecución el bot

Para iniciar el bot ejecutaremos:

(my_virtualenv)$ python3 bot.py

Requisitos para desplegar el bot en Heroku

Instalaremos Heroku CLI para poder crear y administrar aplicaciones en Heroku desde la línea de comandos.

También vamos a necesitar dos archivos especiales: runtime.txt y Procfile.

  • El archivo runtime.txt contiene la versión de python con la que se ejecutará nuestro bot.
python-3.6.4
  • El archivo Procfile contiene el comando que se ejecutará en Heroku para iniciar el bot.
bot: cd educabot && python3 bot-heroku.py

El archivo bot-heroku.py contiene el código del bot que desplegaremos en Heroku. En este archivo el token de Telegram se gestiona con una variable de entorno del sistema. En nuestro caso será la variable BOT_TOKEN.

self.updater = Updater(os.environ['BOT_TOKEN'])

Esta variable se puede configurar desde la línea de comandos con las utilidades que hemos instalado con Heroku CLI o también se puede configurar desde el panel de control web donde administramos nuestras aplicaciones en Heroku.

Por ejemplo, desde la línea de comandos con Heroku CLI ejecutaríamos:

heroku config:set BOT_TOKEN=123456789:AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLL

Cómo desplegar el bot en Heroku

La secuencia de comandos que habría que ejecutar para desplegar el bot en Heroku es la siguiente:

heroku login
heroku create --region eu novedades-educacion-bot
git push heroku master
heroku config:set BOT_TOKEN=123456789:AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLL
heroku ps:scale bot=1

Para consultar el archivo de log podemos usar:

heroku logs --tail

Para detener la ejecución del bot usamos:

heroku ps:stop bot

Puedes encontrar más información sobre cómo desplegar con Git en Heroku en la documentación oficial.

Referencias

Créditos

Se han utilizado los siguientes ejemplos y librerías:

Autor

Este bot ha sido desarrollado por José Juan Sánchez.

Licencia

Copyright 2017 José Juan Sánchez

Licensed under the GNU General Public License, Version 3 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.gnu.org/licenses/gpl-3.0.en.html

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Bot de Telegram para recibir las últimas noticias publicadas en la página web de la Consejería de Educación de la Junta de Andalucía.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published