Giter Site home page Giter Site logo

cratermaik / mychat Goto Github PK

View Code? Open in Web Editor NEW
27.0 7.0 10.0 224 KB

MyChat es una aplicación de mensajería en tiempo real con servidores de Discord (similar a un canal de Discord).

Home Page: https://mychat-discord.herokuapp.com/

License: MIT License

JavaScript 39.92% HTML 9.64% CSS 26.50% Dockerfile 1.33% EJS 22.61%
discord oauth2 socket-io express discord-api chat mychat javascript client web

mychat's Introduction

MyChat

MyChat

MyChat es una aplicación de mensajería en tiempo real con servidores de Discord de código abierto (similar a un canal de Discord). MyChat utiliza la autenticación (OAuth2) de una cuenta de usuario Discord y mediante la integración de un webhook para conectarse a un canal de Discord. MyChat está programado con Express, socket.io, passport y Discord.js en el servidor (back-end) y Materialize CSS y JQuery en el cliente (front-end).

Demo

Instrucciones para desplegar a producción

1- Crear archivo .env

  • Un ejemplo se encuentra en .env.example (cp .env.example .env en Linux)
  • Configurar las siguientes variables:
PORT=3030 # El puerto donde MyChat escuchará para recibir las peticiones HTTP.
ID_WH="" # El ID de el webhook que usará MyChat para enviar mensajes (desde la web a Discord).
TOKEN_WH="" # El TOKEN de el webhook que usará MyChat para enviar mensajes (desde la web a Discord).
CLIENT_ID="" # El ID del cliente de la app de Discord que usará MyChat de https://discord.dev
CLIENT_SECRET="" # El código secreto del cliente de la app de Discord que usará MyChat de https://discord.dev
URL="http://localhost:3030" # Esta URL deberá ser configurada en https://discord.dev, poner /login al final en discord.dev
ID_CHANNEL_LOG="" # El ID del canal de Discord en donde se envian registros (logs) de la web.
ID_CHANNEL="" # El ID del canal de Discord en donde se enviarán y recibirán mensajes. # Adicional: El webhook los envia a el canal donde se estableció.
DISCORD_TOKEN="" # Token del bot de Discord donde MyChat iniciará sesión.
BLACKLIST="" # Las IDs aquí no pueden usar MyChat. Ponerlo en formato "1234,5678" (cada coma separa una ID);
GUILDONLY="" # Poner "true" para aceptar únicamente miembros del servidor donde se encuentra el canal que usted puso.

2- Ejecutar MyChat

  • Ejecutar el siguiente comando:
npm install
npm start

Ó

node index.js

3.0- Ejecutar MyChat como servicio

De esa manera se mantendrá encendido junto con el sistema sin molestar otras apps o la UI (como la terminal). Aqui algunos administradores de servicio:

  • PM2 (todos los SO que pueden ejecutar Node.js):

Aplicación recomendable para ejecutar apps de Node.js como este:

pm2 start index.js

o también puede seguir el ejemplo del ecosistema en mychat-pm2.config.js

pm2 start mychat-pm2.config.js

Administrador incluido en varias distribuciones de Linux.

Un ejemplo se encuentra en mychat.service. Modifíquelo dependiendo de dónde se ubique Node.js y MyChat

cp mychat.service /etc/systemd/system

systemctl enable --now mychat

systemctl status mychat

Recomendable cuando tienes una máquina con Windows y quieres tener un mejor control de tus servicios.

Cree un servicio, ponga nombre y descripción, ubique la instalación de Node.js y ponga la ruta completa donde se encuentre MyChat en la sección de parámetros (ejemplo C:\Users\Admin\MyChat\index.js).

Luego acepte el formulario, haga click derecho en el servicio e inícielo.

Si aún deseas ver la consola, inicia el servicio en tu sesión actual.

3.1- Ejecutar MyChat en un contenedor (Docker)

Si no quieres molestarte en instalar Node.js o los paquetes, y tienes Docker, una vez hecho el paso 2, realizar estos 2 comandos:

docker build --tag cratermaik/mychat .

docker run -p 3030:3030 cratermaik/mychat

La app escuchará al puerto 3030, si necesitas otro puerto sólo cambialo (ej. 5000:3030).

mychat's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mychat's Issues

Menciones

image
Las menciones hechas desde la pagina no se ven en la pagina mientras que la hechas por discord si

Cosas por hacer en MyChat

  1. Arreglar el tamaño de los emojis.

    • Si el mensaje contiene un texto aparte del emoji, el emoji debe hacerse más pequeño en vez de tener el mismo tamaño.
  2. Cambiar el formato de los emojis.

    • Si el emoji es animado, el formato debe ser GIF en vez de PNG.

Añadir cooldown

Basicamente el cooldown serviria para no provocar api abuse
image
[La imagen no es de mybot]
El cooldown se podria especificar en el env

Mensajes invisibles

image
image
Si pongo ":o" se bugea y el mensaje sale invisibke en mychat
(Abajo es como se ve en discord normal)

[Sugerencia] Historial de mensajes

Sería genial que el cliente o el servidor guardaran los mensajes entrantes, así al volver a abrir la web, podrás ver los mensajes anteriores.

Hay dos formas que veo de solucionarlo:

Desde el cliente

Se podría guardar con las tecnologías web existentes los mensajes que entran, el problema de esto es que no se guardarían los mensajes que lleguen mientras el cliente está cerrado

Desde el servidor

Se podrían guardar los mensajes en el servidor, de tal manera que una vez iniciada la sesión en el cliente, el cliente envíe una petición al servidor para que reciba los últimos x mensajes del canal que quiere ver.

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.