Skip to content

Papanatas Autómata Multiparadigma IV. El bot oficial de mi server de discord, Sociedad de Patanes.

License

Notifications You must be signed in to change notification settings

UmActually/Papanatas

Repository files navigation

Papanatas

El bot oficial de mi server de Discord (Sociedad de Patanes)

By Leonardo - UmActually

Papanatas Autómata Multiparadigma IV inició como un hobby muy informal en preparatoria, y terminó siendo uno de los proyectos que más ha aportado a mis conocimientos de programación. En este repositorio podráis encontrar una a veces elegante y otras veces muy descarada amalgama de código, cultivada a lo largo de dos años de aprender Python de forma autodidacta.

Este bot está construido con la librería de pycord, y en su tiempo, discord.py. Estas librerías ahorran el problema de tratar con la API de Discord, que se basa no solo en HTTP sino también en WebSocket. Y lo empaquetan todo en un inmenso y surreal sistema de clases y objetos. Recomiendo echarle un vistazo al source code de estos paquetes.

Funciones

Para la lista completa de comandos y su descripción, véase todos los comandos.

Música

Papanatas es un full-fledged music bot. No estoy enterado del mundo de los bots de música serios del momento, pero sé que, comparado con lo que fueron bots como Rythm, Hydra y FredBoat, Papanatas sí les daba unos tiros. Para poner una canción, basta con el comando /p.

Ejemplo del player de música

Con este comando es posible tanto realizar búsquedas como pasar directamente el enlace de YouTube o Spotify. Si está una canción sonando ya, el uso de /p solamente agregará canciones a la cola. Asimismo, si se pasa como query un enlace de Spotify se agregará a la cola una selección de 10 pistas al azar como máximo, en el caso de ser una playlist, un álbum o un artista.

Recientemente agregué los comandos /playlist, /album y /artist. Estos comandos hacen una búsqueda en Spotify y agregan a la cola las canciones del top result que arroje. Igual que al usar /p con el link de un artista, el comando /artist pone las diez canciones top.

Ejemplo de búsqueda de artista

Para búsquedas específicas en YouTube, también se puede usar /ly y /ost, que agregan " lyrics" y " ost" respectivamente a tu búsqueda. Por ejemplo, si bien /p otherside pone la de Red Hot Chili Peppers, /ost otherside va a regresar la de Lena Raine. También, estos comandos pueden reemplazar la canción que esté sonando si no escribes nada para buscar. Así, en el momento en que te salga un Official Video donde nomás no quiere empezar la música, puedes mandar /ly y la canción se volverá a buscar con el sufijo " lyrics".

Para alterar la cola de canciones están también los comandos /skip, /shuffle, y /clear.

Por último, Papanatas también tiene un soundboard, para aquellos individuos obsesionados con ponerle banda sonora a su vida. Revisa /soundboard para más detalles.

Juegos

Papanatas ofrece un catálogo de nada más y nada menos que dos juegos: UNO y ajedrez (este último está en progreso tho). Para jugar juegos, el server debe tener cierto setup en sus canales. Puedes iniciar partidas con /uno y /chess respectivamente.

En UNO el jugador puede seleccionar su carta enviando un mensaje en su canal con el número de posición de dicha carta. Véase la sección de cómo jugar UNO para más detalles.

Ejemplo de partida de UNO

El ajedrez se controla de forma parecida, ingresando las coordenadas de la pieza y las coordenadas de destino en el mensaje. Realmente no se me ocurre de otra. Este juego sigue bastante rudimentario: apenas y revisa movimientos legales.

Ejemplo de partida de ajedrez

NLP

Algunos comandos de Papanatas tienen una implementación con natural language processing. Cuando un mensaje inicia con natas se interpretará el lenguaje natural buscando mediante patrones el comando que más le corresponda. Con la ayuda de @Dan logramos incorporar la pipeline de NLP de Spacy con un modelo del lenguaje español. Revisa /natas para más detalles.

Ejemplo de comandos con NLP

Cabe notar que nuestro sistema de búsqueda de comandos puede mejorar. Está más hard-coded de lo que quisiéramos.

Manipulación de imágenes

Papanatas también puede agregar texto a imágenes usando Pillow. El comando /meme toma la imagen más reciente del canal y le agrega el texto que le digas. Es posible especificar el color, contorno, posición y font del texto. El bot también puede buscar en los mensajes patrones alusivos a algunos memes comunes y enviar el meme correspondiente con el texto del mensaje.

Ejemplo de meme

Otras funciones

  • También se pueden crear encuestas con /poll. Primero se ingresa el título y luego las opciones separadas por ;. Llevará la cuenta de los votos mientras el bot siga corriendo.
  • Papanatas saca a todos los usuarios de un voice chat si solo quedan bots.
  • Papanatas tiene gustos muy interesantes. Cada 10 minutos cambiará su Activity en su perfil.
  • Puedes convertir coordenadas de Overworld a Nether con /coords.
  • Para enviar y alterar mensajes puedes usar /echo, /tell, y /salt.

La mayor parte de las features de Papanatas han sido retiradas del código, ya sea por perder utilidad (muchas estaban relacionadas a los estudios y a mis amigos de prepa, shoutout, los extraño) o simple y sencillamente porque presentaban un humor muy audaz.

Apéndice

Todos los comandos

Comando Descripción
/info Información de Papanatas.
/time Fecha y hora en México.
/natas Información y ejemplos de 'natas Natural Language.
/dl [link_or_search] Descargar un video DE DURACIÓN RAZONABLE con YouTube DL.
/act [type?] [name?] [status?] Cambiar el status del perfil de Papanatas.
/nk [member] [nick] Cambiar el nick de cualquier usuario.
/hr Horario de clases de prepa. Este comando obviamente ya no nos sirve. Solo está aquí por nostalgia.
/coords [xyz] Traduce coordenadas de minecraft de Overworld a Nether.
/uno Iniciar nuevo juego de UNO.
/chess Iniciar nuevo juego de ajedrez.
/echo [text] Enviar un mensaje en este canal.
/tell [channel] [text] Enviar un mensaje a otro canal.
/reply [message_id] [text] [channel?] Responder a un mensaje.
/edit [message_id] [text] [channel?] Editar un mensaje de Papanatas.
/salt [seconds] [text] Enviar un mensaje que se autodestruirá en la cantidad de segundos especificada.
/brazil [member] Mandar a alguien a Brasil.
/argentina Sacar a todos de Brasil.
/jn Unirse al voice.
/lv Salirse del voice.
/p [query] Agregar una canción a la fila.
/skip Siguiente canción en la fila.
/undo Quitar la última canción de la fila (que tú hayas agregado).
/clear Borrar todas las rolas de la fila.
/shuffle Shufflear la fila.
/playlist [query] Agregar una playlist a la fila, guardada en el canal de #playlists. En caso de no haber match, realiza una búsqueda en Spotify.
/album [query] Buscar un álbum en Spotify y agregar a la cola las canciones del top result.
/artist [query] Buscar un artista en Spotify y agregar a la cola las (top 10) canciones del top result.
/ly [query?] Poner una canción agregando "lyrics" en la búsqueda. Si no se teclea búsqueda, reemplazar lo que está sonando agregándole "lyrics".
/ost [query?] Mismo funcionamiento que /ly, pero agregando "ost".
/soundboard Mostrar todos los efectos del soundboard.
/poll [title] [options] Crear nueva encuesta. Separa las opciones con ";"
/meme [text] [position?] [color?] [font?] [stroke?] Crear un meme con la imagen más reciente del canal. Si la posición es "top & bottom", separar el texto de arriba y abajo con ";".
/skipper [text] Meme de "Goku le gana".
/able [text] Meme de la bola amarilla ansiosa.
/yoda [text] Meme de "Mucho texto".
/jimmy [text] Meme de Jimmy Neutrón explicándote algo.
/chtm [text] Meme de la bola amarilla sacando el dedo.

Para jugar UNO

  1. Presiona el link del canal que te toque. Es un canal privado.
    • Papanatas te va a decir los turnos y el número de cartas de cada quien. La carta de arriba es la del centro. Tus cartas son las de abajo.
  2. Si es tu turno, selecciona tu carta escribiendo el número de la POSICIÓN de la carta.
    • Si es un +4 o un Wild, debes especificar el nuevo color además de tu elección de carta. Ej: 4 azul.
    • Algunas cartas serán grises. Esas las puedes poner sobre cualquier color, pero van a adquirir el color de la carta que estaba antes en el centro.
    • Puedes comer una carta escribiendo draw.
    • Mis reglas. En este juego se acumulan +4's.

About

Papanatas Autómata Multiparadigma IV. El bot oficial de mi server de discord, Sociedad de Patanes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages