GithubHelp home page GithubHelp logo

josejuansanchez / novedades-educacion-andalucia Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 55 KB

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.

Python 99.79% Procfile 0.21%
telegram-bot python heroku educacion andalucia

novedades-educacion-andalucia's Introduction

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.

novedades-educacion-andalucia's People

Contributors

dependabot[bot] avatar josejuansanchez avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

novedades-educacion-andalucia's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.