NoteGramBot / NoteGram

Desarrollo de un Bot para Telegram implementado en Go y aplicando TDD
GNU General Public License v3.0
2 stars 3 forks source link

Bot sencillo de Telegram usando lenguaje Go.

Build Status

codecov

Go Report Card

Problema

Se quiere poder anotar cosas desde telegram y crear notas compartidas en sus grupos.

Solución

Se propone una aplicación que, mediante el uso de alguna biblioteca que implemente la API de bots de telegram, almacene y muestre las notas o anotaciones enviadas por los usuarios.

Instrucciones

Compilación

Este proyecto utiliza Mask como runner. Antes de compilar y testear el código hay que instalar mask (basta con descargarlo desde la página de releases de Mask.

Antes de compilar hay que cargar las dependencias con mask depend. Esto obtendrá los paquetes externos de los que depende el bot.

Para ejecutar los test (sin cobertura):

mask test

Para compilar el proyecto ejecutamos mask build desde el directorio raíz del proyecto.

El ejecutable de salida estará en el la carpeta 📁 /bin del proyecto.

Para ejecutar tests con cobertura:

mask coverage

Cuando pasamos los test con cobertura se genera un fichero coverage.txt en el directorio raíz del proyecto.

Instalación/Uso (WIP)

Para utilizar el bot necesitamos un Token.

Notegram necesita un fichero de configuración JSON.

En config_sample.json tienes un fichero de ejemplo:

{
"secret": "telegram_secret",
"dbhost":"123.34.45.56",
"dbport": 27017, 
"dbuser": "scott",
"dbpass": "tiger",
"dbcollection": "notegram",
"loglevel": "Debug"
}
Campo Descripción
secret Secret proporcionado por el Botfather
dbhost Direccion IP o hostname del servidor de bases de datos Mongodb
dbport Puerto en el que escucha el servidor
dbuser Usuario para conectarse a la BBDD
dbpass Clave de acceso de conexión a la BBDD
dbcollection Collection ('tabla') de mongodb en la que almacenamos los mensajes de los usuarios

Hacking

Cosas a tener en cuenta para modificar / aportar código al proyecto.

🚨🚨🚨 Atención, Achtung, Cuidadín: Todos los issues se tienen que cerrar con un commit 🚨🚨🚨

Estructura del proyecto:

Tecnologías

Equipo:

:qw