Tecnología

Urban Dictionary

Todas las definiciones del diccionario urbano más usado al alcance de tu mano.

Para la consulta de palabras específicas con el comando !definition se ha usado la API pública proporcionada por Urban Dictionary a través de la cual se obtiene una estructura JSON con los diferentes datos. Se ha necesitado realizar un estudio del formato para de peticiones a la API además de obtener los conocimientos necesarios para tratar los JSON y los datos proporcionados.

OP.GG

Toda la información de cualquier invocador o campeoón del juego

Con respecto a OPGG actualmente contamos con la función de obtención del perfil del invocador así como de las runas para un determinado campeón con los comandos !opgg y !runes respectivamente. Se ha realizado un estudio de los diferentes formatos de URLs que utiliza la página así como los numerosos casos especiales tales como nombres con carácteres especiales y con varias palabras entre otros. Para la obtención del perfil de invocador se ha realizado scrapping para la búsqueda de la foto correspondiente al perfil y para las runas de un campeón se ha investigado el formato de URLS para las fotos de los campeones usadas en la página oficial de League of Legends.

Axios

El cliente HTTP por excelencia en JavaScript

Para la simulación de un cliente web para la realización de consultas HTTP se ha empleado la libreria AXIOS. Una vez realizada la consulta se intercepta y transforma automáticamente al formato JSON. Esta tecnología ha sido usada para obtener el código HTML de las diferentes webs para posteriormente realizar el scrapping necesario.

Discord JS

La API de Discord en JavaScript

Para la integración con Discord se ha utilizado la librería DiscordJs junto con el portal para desarrolladores ofrecido por Discord. Se ha necesitado aprender el funcionamiento interno del envío y recepción de mensajes en un servidor para el correcto tratamiento de estos mediante las funciones que nos ofrece la librería. Los mensajes embebidos han sido cruciales para poder enviar al usuario un texto formateado y con gran cantidad de opciones y herramientas tales como fotos adjuntas, miniaturas, footers y colores personalizados.

JavaScript

La navaja suiza de la programación

JavaScript ha sido el lenguaje empleado paralelamente con la libreria DiscordJs para la implementación del bot. Se han usado características tales como la API Promise, operaciones asíncronas, formateo de datos a JSON, tratamiento de cadenas, carga de base de datos local y modularización de las diferentes funciones ofrecidas por el bot.


Comandos


Comando Descripción
!runes [champion_name] [role] Devuelve las runas de un campeón para cierto rol
!opgg [summoner_name] Retorna el perfil de Opgg seleccionado
!definition [word_or_phrase] Busca la información en el Urban Dictionary de la palabra o frase elegida
!wordoftheday Muestra la definición de la palabra del dia en Urban Dictionary
!coinflip Lanza una moneda al aire que devuelve cara o cruz
!help Muestra una lista con todos los comandos disponibles
!bloodtrail Se imprime en el canal el emote Bloodtrail