Transcripciones
1. INTRODUCCIÓN: Hola y bienvenidos a este curso. Mi nombre es Debbie ellos
en papás y soy Ingeniero Senior de Software
y matemático. De qué se trata este curso. En este curso,
aprenderás a codificar la producción lista, pero con esto sugiere
y desplegado a Heroku, la palabra clave aquí está lista para la
producción. Muchos tutoriales por ahí te
muestran cómo cocinar, pero sin una estructura claramente
definida y desplegada para replicar. Nunca, nunca
te recomendaré que hagas este tipo de cosas. En este curso,
vamos a aprender las
mejores prácticas y cómo desplegar tu trasero a Heroku usando el despliegue
continuo. Lo que aprenderás,
aprenderás TypeScript, lo
cual es impresionante
porque te da seguridad de
escribir en JavaScript, que es claramente algo que quieres cuando estás
trabajando en grandes proyectos. Incluso si no estás
trabajando en grandes proyectos, debes estar familiarizado con TypeScript porque
ese es el objetivo de tu carrera como
ingeniero de software para escribir buen código, responder a mensajes
y estos tribunales . Entonces la antigua forma de
hacer comandos en los squirts era agregar un
prefijo como signo de exclamación, y ese será el
comienzo de tu mandato. Pero también vamos a
aprender a crear
un comando slash, que es la forma moderna de crear comandos
en estos grupos. Botones y enlaces de cuadrícula. Recolectores de mensajes, incrustado, nos dirigimos rápido y mensajes
que los pensamientos pueden enviar. Reacciones coleccionistas
para reaccionar mensajes. Grandes subcomandos,
obtener información sobre un usuario y sus roles en las opciones, los comandos en las pruebas a nuestros comandos y desplegados
a Heroku, como dije, desconectado a GitHub para el despliegue continuo de
CD, eso significa que empujas
un cambio y no
tuviste que preocuparte por nada. Acabas de ver tu
código desplegado y tu último cambio
en producción, mejores prácticas, etc, etc. Aprenderás
mucho en este curso. Y espero que hayas
disfrutado el curso
tanto como lo disfruté haciéndolo. Nos vemos en la próxima conferencia. Adiós.
2. Cosas que debes saber: Hola y bienvenidos de vuelta. Tengo que contarles algunas cosas antes de que iniciemos este curso. En primer lugar, un descargo de responsabilidad sobre
estos ds de punto cuadrado. Vamos a utilizar
la última versión de este código dot js en el momento
de grabar este video, que es la versión 13. Además, vamos a utilizar la forma recomendada
de construir comandos, que es que d squared j's
es paquete de constructores azotados. Entonces esta no es una aplicación empaquetada
que implementa el constructor, el patrón de signos, y
es realmente, realmente bueno. Esta es la forma recomendada de construir una barra de comandos
y otras cosas. Entonces vamos a
utilizar estas bibliotecas. Pero sin embargo, este
paquete aún no tiene una versión v1 significa
que cambia muy a menudo. Te da actualizaciones
muy, muy a menudo. Y
aún no sabemos cuándo se
estabilizará y puedes seguir tus actualizaciones tiene la página
más joven de GitHub o bajo el canal Squared, donde también pueden resolver muchas, muchas dudas. Si lo tienes. Vamos a usar el
subsistema de Windows para Linux. Wsl. He estado codificando
en linux de mi vida y me inconveniente que
Linux sea el mejor sistema operativo para recubrir. Tengo todo lo que también
usó el Mac y Windows. Y esta es mi opinión, pero creo que la cojera
es lo mejor para ir. No obstante, la grabación de puerta
gritando Linux puede resultar en videos de mala calidad
dependiendo de su máquina. Principalmente por estos porque por problemas de
incompatibilidad de hardware y cosas así. Y desgraciadamente
ese es también mi caso. Y lo hice en cursos
anteriores y algunos alumnos
se quejarán la calidad
del video de las lecciones. Entonces por eso voy a usar Windows Subsystem para Linux. Windows Subsistema para
Linux es básicamente tener una distribución de Linux
dentro de tus ventanas. Entonces es genial para codificar
porque básicamente es como una camiseta nativa de Linux,
pero dentro de Windows. Por lo que puedo usar
software de grabación para grabar lecciones con una mejor calidad
de audio y video. Vamos a usar nvm. Te voy a mostrar en un futuro video
cómo instalarlo. Bueno, las instrucciones
de cómo instalarlo. Y esta es básicamente
una herramienta para administrar múltiples vs. de nodo
en su máquina. Y NodeJS, obviamente, estos dos sólo
funciona para Linux y Mac. Entonces si estás en Windows
versus una alternativa, también
tienes una versión de Linux
o algo así. Pero es simplemente más
fácil darle una oportunidad al Subsistema Windows para
Linux porque
podrás instalar nvm en Windows si vas a usar Windows Subsistema para Linux, y será muy, muy fácil. Y vamos
a usar vía alcance. No he usado este código o programa en múltiples lenguajes de
programación, python, Ruby,
JavaScript, TypeScript, ellos, incluso ir link. Y esto es sólo mi opinión, pero creo que si
usas VS Code con la extensión
correcta, por lo que puede ser aún mejor que las alternativas como Webster. También he usado
WebStorm, pero realmente,
realmente me gusta más VS Code con unas
extensiones correctas, ¿verdad? Vamos a usar Heroku. Heroku tiene un nivel gratuito donde
podrás alojar
tu brote de forma gratuita. Y te dará obviamente
cantidad de horas al mes. Probablemente necesites
poner tu tarjeta de crédito. Quieres quedarte esas horas libres si solo
tienes uno pero, y quieres pagar cualquier cosa
al mes si haces esto. Pese
a que te recomiendo que pongas tu tarjeta de crédito en Heroku para que tu bot
pueda estar vivo todo el tiempo. Entonces estas son las cosas
que debes saber. Y en los próximos videos
te
voy a mostrar cómo, por ejemplo,
instalar nvm, instalar nvm, que es yo creo que aquí la parte más
importante, que tal vez no todos
conocen estas barras de herramientas. Es bastante estándar si estás usando múltiples versiones de nodo. Al igual que en mi caso, donde uso una versión para un proyecto en R1 para el trabajo
y cosas así. Eso es todo. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
3. WSL: Hola y bienvenidos de vuelta. Entonces una cosa que ACE opcional, pero realmente te recomiendo que hagas si estás usando Windows, instala Windows
Subsistema para Linux. Por lo que solo busca Google
Windows Subsistema para Linux, ve al primer enlace. Aquí. Te mostrará todos
los requisitos previos para instalar
Windows Subsistema para Linux. Es, dice que los humanos
están ejecutando Windows diez, brush y 2004 y
hangar o Windows 11. Si ya tiene Windows 11, entonces solo tiene que hacerlo en el símbolo del sistema de Windows, WSL menos menos install. Lo siento. Estos comandos habilitarán los componentes
opcionales requeridos. Descarga el último kernel de
Linux, establece WSL como tu
predeterminado e instala distribución de
Linux para
que te enrolles por defecto. Ver a continuación para cambiar esto. Entonces esto es nuevo. Creo que la última vez que
revisé esta documentación, tenías que
instalar manualmente el Subsistema de Windows
para Linux a la derecha. Ahora, si haces esto un comando, vas a ver que Windows Subsistema para
Linux para aliviar el valor predeterminado, que es mejor que el. Honestamente, realmente te
recomiendo que te quedes con Ubuntu si prefieres
usar en otros estos SRO, que no he hecho porque
estoy de acuerdo con Ubuntu. Entonces puedes, puedes
seguir estas instrucciones. Y luego tendrás después de seguir
toda esta guía, tendrás estos
terminales donde
podrás usar
una herida para escuchar. Puede hacer sudo apt actualizar
y usar, lo siento. Creo que tengo mi
teclado en inglés. Usa el teclado español. Se puede montar. Así que gota día esto, se
puede ver que esto es Ubuntu. Es como tener un hueso
a tu máquina Windows. Eso es todo. Eso es todo lo que quería
mostrarte cómo hacer esto. Sólo tienes que seguir estas
instrucciones aquí. Y de nuevo, esto es opcional
pero muy recomendable. Ver en el siguiente video, Adiós.
4. NVM: Hola y bienvenidos de vuelta. Estoy en la página GitHub Administrador
de
versiones de VM o Node. Lo puedes encontrar y
tendrías MDM dash, SH, una slash npm es la org moon. Este es el nombre. Podemos leer un
poco sobre estos. Puedes ver Indiana te permite instalar y
usar rápidamente diferentes versiones de nodo
a través de la línea de comandos. Por lo que es fácil como los días y el uso final y
la versión que quieras. Si quieres instalar una versión como esta y
luego instalar 12. O incluso puedes especificar una
versión más específica como 12.21 para cualquier versión de manager
para que no se ingrese Díaz, se instala por usuario
e invoca por shell y funciona en cualquier shell
compatible con POSIX. Supongo que H dash TSH, TSH, que es el que uso. Bash, que es el que probablemente vas a
usar si estás usando Linux. Utilicé TSH, a pesar de que estoy usando un subsistema de Windows
para Linux, es bastante genial. Si quisieras echarle un
vistazo, puedes hacerlo. En particular en
estas plataformas. Macos y Windows
Subsistema para Linux, Unix incluye todas las distros de
Linux y Windows. Wsl es lo que te dije, Subsistema de
Windows para Linux. Entonces por eso te
recomiendo que lo
pruebes instalando y actualizando y así sucesivamente
que rasparon, solo
tienes que ejecutar estos
comandos en tu terminal. Entonces si estás en el Subsistema de
Windows para Linux o Mac o Linux, solo
tienes que copiar este comando
aquí y pegarlo aquí. Y eso se va a instalar
en VM en tu máquina. Y va a intentar escribir en cualquiera de
estos archivos así, dot css HRC, que en
caso de que estés usando SSH. Bash RC incluye
que estás usando bash. Voy a añadir estas
líneas de código aquí. Déjame ver si podemos ver aquí. Vamos a la
Tabla de Contenidos. Vemos otra
información adicional, verificamos aislamiento, solo
teclea estos comandos. Vm o simplemente escriba en VM. Eso te va a decir
si está instalado o no, entonces un tipo windows aquí. Sin embargo, notas importantes,
eso es, ahí es donde quería ir. Si estás ejecutando un sistema sin
banner preempaquetado disponible, lo que significa que vas a
hacerlo así que no JS o esto no. Este no es nuestro caso. Nosotros macOS y Linux, ya
tenemos
estos paquetes aquí. Es bastante raro que
no tuvieras paz
ya instalada. Nodo npm también soportaba ventanas. En algunos casos, se trabaja a través del
Subsistema de Windows para Linux. Dependiendo de la versión de WSL, esto es importante, suelen tener versión dos que
vamos a ver. Y también debe trabajar
con el Bash o un segue. No he usado estas dos cosas. No sé cuáles son. De hecho, sabio para Windows
y campo Turnitin, que no son ni orden
ni desarrollados por nosotros. Estos conocen estos
NBS y las ventanas. Entonces si no quieres tomar
mi consejo y simplemente usando nuestra herramienta o simplemente instala
NodeJS desde cero. También se puede hacer eso
yendo a saber simplemente aburrido. Puedes ir a suggest.org
e instalar Node Desde aquí, pero va a
ser una versión fija. Y realmente no
recomiendo eso. Pero si tienes nvm, si tienes Windows,
también puedes usar NPV para Windows. A pesar de que no te voy
a mostrar cómo hacer esto porque no he
usado esta cosa. Eso es todo. Cuando
tengas instalado y VM, te
puedo mostrar aquí un par
de comandos. Npm current
me va a mostrar la versión actual, 12.10, DMLS me va a mostrar todas las
versiones que he instalado. Se puede ver que tengo muchas versiones instaladas y por defecto es 12.100. Si quisiera instalar
una versión específica y puedo, déjame escribir ayuda aquí
en india install help. Aquí puedes ver todos
los comandos de ayuda. Probablemente este sea el
que estamos tratando de decirte, los indios salan versión específica. Si quieres resolver
la versión LTS, solo nvm instala dash, dash LTS. Y si sí queremos
utilizar una versión específica,
lo siento, la
versión LTS utilizada como LTS. O si quieres usar otra
versión que tengas aquí, npm usa Catorce Puntos
en 16 por ejemplo. Y ahora vas a
estar usando esa versión. Nvm actual. Voy a ver que
es esa versión que especificé. Eso es todo. Esta es una herramienta muy cool, así que
te recomiendo que la uses en este curso. Eso es todo. Espero que te guste. Nos vemos
en el siguiente video. Adiós.
5. Extensiones de VSCode: Hola y bienvenidos de vuelta. Como dije, voy a usar VSCode, necesita mi ID favorita y
realmente lo recomiendo. Es totalmente opcional. Si quieres instalarlo, solo busca Visual
Studio Code y Google
y busca cómo
descargarlo o simplemente ve directamente a
codificar Visual Studio que vienen cargados para
tu puerta de software, pero ese no es el
punto de este video. El punto de este
video es mostrarte algunas extensiones útiles porque muchos estudiantes en el pasado me
han preguntado qué
extensiones se utilizan. Y sólo estoy quería
mostrarte algunos de ellos. En primer lugar, si estás usando un
Subsistema Windows para Linux, esto probablemente sea muy
importante para instalar el
WSL o extensión bash remoto. Este es el primero
que quieres resolver. Estás usando Windows
Subsistema para dispositivo Linux. Ver esto instalado localmente. Y me desplazo hacia abajo, se
puede ver
que estos son así. Y si me desplazo sobre estos íconos, dice
que esta
extensión está habilitada en el
host de extensión remota porque prefiere timón algunos de ellos preferidos a los
tuyos en el host WSL. Así que déjame mostrarte algunas
extensiones que sí quiero usar, tal vez no sólo por el marcador, sino para otras cosas también. Por ejemplo, este color halite y luego web
colors Editor Senior. Entonces vamos a usar algunos
colores aquí en este curso, pero puedes usar también colores hexadecimales
aquí en este curso, si lo prefieres, lo
voy a usar, pero sin duda puedes
hacerlo si quieres. Y estas extensiones te
darán el color en la parte superior de la cadena de color hexadecimal
diese aquí. De acuerdo, entonces qué más tal vez está
vinculado es muy importante. Vamos a configurar
algunas reglas de LinkedIn y estas buenas
lentes bastante importantes también son muy buenas. Pero esto funciona mejor si estás, si estás trabajando en un
proyecto más grande con otras personas, para ver la culpa y
cosas así, para ver las solicitudes de encuesta hechas. Para cambio específico en el código. Es bastante bueno. ¿ Qué más? Costos de importación. Esto es muy
bueno porque te muestra el costo importante y
el tamaño de algunas importaciones. Nuevamente, inicialmente
para el desarrollo web donde esto es muy importante. Estos fueron útiles
en ese arco iris. Me gusta. Esto
solo te está mostrando algunos colores cuando estás
sangrando código, código de Delhi. Esto es muy, muy útil. ¿ Qué más? Esto es para el desarrollo
asistido por IA solo a la superficie
de
autofinalización de ciertas cosas. Creo que con el script por lotes
esto es menos útil, pero sigue siendo
muy, muy útil. Por lo que recomiendo encarecidamente
estas extensiones. Bueno, ¿qué más? Más bonita, más bonita es muy, muy importante, muy,
muy importante. Porque vamos
a utilizar durante este curso el formateo de código es algo que
debes automatizar. Recuerda los corchetes, esto
también es muy útil de hacer. El Raqueta está en el mismo auto para ver dónde comienza
y dónde termina. ¿ Qué más? Déjame ver.
Qué más tengo aquí. Veamos YAML, Morris
y lente de error sabio. Este también es
muy guay tener
los errores que se muestran en el código. Creo que esto es muy, muy útil.
Material Icono Tema. Sí, esto es sólo una cosa
puramente visual. Entonces puedes ver estos iconos
aquí, los íconos de material. Sólo una cosa visual. Creo que esas son
las que te
recomiendo para este curso y tal vez para el desarrollo web. Se puede ver que tengo otras
cosas, GraphQL terraform. Estos no son necesarios
para este curso. Entonces eso es todo. Eso es todo lo que quería
mostrarte cómo hacerlo, como el video. Nos vemos en la
siguiente. Adiós.
6. Código Github: Hola y bienvenidos de vuelta. Sólo quiero decir que todo el código de este
curso está dentro de este repo. Me puedes encontrar en GitHub como
w0 que han sido ese iss. Y puedes encontrar
esta puntuación SDI repo. Pero por supuesto, todos
los gametos están aquí. Puedes ir aquí. El primer gameto,
si querías ver como ellos, cambios específicos. Para una lección. Tú vas a, por ejemplo, este gameto y
puedes ver, oye, acabo de añadir estas
piezas de código aquí. Entonces si quieres ver lo real como contenido de todos
decodificar todos los archivos. Por ejemplo, aquí, agregaron
reacciones al colector. Este es el código que agregué. Y aquí se puede
ver Examinar archivos. Así que ve a Examinar Archivos. Y este es el
código en ese estado. Ese es el peso. Puedes navegar por el código a través de las lecciones
de las puntuaciones. Eso es todo. Si tienes alguna
pregunta, solo tienes que ponerlas. Estaré feliz de contestar. Nos vemos en la siguiente lección. Adiós adiós.
7. Crear Un Servidor Y Bots: En este video, vamos
a calificar los servidores para que podamos probar nuestro bot. Es bonita vista de ECE
ya tiene un servidor, luego siéntase libre de omitir
esta parte e ir a la parte donde estoy creando
el capullo para el ciber. Simplemente haga clic aquí. Crea el mío propio. Sí, eso se llama el servidor. El marcador. Comprado servidor, lo que sea. Genial. Sí, tengo ayudas. Un montón de propinas ahí. Voy al navegador y voy a los desarrolladores de slash score.com
como aplicaciones azotadas. Entonces puedes ver que ya tengo estos dos bots creados para
mi servidor de discordia personal. Vamos a crear dos más. Digamos que este
va a ser el curso comprado anotado. Vamos a crearlo. En esta pestaña aquí. Voy a añadir un botón. Sí, hazlo. Estos nombre de usuario no pueden contener el nombre de usuario de
puntuación. De acuerdo, así que vamos a quitar
el d cuadrado del nombre, guardar los cambios, y
vamos a tratar de crearlo de nuevo. Así que ahora tengo mi
trasero por supuesto la muerte. Esto va a ser
útil sordo local. Y vamos a la o. Y vamos
al generador de URL. Estos 0s donde vas a crear la URL para
invitar a tu barco, estás a punto de tu servidor. Por lo que necesita algunos ámbitos,
algunos permisos. Voy a seleccionar
este permiso de error. Y también estos
comandos de aplicación permiso. Voy a explicar
lo que estos en un futuro. Cuando le das los permisos de
brote, debes darle
todas las cosas que estos bots pueden
hacer en tu servidor. Entonces si vas a cumplir BAD
real escalable
con mucho usuario, se
asegura de que solo
tenga los permisos necesarios. Pero estamos aprendiendo aquí, así que sólo vamos a
seleccionar Administradores que
pueda hacer todo. No tuvimos que preocuparnos darle todos
los permisos. De acuerdo, así que ahora vamos a copiar este
enlace aquí. Vamos a pegarlo. Y entonces va
a decir que, sí, quieres agregar estos
cursos masivos sordos a un servidor. Tengo mi servidor de
discordia personal y mi servidor que
acabo de crear. Entonces eso es como éste. Sigamos confirmando que esto va a tener los permisos de
administrador. Vamos a autorizarla. Tenemos que resolver estos
pequeños Capture aquí. Ojalá no sea un robot. Verificar. Genial. Entonces ahora si
vamos a los puntajes, si vamos a los
puntajes, pero claro, vas a ver que
en el canal general, que es el canal predeterminado, vas a tener el curso
spot def por aquí. De hecho, está aquí, pero está
fuera de línea en este momento. Cuando estás construyendo un real comprado y quieres
desplegar en producción, pero aún quieres
hacer tareas. Entonces la estrategia que
utilizo oriente para hacerla
sorda pero orgullosa. Pero si volvemos aquí a aplicaciones y
creamos una nueva aplicación, voy a crear
pero sondeo de curso. De acuerdo, por lo que estos sólo se van
a utilizar para producto y en este momento no somos el punto de los productos,
así que no te preocupes. Ahora creamos el trasero. Vamos a lo mismo, pero la aplicación
ordena y vamos a
darle permisos al administrador. Copia el enlace,
péguelo en el navegador. Selecciona el servidor,
que es éste. Autorizar resuelto el capitán. Camiones. Más camiones. Sí.
Creé con éxito en pero para sordos, eso es lo que vamos a
utilizar principalmente en este curso. Y cuando
desplieguemos a prod, vamos a usar
estos aquí. Eso es todo por este video. Espero que te guste. Nos vemos en la siguiente. Adiós.
8. Configuración inicial Parte 1: Ok, Ahora que tenemos nuestro
servidor y pensamientos creados, es hora de empezar a escribir código. Ve a tu directorio favorito y creando nueva carpeta llamada, no
sé la
puntuación del curso. Vayamos aquí. Voy a usar VSCode, voy a abrir estos directorio
vacío, y voy a abrir
un terminal integrado. Tengo un atajo para estos
que puedes hacerlo desde aquí. Supongo. Sí, nueva terminal. Y eso va a crear
una nueva terminal para ti. De acuerdo, así que antes que nada, vamos a inicializar estos anchos, conseguir que podamos crear
gametos y todas esas cosas. Ahora necesitamos inicializar
un archivo package.json. Pero antes que nada, vamos a
crear un archivo nvm RC. Entonces digamos Touch dot nvm RC. Aquí, vamos a poner la versión de nodo que
queremos utilizar en este proyecto. Déjame ver cuál es mi versión
actual y VM. Está anticuado. Vamos a instalar la versión LTS. Eso es no, Versión 16.14.2. Voy a poner
ese número aquí, 16.14 a cada vez que estés
dentro de este directorio, tienes que escribir
este comando npm use. Y vas a
estas versión aquí. Si no tenías esa versión, entonces es NVM la va
a instalar para ti. Además, si tienes curiosidad, tengo como un déjame ver. Si puedo mostrarte. Tengo un archivo dot C RC y tengo estos cocineros aquí
porque estoy usando z ASH. Probablemente estés usando lo
mismo si estás en Mac. Estoy en el
Subsistema Windows para Linux, pero estoy usando un COSH
porque es tan grande. Aquí puedes ver que tengo
este uso automático de nvm. Lo que hace el libro básicamente
es cada vez que ingresas a un directorio que tiene
estos archivos nvm RC, va a hacer que nvm use
automáticamente para usted. Por ejemplo, si cierro este terminal y lo
abro, lo abro de nuevo, entonces estás viendo que
estos hook están encontrando estos archivos MRC de NBA y está
emitiendo ese comando nvm use. Si tienes curiosidad,
puedes pausar el video, agregarlo a tu archivo TSH RC. Si estás usando bash, entonces
tienes que hacer probablemente
otra cosa, o simplemente Google cómo hacerlo. Pero eso es totalmente opcional. Si no quieres
usar ese aro, entonces solo escribe npm
use cada vez. Ahora que tenemos
nuestra versión de nodo, vamos a usar discordantes. Vamos a instalar Yarn porque prefiero el hilo sobre NPM. Entonces vamos a decir npm
instalar menos g hilo. Eso instala el dibujo a nivel mundial. Ahora podemos hacer algo
como hilo en ella menos y. y va a crear este
paquete lección de punto para mí. Entonces ahora que tenemos nuestro archivo nvm RC están
empaquetados archivo JSON, también
vamos a necesitar un archivo de configuración ts porque
vamos a usar TypeScript. Entonces, antes que nada,
agreguemos TypeScript. Entonces hilo a menos capital D, para que le decimos que es
una dependencia de dev TypeScript. Ahora tenemos estos módulos de
nodo carpeta y estos hilo ese archivo de registro. Estos módulos de nodo. No queríamos
comprometerlo porque es demasiado grande y
es innecesario. Entonces antes de ir más allá, vamos a crear este dot git ignore portón trasero del
archivo que no
queremos elogiar módulos de nodo. Por lo que ahora se puede ver que se volvió gris porque no está
siendo ignorado por el bien. Ahora vamos a agregar TypeScript, el conflicto de Ts que archivo JSON. Digamos hilo, TSC, guión, guión en él. Y como se puede ver, crea este archivo aquí. Está bien, genial. Entonces con este
expediente, lo estamos diciendo. El código que queremos compilar
con estas opciones aquí. Para que como se puede ver, hay muchas, muchas opciones. La mayoría de ellos son
comentados y tienen valores
predeterminados. No vamos a bucear
profundamente en estos. Probablemente vamos a
modificar esto por ahí fuera. Y no sé qué más, pero por ahora, vamos a
mantenerlo así. De acuerdo, así que ahora que
tenemos a Ts cómodas, tenemos qué más
hemos empacado JSON. Agreguemos más guapa. Si no sabes
qué es el nivel libre,
es básicamente un formateador de código. En lugar de pelear. Si quieres cotizaciones semi simples o
cotizaciones dobles, solo
tienes que hacer un
archivo de configuración y definirlo y hacer el código para que los militares
cuiden esos detalles. Así que antes que nada ve
y las extensiones, si estás usando VSCode, entonces busca al predicador. Si estás usando otro
IDE mientras tienes
que buscar cómo usar
predicador con tu IDE. Pero en este código, EECS instalando estos códigos más bonitos
para el cambio monetario. Vale, pero eso no es todo. También necesitamos agregar un archivo
de configuración. Vamos a crear estos puntos. Archivo RC de nivel gratuito. Digamos que en mi proyecto, yo una sola cita
en lugar de comillas dobles. Y hay muchas y
muchas opciones que
puedes configurar. Al igual que, ya sabes, veamos
qué otras opciones tenemos. Probablemente punto y
coma, punto y coma, coma final. Esto es por tener una
coma al final de sus objetos y
cosas así. Entonces supongamos que este es un
objeto siguiendo comas, sólo va a
darle estas comas aquí. Sí, de hecho tienen
estas extensiones que
me dicen las flechas que tengo en mi código. Me está diciendo
que es un auto de arrastre, pero eso es porque
este es un Jason. Esto no es JavaScript. En JavaScript, voy
a tener riqueza TypeScript. Vamos a tener
estas coma trailing. Puedes buscar todas
estas opciones aquí. O imprimir lejos con estos
también algo que me gusta. Me gusta poner los 100 entrenamientos que rompe después de
120 personajes. De acuerdo, entonces esa es
la configuración que vamos a usar para
predicador en este proyecto. Ahora necesitamos una cosa más que va a ser
después con enlaces ES. Entonces vamos a crear un
RC, ese archivo JSON. Nuevamente, hay una
extensión VSCO que puedes usar, que se llama ES pelusa. De hecho, ese habitar
instalado porque
necesitaba instalarlo para
Windows Subsistema para Linux. Voy a
resolverlo después de este video. Pero lo importante aquí es que estos
archivos de configuración, tenemos que escribirlo. En primer lugar, voy a
decir raíz igual a verdad. ¿ Cuál es esta ruta que
básicamente te dice está vinculada. Oye, no busques más archivos de configuración
fuera de este directorio. Déjame ver si puedo pasar el
cursor de esta cosa. No me dice, pero eso es básicamente lo que es la raíz. Nos está diciendo,
no intentes obtener configuración desde
fuera de estos repo. Entonces necesito un analizador porque vamos
a usar TypeScript. Y de hecho, instalemos el plugin que va a hacer un excelente trabajo
con TypeScript. Así que darn ab menos capital D, TypeScript slash analizador y TypeScript slash ES lint login. Tuve un error. Veamos. No se encontró el analizador TypeScript. Oh, lo siento, no es analizador
TypeScript. Es TypeScript ES analizador de
pelusas y TypeScript dash Eastland, plutonio
Eastland. Y viste que ahora tenemos
estos desconcertantes errores de guión estancado. Puedes simplemente eliminarlo o
ponerlo en el gitignore. Prefiero ponerlo
indicado ni digo todo lo que empieza con una extensión de log, solo ignórala. Entonces estrella dot log, ignóralo. Ahora se puede ver que el desenlace de
error de guión malvado se volvió gris. Perfecto. Ahora en el analizador aquí, vamos a decir, vamos a decir tipo, usa el analizador de barras de
pelusa TypeScript ES. Vamos a ampliar la
configuración. Y esa configuración
proviene de estos plug-in
que instalamos. Por lo que decimos plug-in columna, TypeScript, ES
barra de pelusa recomendada. Slash recomendado es
básicamente un conjunto de reglas
opinionadas
de los autores de estos paquete de pelusa TypeScript
dash ES. Eso solo te da las
mejores opciones para ES enlazadas. A diferencia de las reglas predeterminadas que son
mejores prácticas y demás. Eso es lo que estamos
haciendo aquí con estas extensiones y
dándole este valor aquí. Sólo estamos ampliando un conjunto de
reglas con mejores prácticas. Ahora que lo tenemos todo, también
instalemos enlaces de dependencia de dev
ácido y también más bonitos. Me estás diciendo, ¿por qué estás, estás instalando
estos paquetes si ya
estamos usando
estas extensiones aquí? Bueno, una cosa es tu IDE
usando estas extensiones. La otra cosa es instalar estas dependencias para que pueda hacer lo que está haciendo el ID. Pero desde la CLI, es solo una buena práctica porque probablemente estés usando algo muy
esotérico como Vin, que es una tasa de identificación
complicada de usar. Ni siquiera es una idea. Creo que es como editor de texto
o algo así. Si estás usando eso
y eso no tiene como un plug-in para su inclinado o para más bonito de
lo que probablemente quieras hacer ese formato de código o
linting desde la línea de comandos. Vale, por eso estoy instalando estos paquetes
en el paquete Jason. Por lo que ahora hemos vinculado,
tenemos muebles, y podemos empezar a crear
algunos scripts aquí con el fin formatear nuestro código
o vinculado o código. Vamos a hacer eso más tarde. En este momento. Solo quería hacerte saber por qué instalamos es
lyndon más bonita una de las cosas que
el paquete
realmente hace algo desde el enlace CLI, hilo
más bonito, lo que sea. Otra cosa es que tu ID. Lo hace instalando la configuración
de extensión. Ok. Entonces eso es todo
para la configuración, para todo el
abrigo de calderas. Simplemente haz un git add git
commit con tu mensaje. Por lo que eso no perdió
estos avances. Espero que te haya gustado este video. Nos vemos en la siguiente.
9. Configuración inicial Parte 2: En este video,
vamos a seguir haciendo algunos cambios
de configuración. Sé que son aburridos, pero créeme, si
lo haces bien desde el principio, va a ser mucho más
divertido escribir código porque ya no teníamos
que preocuparnos por ello. Empecemos desde el principio. Y entonces solo
vamos a escribir códigos y probablemente hacer
algunos cambios de configuración, pero va a ser mínimo. Entonces vamos a entrar en estos archivos de configuración ts y vamos a
modificar a cosas que
van a ser importantes. El primero es la cerveza de raíz. Entonces esto básicamente
le dice a tipos grupo, ¿dónde están sus archivos? Y voy a escribir todos mis archivos TypeScript y escribir el directorio fuente que aún no
he calificado, pero puedo hacerlo ahora mismo. Haz tu fuente. En estos directorio vacíos. Vamos a escribir todos nuestros tipos
de archivos grid. Y la segunda cosa
es estas querida opción. Así que básicamente voy
a decir que cuando compilar los archivos TypeScript, quiero poner todos
esos archivos compilados en
estos directorio de compilación. Como estamos haciendo estos, queremos poner eso dentro de
este archivo gitignore porque no queríamos
entrar en la compilación del proyecto. Esas son las únicas
dos cosas que
quiero hacer en el archivo de configuración
ts. Ahora vamos y vamos a
abrir el archivo JSON del paquete. Aquí, vamos a
sumar algunas dependencias. Te voy a explicar
cuáles son estas dependencias, aunque vas a entender
las mejores, las usamos. Eso es genial. Algunos guiones también. Entonces, antes que nada, recuerda lo que te dije en
el último video. Instalamos este
blogging en código VS. Pero supongamos que estás en eso
usando este código y
estás usando algún
ID esotérico o editor de texto, entonces necesitas dar a otros desarrolladores una manera de inclinarte
y formatear su código. Para eso, vamos a crear dos scripts aquí
del uno para LinkedIn. Y vamos a
decir que es fuente vinculada. Vamos a ordenar, vamos a vincular esos archivos
con una extensión TS. Te estoy diciendo aquí estas escriturales solo vincularon
la carpeta fuente, todo dentro de la carpeta
fuente y todo lo que tiene
una extensión tf. Puedes hacerlo más general. Por ejemplo, puedes decidir apoyarte en todo lo que hay
dentro de aquí. Pero si haces esto,
asegúrate de poner E está vinculado ignorar archivo con los módulos de nodo y
la carpeta Build. De lo contrario vas a inclinar cosas que
no quieres prestar. Sólo voy a hacerlo
así, mantenerlo simple. Y luego voy a añadir
otro script llamado formato, donde vamos a
usar lo más bonito. Creo que ese comando podría ser
algo así, ¿verdad? Y tenemos que especificar a
qué queremos formatear. Entonces voy a decir fuente una slash, todo aquí adentro. Todo lo que termina
con el archivo dot txt. De nuevo, puedes
hacerlo más general como guión más bonito,
guión, punto derecho. Pero entonces hay que
crear el archivo de ignorar punto más bonito con el fin de
ignorar la carpeta de módulos de nodo. De nuevo, vamos a mantenerlo simple. Hagámoslo así. Vamos a probar estos
dos guiones aquí. Agreguemos un archivo de índice dot txt. Y hagamos algo así
como tipo de pruebas
sin costo en la cadena aleatoria de
asignación. Mi extensión VS Code me
está diciendo, Hey, tienes un problema aquí. Pero supongamos que
no estás usando este código, entonces tenemos que de
hecho que estoy
tratando de formatear
y guardar y no puedo recordar, yo estaba haciendo algo aquí. Entonces si le dijera al editor ese
formato en seguro a verdadero, entonces cuando guardo este archivo, se
puede ver que más guapa está
agregando aquí el punto y coma. Y eso es porque aquí
especificé esta cosa. Soltero, Soltero, lo siento, semi igual a verdad. Si quieres hacerlo como
lo que hice ahora mismo
por seguro de metano, ve a la configuración que archivo
JSON, que será. Probablemente aquí tengo un atajo, pero lo puedes encontrar
con este ícono de engranaje. Ve a la configuración, y
puedes configurarlo en la interfaz de usuario o puedes ir a este ícono aquí y
decir ajustes abiertos. Y Jason, y yo usamos
a Jason porque para mí es más fácil. De verdad. Basta con añadir esta opción aquí, editar, editor que formato
inseguro igual a verdadero. Y luego cuando
guardes tu archivo, vas a formatear
tu código con predicador. Pero supongamos de nuevo,
no tienes una identificación como esta, entonces solo necesito
hacer lo siguiente. Eso significa, permítanme que
esta opción sea falsa. Entonces si guardé el expediente, no
va a
admitir ese punto y coma. Así que voy y ejecuto este formato de hilo de
comando, y lo puedes ver en
ese punto y coma para mí. Ahora si corro durante el viento, vas a ver que
tengo este problema. La prueba es asignar el
valor pero nunca se usa. Tienes que solucionar estos problemas. Y básicamente, llegamos
a hacer cualquier cosa aquí porque esto es sólo una
prueba que yo estaba haciendo. Pero así es como se captura Es Lean terrorismo
errores más bonitos con estos guiones. De hecho aquí también puedo
este comando fijo. Me gustó esto. Tratará de corregir estos
errores o advertencias aquí, pero a veces puede
porque Eastland va
a quitar tu variable, eso será una lástima, ¿verdad? Entonces cuando tengas otros problemas
solucionables, estas banderas solo lo
van a hacer por ti. De acuerdo, entonces ahora
tenemos estos guiones. Quiero sumar dos más. Ese va a ser
el comando build. Sólo voy a ejecutar TSC. Gsc significa construyó el compilador del proyecto
TypeScript usando todas estas propiedades, escuchando el
conflicto de TA que Jason. Vamos a sumar
también un cheque tipos, que va a ser
el mismo comando TSC. Pero vamos a añadir
estos bandera sin imagen. Entonces lo que esto es
talentoso TypeScript es básicamente no
construir nada, solo revisa los tipos. Asegúrate de que sean correctos. Asegúrate de que no estamos
haciendo nada raro. Sí. Esa es la bandera de no Emmett. Ok. Creo que ya hemos terminado. Ahora. Hagamos dos cosas más. Vamos a sumar las dependencias que
vamos a utilizar. Obviamente vamos
a usar un jazz Z-score, que es la dependencia más
importante aquí. Ese es el punto este curso usando estas biblioteca de ajuste de
discordia. Y luego vamos a
sugerir a los constructores de barras. De acuerdo, así que voy a
tomarme un momento para explicar qué es este descortés paquete
lésbico. Por lo que podemos escribir código solo con estos t-score
dot js biblioteca. Y eso está totalmente bien. Pero la documentación que guía en realidad te recomienda
usar estos
paquete Z-score js slash builders con el fin implementar el
patrón constructor de son algunas clases que se utilizan para poder cortar
comandos, cosas así. Si no sabes cuál es
el patrón constructor, te
recomiendo encarecidamente que leas al respecto
porque el patrón del constructor
está en el patrón de signo. Si no has escuchado
este término antes, el patrón de signos, de nuevo, te sugiero encarecidamente que leas sobre él porque
si quieres
convertirte en un verdadero desarrollador de
software suave, real, y tal vez eres un desarrollador de
software, pero un buen desarrollador de software, entonces necesitas saber cuál es
el patrón de constructor. En realidad es una
pregunta de entrevista bastante común cuando te preguntaron, Oye, ¿sabes de
los mismos padres? Hábleme de ello. Dime cuáles son el patrón de
diseño conductual o
algo así? Los patrones de diseño creacional
y cosas así. Entonces el patrón constructor es un
patrón de diseño creacional que nos permite
construir objetos con métodos en lugar de pasar todo a su estructura de
costos. Por lo que en realidad es bonita, bastante útil, Bastante genial. Sugiero leer al respecto. Esta es la biblioteca
que vamos a usar un wrapper para la partitura
JS para usar estos constructores. También vamos a usar este
z-score solo rebanar el descanso. Los puntajes. Tipos de Api. Estas dos bibliotecas nos
van a permitir
hacer una llamada API a la API. ¿ Por qué queremos hacer una
llamada API a la API z-scores? Bueno, básicamente
porque queremos
registrar nuestros comandos de slash. Para registrar
nuestros comandos slash, necesitamos hacer una
llamada API al sqrt y decir,
Hey, estos son mis
comandos, los registraron. Y sí, esa es básicamente la función de estas
dos bibliotecas aquí. Entonces queremos usar
dot f para gestionar nuestras variables de entorno porque vamos a tener
tres variables de entorno. El token,
token secreto del pero,
el ID de aplicación en el ID de
gremio o el ID del servidor. Recuerda, la constante en el contexto de los lazos de programación en estas puntuaciones y
cosas así. Los servidores se llaman gremios. Una dependencia más, que
va a ser NPM o tío, que nos va a
permitir crear un guion que se ejecuta
secuencialmente o en paralelo, en nuestro caso va
a ser secuencial. Vas a ver para qué es útil
esto. Una biblioteca bastante cool. En realidad. Agreguemos esta cosa. Después de que hicimos esto. Eso es esperar a que esto termine. Vamos a sumar algunas
otras dependencias de dev. El primero va
a ser tipo de nota nodo. Básicamente, si estás
trabajando con conocerlas,
ten viaje estas bibliotecas. Básicamente obligatorio. O si
vas a encontrar problemas de intercambio de
Bay.
Siempre lo tuve. Cuando esté utilizando
sepa que TypeScript. Entonces vamos a agregar otra dependencia dev,
que es el nodo uno. nodo uno va a utilizar para
iniciar nuestro servidor de desarrollo. Cada vez que hagamos un cambio, el servidor va a
detectar ese tanque. Reinicia el servidor por nosotros para que no tengamos que parar para
servir como comenzó de nuevo. No, el nodo uno va a estar
a cargo de eso. Uno más. Va a ser ts node. Recuerda que te dije que no íbamos
a hacer una llamada API. Entonces la API de discordia. Entonces vamos a
ejecutar el archivo, que vamos a llamar registro un alijo
comandos dot ts. Y estos registros, dash,
dash, guión comandos dot dS va a ser como un guión
o algo así. Cada vez que iniciamos el AB en producción o
reiniciamos
el servidor de desarrollo, vamos a ejecutar este script y luego arrancamos el servidor o
iniciamos la bombilla y el servidor. Va a ser una secuencia
de comandos ejecutados primero, ejecutar este archivo y
luego arrancar el servidor. Para ejecutar el archivo TypeScript, necesitamos usar estos nodos Ts porque no podemos
simplemente ir y decir, Hey, no hay nombre de espacio del archivo. Eso no va a
funcionar porque es un archivo TypeScript en
producción, no necesitamos esto. Y por eso estamos agregando
estas dependencias de desarrollo. Ya
te expliqué por qué necesitamos estos npm correr toda
la dependencia. Esto se debe a que queremos ejecutar
primero el script, el script de
comando register slash, y luego iniciar el servidor. Y estoy poniendo estos
en las dependencias y no en las dependencias dev porque queremos hacer eso
también en producción. Si lo he puesto en dependencias
dev, no se va a
instalar en producción. Eso es básicamente todo. Eso es esperar a que esto termine. Y eso en realidad
se eliminó este archivo de índice. Eso es todo por este
alelo de video un poco demasiado largo. Entonces en el siguiente video
vamos a agregar nuestros archivos de
entorno. Por eso espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
10. Configuración inicial Parte 3: De acuerdo, continuemos
con la configuración. Vamos a usar
WAF como te dije, para leer nuestras variables de
entorno. Por eso aún no los hemos
definido, así que vamos a
crear dos archivos. El primero va
a ser plantilla de puntos EnB, y la otra
va a ser esa sólo la plantilla de puntos EnB. Vamos a tal como sugiere
el nombre de archivo, poner plantilla de nuestras variables de
entorno. Vamos a necesitar
el ID de solicitud. Vamos a necesitar identificarnos. Y vamos a
necesitar el token, el token secreto de la, pero sólo voy a copiar todo aquí
y pegarlo aquí. Y obviamente ese punto NB archiva el que va a
tener los valores reales. Y no queríamos comprometer esos valores en un repositorio. Apenas agreguemos otra
entrada a nuestro git. Ignorar todo lo que termina
con una EnB, luego ignóralo. Ahora puedes ver que NBC en gris porque no queremos
comprometerlo en GitHub. ¿ Cómo obtenemos estos valores
reales? Vayamos al portal de
desarrolladores d cuadrado. Vamos a la
información general aquí. Puede encontrar el ID de la solicitud. Así que vamos a copiar y pegar aquí. Entonces vamos a
buscar la identificación del gremio. Para conseguir el GIL
que sí tenías que ser, hay
que empezar habilitado el modo desarrollador
en estas casillas. Por lo que sólo tiene que ir a Configuración de usuario. Y creo que debería estar
en algún lugar bandas auditivas tal vez, sí, aquí tienes
el modo desarrollador, solo habilitarlo. Y luego vas
a poder copiar tu ID de gremio desde
donde decía. Déjame ver, vamos
a la configuración del servidor. ¿ Dónde está el ID de culpa? Creo que tenemos que
hacer clic derecho en el servidor en el panel izquierdo
aquí y simplemente copiar el ID. Así que sólo voy a copiar
el DNI e ir básico aquí. Se ve muy, muy similar al
ID de la aplicación, pero no lo es. El token va a
estar escuchando por dentro, pero haga clic en el
token Reset que se va a mostrar en primer lugar
si no has creado, si aún no has conseguido
el token, y esto es va a
ser el token secreto. Por lo que sólo haga clic aquí, cópielo y péguelo aquí. Obviamente voy
a eliminar este token después de terminar de
grabar este curso, así que ni siquiera intentes usarlo. Recuerda, estas son como
la contraseña de tus barcos, nunca la compartas con nadie. Por lo que ahora tenemos nuestro
archivo ENV, nuestra plantilla DMV. Ahora, un patrón que
me gusta usar en todos mis proyectos y cursos facilidad
de uso o para centralizar todas
estas variables de entorno
en un solo archivo. Así que empecemos a escribir nuestro
primer archivo TypeScript, que va a ser
el punto de conflicto ts. Vamos a importar
punto m del punto F. Y vamos a decir dot
eso con el conflicto. Esto básicamente dice, Oye, ve a ese archivo BNB y obtén todas esas variables de
entorno. Ahora vamos a
exportar const el token, que va a ser
proceso ese token de punto de la NBA. Vamos a hacer una, no
sé
cómo decir esto como un valor predeterminado de
una cadena vacía. Porque si pasamos el cursor sobre estos, ves que el proceso de token
BNB puede ser
una cadena o no definido. Pero queremos que siempre se defina
para que no
tuviéramos errores de
TypeScript raros. Esto va a ser de tipo, string y stream o undefined. Entonces eso también es un
patrón que me gusta usar. Entonces vamos a exportar el ID de aplicación
const, que se va a
procesar en un
ID de aplicación de punto F o cadena vacía. Y luego exportar const gremio ID, que se va a procesar
la EnB para una industria. Al hacer estos o cadena vacía donde estamos atando tanque
TypeScript, ID de aplicación
Tolkien
y el ID todo va a ser definido siempre como una fuerza. El k que ni siquiera estamos
definiendo, definiéndolo aquí. No se preocupa. discordia se va a quejar que
lo estás pasando un anti fuerza. Esto es simplemente básicamente para evitar errores de
TypeScript cuando codificamos. Este es el patrón como usar porque aquí puedo
verlos todos. Medio ambiente, la Biblia
no está haciendo proceso que soy ficha gorda en un lugar
aleatorio en el código. Entonces Ben, teniendo, teniendo
una muñeca alrededor del código, es mejor tener un lugar centralizado para
cenar. Creo que ahora tenemos nuestra configuración de
variables de entorno para nuestro proyecto y están
listas para usarlas. Tenemos que hacer un paso más
de configuración. Pero esta vez va a ser
bastante fácil. Así que hagamos eso
en el siguiente video. Adiós.
11. Configuración inicial Parte 4: Hola. En este video, solo
vamos a crear un
repositorio en GitHub. Si no tienes contando
GitHub que solo calificar estos, muy, muy fácil de hacer. Entonces ve a reposo
y crea un nuevo repositorio. Vamos a llamarlo. No sé el
marcador, claro. Voy a decir un
repo por estas puntuaciones. Curso. Voy a hacerlo público. Y voy a
crear el REPL. ¿ Por qué necesitamos nuestro repositorio? Bueno, básicamente
porque queremos
conectarlo con Heroku
cuando lo desplieguemos. Entonces cada vez que hagamos a
un comediante alguna rama, va a ser el
maestro o el principal, donde quieras llamarlo. Entonces heroico iba
a leer desde el rebelde, desplegado
automáticamente
a un servidor de instancias. Para vincular
el servidor, lo siento, el repo con nuestro repositorio local, necesitamos hacer
algo como esto. Ya estábamos tenemos un repositorio
existente. Copiemos todo aquí
haciendo clic en este botón. Y ahora vamos a
nuestra CLI, nuestra terminal. Sólo copiemos y peguemos. Ahora. Invitar a refrescar esta página aquí. Se puede ver que ahora tengo, tengo algún código aquí. Eso es todo. Eso es todo
lo que quería mostrarte. Es muy importante esta parte, porque sin el repo, no
vamos a tener
la integración de Heroku. Eso es todo. Ahora, en realidad podemos empezar codificar y esa va a
ser la parte divertida de esto. Te veo en el siguiente video. Adiós.
12. ACTUALIZACIÓN: Arreglar las versiones del paquete: Hola y bienvenidos de vuelta. Como dije en videos anteriores, vamos a utilizar versiones
específicas de los paquetes relacionados para desalentar el jazz porque
son demasiado mucho título. Cambian muy a menudo no
están en el lanzamiento v1. Se pueden ver estas faldas JS
wheelers es un acero sobre 0.12. Entonces esto no es a
pesar de que el lanzamiento v1, por lo que es muy, muy cambiante. Para arreglar estos paquetes
se van a decir Jahren. Estos Juzgados de Justicia
exuberantes constructores en varios puntos
de puntos aquí. Estos anotaron el jazz
slash rest en 0.3, y estos anotaron
tipos API 0.30 puntos 0. Este script.js se encuentra en el oriente en la
versión 13, versión 13. Pero aún así, si de alguna manera
actualizamos esta cosa, vamos a tener problemas de
compatibilidad con
estas otras bibliotecas. Sólo vamos a
hacer lo mismo con VSCO o jazz y 13.6. Cuando hagamos esto, veamos qué pasa. Se puede ver que ahora estos
cuatro paquetes cambiaron. Ya no tiene estos signos de
quilates, lo que significa que ahora no podemos
intentar actualizar estas otras dos
versiones de estos paquetes. El John Locke también cambió porque esto es lo que se utiliza para
arreglar estas cosas. Eso es todo. Esto es muy importante. De lo contrario probablemente tengas problemas con las bibliotecas. Espero que te guste verte
en el siguiente video. Adiós.
13. Hacer que el Bot vaya en línea: Vamos a empezar a
crear nuestro bot. Entonces vamos a crear un nuevo archivo y dentro de la fuente,
golden main.js. Y eso es un comienzo
el cliente importante desde el marcador, Jess. Eso es genial. La nueva variable cliente,
la nueva palabra clave. Ahora vamos a tener
estos errores TypeScript. Si ves aquí dice
esperaba el que
discutía sobre agallas 0. Como puedes ver aquí, las opciones son un argumento obligatorio porque no tiene un signo de interrogación
antes de la columna. Si es lana, entonces
será opcional,
pero no tiene. Vamos y control-haga clic aquí o Comando haga clic donde sea. Podemos ver que el
cliente es una clase que extiende los planes base
y su constructor espera estas opciones argumento que es de tipo opciones de cliente. Veamos cuáles son las opciones de este
cliente. Para que puedas especificar
muchas cosas,
cartas, conteo de camisas,
y hacer efectivo. Y observa que
todos son opcionales porque tienen estos
interrogante ante la columna. Pero hay uno que no
es opcional. Y es esta
propiedad intensa aquí. Esta es la que
tenemos que precisar. Porque de lo contrario vamos
a tener ese error aquí. Los otros son opcionales. Si vamos aquí a
la definición
de tipo de esto, se está
complicando. Entonces, en lugar de intentar
adivinar qué es esta cosa,
se va a la documentación, será más claro. Si vas a d squared
j's esa guía y vas a la puerta de entrada
intensa sección. Vas a decir
qué intentes son. Intentos Ghibli fueron
introducidos por dy squared. Entonces los desarrolladores de bots pueden elegir
qué eventos
recibe su sangre en función de qué
datos necesita funcionar. Eso es básicamente todo. Esa es la frase más
importante aquí. Básicamente, si estás
montando un autobús y nombre es usado por mucha
y mucha gente. Quieres
asegurarte de que solo reciba los datos que
necesita para que funcione. De lo contrario, vas
a tener problemas de escalabilidad porque tu cuerpo va a tener, va a recibir montones
y montones de eventos. Lo han hecho aseado. Déjame ver,
Habilitar, habilitando intenso. Puedes ver para especificar lo
que quieras que recibas
tu buck. Primero, piense en qué eventos necesita operar
su botón. A continuación, seleccione la
intención requerida y agréguelas a la estructura de costos de
su cliente como se muestra a continuación. Todo el gateway intenso y
los eventos pertenecientes a cada uno se enumeran en la documentación de la
API de Discord. De acuerdo, Entonces esta es la parte
importante aquí. Vamos a ir aquí. Y da un ejemplo. Si necesitas que tus traseros
reciban mensajes, necesitas tener
intención de mensajes de gremio. Nosotros queremos eso. Lo vamos a sumar más tarde. Si querías que tu trasero publicara
un mensaje de bienvenida
para un nuevo miembro, entonces necesitas que el miembro del
gremio en indi sugiere que necesitas una intención de
miembros del gremio, y así sucesivamente. Así es como se
especifica esta cosa. Intenso que abandera esa culpa. Por lo que necesitamos conseguir eso de
estos patios también. Pero vamos primero a la
documentación de la API de discordia y veamos cuáles son los incidentes aquí. Por lo que tenemos los
gremios, lo que
permite, te permite crear gremio crear gremio de actualización,
eliminar, canalizar, Crear actualización de canal, eliminar
canales, actualización amenazas de grado de
subproceso, o eliminar etapa grados de instancia. Y muchas cosas. Para los miembros del gremio. Puedes agregar miembros, actualizarlos, eliminarlos. Para bandas se pueden entonces
miembros para emojis. No puedes actualizar actualizaciones de
pegatinas emojis, gillion integración
gremio web hooks, presencias, gremio chicos
fincas mensajes de Gil. Esta es la que
vamos a usar mucho. ¿ Qué más?
Mensajes de culpa, reacción, creo que también
se usarán en el discurso. Mensajes con el fin de enviar DMs, reacciones
directas de mensajes
y mecanografía directa de mensajes, horario de eventos, etcétera. Hay algunos que son
privilegiados, intensos, como las presencias calificadas y miembros
ceder por
su sentido. Si la naturaleza de los datos. Entonces básicamente puedes usarlos, pero cuando llegues,
cuando tus botones, como muy famosos,
entonces necesitarás verificación de tu trasero
para apoyar esta cosa aquí. Pero no los vamos a
utilizar en este curso. Para que estés al tanto. Estos se pueden usar antes de que
tu parachoques se haga famoso. Y tenemos limitación de tasas. Dice que
se les permite enviar 120 comentarios de gateway
cada 60 segundos, lo que significa que puedes enviar
un promedio solo dos comandos por segundo. Clientes que superaron su límite inmediatamente se desconectaron
de la puerta de entrada. Y de manera similar a la API HTTP, los delincuentes
reincidentes tendrán revocado
su eje API. Entonces, ¿eso es qué más? Bueno, puedes, puedes aprender mucho sobre todas
las cosas aquí. Creo que
solo quería mostrarte cuáles son estas intenciones de Gateway. Por ahora. No nos vamos a
preocupar por ellos, pero aún tenemos que especificarlo. Vamos a decir intenso, y vamos a
decir una matriz vacía. Va a sumar lo intenso más tarde. Ok, Ahora tenemos que
iniciar sesión al cliente, pero antes de cargarle al cliente, iniciar sesión básicamente
significará que su cuerpo
va a estar en línea. Antes de hacer eso, voy
a crear un oyente listo. Entonces cuando un cliente esté listo, vamos a recibir un evento. Creo que se llama
Listo o algo así. Solo vamos a sacar el registro de la consola
diciendo que nuestros cuerpos en línea. Vamos a crear la
nueva carpeta de oyentes. Aquí vamos a crear
primero un archivo Ready dot txt. Índice. El archivo ts en inlisto. Voy a exportar provocó una función no lista que va a recibir un cliente que va a ser de tipo. Cliente. El código es genial porque
me permite auto importar al
cliente de la discordia. Adivina. Voy a decir que
los clientes están listos. Entonces cuando recibamos
estos eventos listos, entonces vamos
a hacer algo. Veamos qué vamos a hacer. Dentro de aquí. Vamos
a decir registro de consola. Voy a decir que vamos a usar una interpolación de cadenas
y decir cliente que el usuario,
que el nombre de usuario está en línea. ¿ De acuerdo? Ahora TypeScript se queja
diciendo que el objeto es posiblemente conocido porque
el usuario es posiblemente. Mira la
definición de tipo aquí. Déjame pasar el cursor de nuevo, un
cliente o usuario o un nulo. Por qué puede ser no. Pues recuerda que
creamos primero y
obligación y eso, pero luego después
creamos duplicación, el brote no es obligatorio
para tener una aplicación. Llegamos a tener una aplicación que no tiene usuario amigo. Y por eso usted, señor. De acuerdo, así que básicamente podemos resolver este problema simplemente poniendo aquí
estos signo de interrogación. A esto se le llama el encadenamiento
opcional y se enfría la función de
madre y JavaScript, pero lo obtenemos de forma gratuita cuando estamos trabajando
con ese script. Ahora vamos a ir a nuestro archivo principal y
vamos a llamar a estas función
no lista. Pero primero, vamos a escuchar
este archivo de índice que
vamos a exportar en
listo desde ya. Ahora. Básicamente podemos simplemente
exportar desde el archivo de índice. Y eso significará que
sólo tendremos que importarlo de una slash oyentes en lugar de su última correa es slash
oyentes como rayo de azotes. Porque vamos a
tener más oyentes aquí. Ahora no está listo. Recuerda estas necesidades. Los clientes van
a pasar a un cliente. Y ahora vamos a
decir token de registro de clientes. El token, recuerda que
lo definimos en el archivo de conflicto. Ahí está. Ahora tenemos
nuestro cliente conectado. ¿ Cómo empezamos esto aquí? Bueno, empecemos creando un raspado dentro package.json. Entonces aquí voy a crear un nuevo script llamado
Sordo columna main. Voy a usar el nodo uno, fuente de
nodo, main.js. Entonces el nodo uno es genial
porque maneja automáticamente archivos
TypeScript. No tuvimos que hacer
ninguna configuración loca para que funcionara con TypeScript. Entonces vamos a ejecutar este
comando con hilo, columna media, y
esperamos que funcione. Pero curso dev East en línea. Entonces vamos a estas puntuaciones. Y como puedes ver aquí, mi capullo, estos
en línea, está abajo. Está por encima de mí. Y sí, el curso de bulbo
amplio, desafortunadamente. Desafortunadamente, el acero de la tierra porque aún no lo hemos
desplegado. Pero sí, está en línea, así que logramos iniciar
sesión nuestro bot aquí. Tan cool, Eso es todo. Vamos a hacer estos videos. Y vamos a empezar
a divertirnos más
en los próximos. Adiós.
14. Ping Pong: En este video, vamos a
empezar a crear nuestra primera
interacción con sobre. Lo que vamos a
hacer es que vamos a escribir rosa en un canal, canal de
servidor. Y el cuerpo va
a responder con punk. Es un ejemplo muy, muy
sencillo, pero vamos
a aprender muchos conceptos. Vayamos aquí y tecleamos
en mensaje crear. Vamos a importar el
cliente desde el score dot js. Voy a exportar contras esto
en mensaje crear oyente, que va a conseguir el
cliente de tipo cliente. Vamos a decir cliente que aquí tenemos todas
estas opciones. Pero el que vamos a conseguir
un mensaje crea la curva. Estos van a ser la devolución de llamada. Cuando recibimos un nuevo mensaje. Estos reciben un mensaje que va a
ser de tipo mensaje. Se pueden ver métodos de tipo. En primer lugar,
vamos a hacer un
dicho tecnológico Si los exhibe autor
del mensaje, este mensaje de método tiene
una propiedad de autor. Y estas otras
propiedades de Roberts de tipo usuario. Y este tipo de usuario
tiene estos pero propiedad que me dice si el
usuario E sub mantequilla o no. Y es un booleano, así que
es verdad o falso, entonces vamos a volver. Entonces si esto es cierto, vamos a volver
porque no queremos
escuchar mensajes
que vienen de golpes. Entonces vamos a conseguir el
contenido del mensaje, que va a ser
mensaje que el contenido que toLowerCase prueba caso. Vamos a decir si
contenta estos igual a rosa. ¿ De acuerdo? Vamos a responder
a estos mensajes. ¿ Cómo respondemos a un mensaje? El mensaje tiene
métodos de respuesta y podemos pasar una sincronización de cadena o una carga útil de mensaje o un mensaje de
respuesta opciones. Puedes seguir
control-click aquí. Y si te interesa ver todas estas cosas aquí, puedes consultar las definiciones
de tipo. Vamos a hacer las cosas con una
carga útil de mensaje en el futuro. Así que por ahora
vamos a mantenerlo simple y simplemente pasar una cuerda. Va a ser una cadena
interpolada porque vamos a conseguir el nombre para mostrar del,
la persona que envió
el mensaje rosa. Digamos que el mensaje
no recuerda, punto, display, nombre, columna. El punk. Mira a estos miembros es
una propiedad opcional. Siempre, siempre es un opcional apropiadamente desde el mensaje. ¿Por qué? Porque este mensaje se
puede enviar desde un, desde un servidor o
puede enviarse en un DM. Vamos a ver cómo hacer que estos funcionen en ADM en un momento. Pero por ahora, esto
está haciendo, estos, haciendo uso del operador de
cadena opcional para ver si estos no
son nulos o si
esto no existe, entonces esto va a estar
básicamente en definido. Entonces va a decir punk columna
indefinido. Pero no te preocupes,
vamos a encargarnos de eso cuando aprendamos a hacer que
el botón funcione en una DM. De acuerdo, así que ahora vamos
al archivo de índice. Vamos a exportar desde
el mensaje crear. Vamos a exportar el mensaje
crea la función. Vamos al
archivo main.js y debajo del no listo, vamos al
mensaje, el cliente. Pasemos a un cliente. Y creo que casi estamos terminados. Necesitamos una cosa más. Y esos son los intensos. Recuerda que nuestro cuerpo no va a tomar información innecesaria. Por lo que necesitamos
especificar qué tipo de información queremos que reciba
el bot. Vamos a la documentación
donde
hablamos de esos intensos, intensos. Así que recuerda, aquí
tenemos la puntuación Z, la documentación de la
API. Para mí, al menos no
es 100% claro, pero necesitamos estas intenciones
porque necesitamos
recibir mensajes de
un canal de gremio. Una vez que obtenemos esa información del canal y
cosas así, como por ejemplo, canalizar
crear, actualizar, eliminar. Entonces vamos a
conseguir los mensajes. De los gremios. Entonces vamos a necesitar esta intención de mensajes de
gremio. Necesitamos aquellos demasiado intensos aquí. Así que vayamos e importemos
intensos para luego ponernos intensos. Esa culpa de lunares de lino construye un intenso que las banderas
salpican a Gil los mensajes. Hola. Está bien, perfecto. Entonces ahora si vamos al servidor, yo estaba haciendo algunas pruebas. Ahora vamos a tratar de escribir. Necesito entrar en
respuesta con punk. Debate es mi nombre para mostrar. Puedo editar mi nombre para mostrar
haciendo algo como
esto, guardar los cambios. Y si escribo rosa, va a responder
con el punk retest. ¿ Por qué? Porque estamos diciendo
que haga eso en el código. Te estamos diciendo que
consigas el nombre para mostrar. Está bien, perfecto. Por lo que ahora si trato de escribir
ping en un mensaje directo, se
puede ver que los brotes
así no quieren responderme. ¿ Por qué es eso? Bueno, hay una razón
si vamos al disco o guía
GIS y vamos a
la actualización desde V12, versión
V13 de d cuadrado. Jess, vas a ver estas
cosas en los canales m. Dice Estos al cuadrado API V8 y posteriormente al
final los canales no emiten el pueblo crear la banda. Eso significa que estos
criterios piden que no pueda cobrarlos
automáticamente. Recuerda que estos tau crea
viene de estos gremios
sangría aquí está. Chattel crea. No hace eso en d
squared API versión ocho. Entonces para que tus
bots recibieran las m, ese canal parcial
debe estar habilitado. Eso lleva, nos lleva
a otra pregunta. ¿ Qué son los parciales? Aquí tenemos en la
propia guía sección llamada estructuras
parciales. Se puede leer a través de
este párrafo. Pero lo más importante aquí es esta última
frase aquí. Antes de esta característica. Estos precioso cliente,
los eventos no
emitirán si uno de los necesarios es estructurado escuela
no se construya con suficiente para garantizar si estructura
totalmente funcional. Si no optas por
DCS parcial sigue siendo el caso en nuestro código. En nuestro archivo main.js estás, puedes ver que no tenemos
ninguna parcial habilitada. Cuando enviamos un mensaje a
sobre en un mensaje directo, IEP no puede decir de qué canal estamos tratando de enviar
este mensaje. Si vamos aquí, mensaje ese canal,
estos serán indefinidos, pero esta falda JS
se asigna lo suficiente para asignarlo a diferentes
tipos de tipos. Y suena redundante. Pero aquí tenemos el canal DM, que es algo
del guión S. Si tuviéramos que enviar este
mensaje desde un directo, desde el mensaje directo interno, no
tendrás esa información. Para decirle a
estos Cortez, Hey, vamos a tratar de enviar este mensaje a un mensaje
directo. Entonces tenemos que
habilitar estos
canales parciales , y eso es todo. Y también necesitamos otra intención, que es el lino DOT mensajes
directos. Uno. Ahora podemos enviar mensajes porque el buck va a
escuchar mensajes directos. Y no importa si no
teníamos la
información del canal porque estamos habilitados que
los parciales de canal y vamos a recibir mensaje probablemente
va a ser de tipo canal DM o
algo así así. Vamos, tecleemos ping aquí. Tenemos punk indefinido, chicos de TI. Ahora, el mensaje, el
mensaje no topan los miembros porque el autor del mensaje no
es parte de una culpa. Entonces para arreglar esto, vamos a decir
mensaje dot dot nombre de usuario. Si vamos a enviar un mensaje, va a tomar
mi nombre de usuario en su lugar. Eso es todo. Eso es todo lo que
tenemos que hacer
para que nuestro mensaje
cree oyente, para escuchar mensajes ya sea en un gremio o suficiente mensaje
directo. Una cosa más que quería decir aquí es que en este acorde, teníamos estos comandos con
un prefijo como comandos. Mundo comenzó con Adán, sin signo de exclamación ni signo de
interrogación. No lo sé. Esto es lo que
se hizo en el futuro. Iba a revisar
algo como, no
sé si el contenido del punto del
mensaje que comienza con algo como esto, luego manejar el comando de nuevo. Y esta es la vieja
forma de hacer las cosas. La nueva forma es
usando un comando de slash, y eso es lo que vamos a hacer en las puntuaciones iban a, todo lo demás que
vamos a hacer en este curso será
a través de una slash comentarios. Son manera, mucho mejor en el manejo de cosas
como validaciones, en cosas como
manejar opciones arriba. Muchas cosas buenas. Eso es lo que vamos a
ver en los próximos videos. Espero que te hayan gustado estos. Asegúrate de hacer un gameto. Nos vemos en el siguiente video. Adiós.
15. Manejo de comandos de Slash: En este video, vamos
a conseguir todo lo que necesitamos para poder manejar
sus comandos de pestañas. Lo primero que vamos
a hacer E es dentro de la fuente. Vamos a definir un
archivo llamado types dot ts. Y vamos a crear una interfaz llamada
comando slash. Va a tener una
propiedad llamada comando, que va a ser de
tipo constructor de comando slash. Este tipo proviene de estos
patios, constructores de slash, que es la biblioteca que
vamos a utilizar para construir comandos. Entonces va a
tener run property, que va a ser básicamente una función o una devolución de llamada a la
que vamos a llamar cuando manejemos
la interacción. Esto va a recibir un
parámetro llamado interacción, que va a ser de
tipo interacción de comandos. Vamos a devolver
promesa nula de esta cosa para que podamos
manejar operaciones asíncronas. Y sin embargo estos, este tipo se va a utilizar
en muchos lugares. Entonces por eso quería estar en algún lugar centralizado y
común para los archivos antiguos. De acuerdo, ahora vamos
a crear una nueva carpeta llamada esta slash
comandos slash grants. Y dentro de esta
carpeta vamos a crear un archivo index.html, no un archivo de carpeta, index.js. Dentro de este archivo, vamos a crear una matriz de comandos de slash. Y cada elemento de esta matriz va a ser de
tipo comando slash. Tan fácil, simplemente, hagámoslo
como este comando slash, que va a ser de
tipo es comando slash. Y va a ser una matriz. Por ahora no
teníamos ningún comando, así que vamos por defecto
a una matriz vacía. Cuando empezamos a crear
nuestros comandos, estas matrices se van a
llenar con esos valores. Bien, genial. Ahora vamos y vamos a
crear un nuevo oyente aquí. Lo vamos a llamar
a la interacción. Efectivamente. ¿ Por qué en la interacción? Genial. Porque como comandos de latigazos son
lo que llaman interacciones. Vamos a exportar const en la
interacción crear. Esto va a
recibir a un cliente que va a ser de tipo
cliente desde el flagelo. Va a decir que
la interacción del cliente crea. Vamos a tener una devolución de llamada de
sumidero para esto. Y esta
devolución de llamada asíncrona va a conseguir una interacción
con eso en este momento, es de interacción tipo. Recuerda que en nuestro, nuestros tipos va a ser
de tipo interacción de comando. Entonces y aquí, estos 0s
de interacción tipo, y aquí es de tipo interacción de
comando. Bueno, porque una interacción puede ser cuando también haces clic en un botón, cuando seleccionas
algo de un menú, o cuando haces algo
desde el menú contextual. En primer lugar, tenemos que
asegurarnos de que esto es en realidad una interacción de
comando, comando. Para eso, tenemos
interacción dot comment. Tenemos este método aquí. Y si en un comando entonces
vamos a llamar a otra función y
otra función llamada handle slash command. Vamos a crear esa función
debajo de esta cosa aquí. Vamos a llamarlo manejar comando
slash. Esto va a
ser un fregadero también. Y va a recibir una interacción de tipo de interacción de
comando. En primer lugar, vamos a obtener el comando slash de
estos comandos de lash, arrays, comando slash
de comandos de slash. Esto es un borrador. Podemos utilizar el
método fino Find comando. Vamos a decir es comando slash comando dot comando dot name igual a interacción
dot nombre del comando. Déjame ponerlo así. De hecho, solo
con el propósito de grabar, haz aquí una cosita. Voy al RC más bonito. Voy a ponerlo
a 80 que no puedo. Se puede ver mejor
lo que está pasando aquí. Así que permítanme de hecho usar mi
script de empaquetado adyacente. Entonces voy a decir maldita formato. Nuevamente, va
a formatear todos mis archivos sólo con el propósito de retardar porque mi
pantalla no es tan grande. Un comando de slash puede
ser un
comando de slash o no definido. Tenemos que comprobar si esta
cosa está definida primero. Si no está definido porque comando
slash no se
encontró por cualquier razón. Podemos responder diciendo
interacción dot reply. Tenemos que decir
comando contenido, no encontrado. Volvemos. Es así como respondemos al, a la interacción,
al comando slash diciendo
simplemente interacción que responden. Si lo es, si se encuentra
el comando slash, entonces vamos a
esperar como comando de latigazo dot run y pasamos
la interacción. Función tan muy fácil. Ahora aquí en el cliente que sólo
vamos a esperar, manejar un comando de slash
y pasamos la interacción. Esto. Correcto. Ahora tenemos una forma de
manejar cualquier comando. Solo tenemos que empezar a agregar
cosas aquí en esta matriz. Y eso es lo que vamos
a hacer en el siguiente video. Pero antes de terminar este video, recuerda que no lo hemos hecho, no los hemos utilizado en interacción crear función
dentro del main.js. Así que hagámoslo ahora mismo. Exporte desde este archivo de índice. Exportar desde una
interacción crea. Exportemos en grados de
interacción. Para que podamos conseguirlo desde aquí. Interacción crear cliente. Bien, genial. Creo que eso es todo lo que vamos a
hacer en este video. Seré como Es Nos vemos
en la siguiente. Adiós.
16. Crear un comando de Hello: En este video, vamos a crear nuestro primer comando de slash. Sólo va a ser un
saludo comandos. Así que simplemente buceas como latigazo hola y te va a
responder con hola. Y va a mencionar
tu nombre para mostrar. Así que vamos a crear un nuevo
archivo llamado hola dot. Exportamos const
el comando hello, que va a ser
de tipo comando slash. Necesita mandar y
la propiedad equivocada. Así que primero definamos el comando con un constructor de comandos de
slash. Esto es lo que te estaba
contando
hace unos videos sobre el patrón de
diseño constructor. Aquí tenemos dos opciones. Nosotros tampoco, vamos a
ver, declaramos clase. Tenemos que establecer básicamente las propiedades
llamando a algunos métodos. Esto es lo que
vamos a hacer, set name. El nombre del
comando va a ser hola y enviada descripción, que va a ser
devuelve una línea de saludo. Este es el
comando constructor en acción. Lo siento tanto, este es el poder del
diseño del constructor en acción. Declaramos la clase y
luego comenzamos a sumar las propiedades de esta
clase con estos métodos. Aquí. Nuevamente, todo lo
que necesita el vaso, se va a
sumar por métodos. Eso es todo. Ese es el constructor,
el signo tiroideo. Ahora vamos a
definir el método run. Recuerda que esta cosa
recibe una interacción. Simplemente vamos a decir
una interacción de peso. Esa respuesta. Y el contenido
va a ser Hola. Vamos a usar una
interpolación de cadenas y necesitamos
conseguir que el miembro nick,
nombre mencionado. ¿ Cómo hacemos eso? ¿ Cómo obtenemos el
apodo de membrana mencionado? Bueno, hay dentro estos constructores
apodo miembro mencionado. Sólo tenemos que
pasarle el ID de usuario. Y eso es todo. Recuerda,
mención de apodo, y
pasamos el ID de usuario de interacción. Esto es básicamente. Lo que tenemos que hacer ahora es básicamente ponerlo dentro de
este comando slash aquí. Digamos hola comando. Eso es todo. Ser tan buena salud para importar esta cosa directamente. Eso es todo. Ahora vamos a
empezar a darn def main. Ahora si vamos a nuestro servidor y tratamos de
buscar ese comando, vas a
ver que no
teníamos ningún comando Hello. ¿ Qué está pasando aquí? Entonces para
obtener nuestros comandos, recuerde que especificamos estos comandos de aplicación
en los permisos. Vamos a brote curso def. Vamos al generador de URL. Así que recuerda que
llevamos esta cosa aquí. En estas puntuaciones, hay
dos tipos de comandos. Esos son
comandos de aplicación que están disponibles para
gremios antiguos para todos los servidores. ¿ Sobre cómo
activamos esa cosa? Bueno, vamos a entrar mientras que
tal vez el oyente no listo. Listo. Después de decir eso,
los cuerpos y la línea, podemos hacer lo siguiente. Podemos decir
aplicación cliente dot dot set. Y podemos oír dicho
todos los comandos. En primer lugar, ver
que el cliente, esa aplicación es
posiblemente la nula. Así que utilicemos aquí el operador
de cadena opcional. Podemos establecer estos
conjuntos de demandas. A partir de aquí. Podemos configurarlo aquí básicamente. Pero, ¿cuál es el problema con esto? Bueno, en realidad no hay problema. Hagámoslo ahora mismo. Digamos comandos. Digamos que los comandos de
latigazos de esta cosa de aquí. Ese es mi
comando bit slash desde aquí. Vamos a conseguir, vamos a conseguir sólo el comando de slash
dot comando a JSON. Básicamente donde estamos
convirtiendo esta cosa aquí, estas clases aquí,
dos objetos adyacentes, eso es algo que el constructor de comandos de
slash puede hacer. Sólo podemos pasar comandos aquí. Eso es todo. Así es como registras
los comandos de la aplicación. Pero hay una
captura en hacer esto. Si ejecuto eso, John def main otra vez y mi
libro curso Davies en línea, vamos a entrar en mi servidor
y escribir. Hola. Se puede ver que todavía no
tengo estos mandos aquí. ¿ Por qué es eso? Bueno, es porque los comandos de la
aplicación tardan algún tiempo para propagarse. Puede tardar hasta una hora. Entonces por eso en este curso, también
vamos a registrar los comandos del gremio porque son
Inmediatos, Inmediatos. Tenemos que solo hacer una solicitud HTTP a la API de
discordia y eso es todo. Los comandos se van
a mostrar de inmediato. De lo contrario, tengo que esperar
una hora para verlos
y eso no es conveniente. Pero sí, así es como
registras comandos
para todos tus gremios. Así que eso es todo por ahora. En el siguiente video,
vamos a ver cómo podemos registrar comandos v0 para nuestro gremio solo porque
van a ser necesarios. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
17. Registro de comandos del gremio: Hola. Por lo que ahora esperábamos
más de una hora tal vez
al comando de aplicación
disponible aquí en nuestro servidor. Por el, ya sabes, cuando
te
estás desarrollando, no quieres esperar
una o dos horas para probar tus cosas. Quieres que eso esté en mediación. Por eso vamos
a crear un guión para registrar comandos de
gremio. Lo que tenemos que hacer
es ir aquí dentro source y crear un nuevo archivo llamado comandos de
rendimiento registrado. Puedes nombrarlo como sea. Por cierto, elegí comandos de culpabilidad
registrados
y vamos a crear estas función de comando de registro, que va a ser asíncrona. Aquí vamos a hacer
un par de cosas. En primer lugar,
vamos a definir los comentarios que
queríamos registrar. Vamos a obtener
los comandos de barra inclinada de estos archivos de índice de
comandos de pestañas, y lo vamos a mapear. Y vamos a destruir sólo la propiedad de comando y convertirla a JSON
mando que Jason. Vale, eso es
básicamente lo que hice aquí en el oyente no listo. Acabo de hacer en la
estructura aquí, pero podemos tratar de hacer
eso aquí también. Entonces, sí, eso es
básicamente lo mismo, malo ahora dentro de este
script aquí, si quieres, puedes hacer una función
para conseguirla, reutilizarla aquí y a la derecha, un oyente que depende de ti, Sé que van a calificar a
estos clientes de descanso con un descanso. Con estos descansos que
proviene de estos
SIG core es slash rest. Y tenemos que especificar
qué versión usar. Voy a especificar
que quiero usar versión nueve en el momento en que
estoy grabando este video, tenemos que establecer un token para que se autorice
hacer el put-call para registrar nuestro
rendimiento de aplicación
comandos. Por lo que llamamos a este set token y le
damos el token
de nuestro archivo de conflicto. Por cierto, vamos a
envolver todo dentro aquí en un try-catch. Estos dentro del try. Y ahora vamos a
decir en el registro de la consola empezando a refrescar
los comandos yield. Entonces emitimos la
API real call rest dot. Va a ser una solicitud PUT. ¿ Dónde hago? ¿Cuál es el punto final donde
vamos a hacer esta llamada API. Bueno, tenemos
que sacarlo de las rutas. A partir de estos tipos de
API puntuados, VP9. Decimos ruta. La aplicación
cede los comandos. Esta cosa, como
se puede ver aquí en la documentación
de este método. Esta es la ruta para estos
tres puntos finales aquí. Por lo que vamos a llamar
al punto final put en
las necesidades en la URL, el ID de la aplicación
y el ID de gremio. Entonces sólo vamos a conseguir el ID de solicitud, el
ID de gremio. Y el cuerpo va a ser los mandos que
acabamos de reunir desde aquí. Tan fácil como esto. Y luego vamos
a imprimir de nuevo que
con éxito o recargamos los comandos del gremio. ¿ De acuerdo? Si hay un error
por alguna razón
sólo vamos a imprimir ese error. Entonces lo último que hay que
hacer se acaba llamar esta función aquí. Eso es todo. Ahora estamos listos para registrar
nuestro inicio de culpabilidad. Lo siguiente que
vamos a hacer es
crear o modificar
nuestros scripts aquí. Una cosa antes de hacer esto, creo que instalamos NPM o
más bien toda dependencia de activos. Pero en realidad no
quiero hacer eso. Quería instalarlo
como dependencia sorda. Vamos a quitarlo. Con John. Eliminar npm ejecutar todo. Vamos a añadirlo de nuevo. Pero como
dependencia de dev como esta, menos capital D npm ejecutar todo. Y se va a sumar
como dependencia de dev. ¿ Qué vamos a hacer a continuación? Vamos a definir estos
comandos o guiones de culpabilidad de registro. Va a usar D como nodo
para ejecutar el archivo TypeScript. Vamos a decir que fuente
registran comandos de culpabilidad. Entonces vamos a
The find the Sordo, un script que
va a usar estos npm run todo NPN Bernal
se puede utilizar así para ejecutar comandos
secuenciales
son como estos a ti para usar para ejecutar
comentarios paralelos. Queremos que estos sean secuenciales. Queremos primero registrar los comandos de gremio
emitidos esa llamada API. Entonces quiero
ejecutar sordos columna
main en ese orden. último pero no menos importante, vamos a definir
es iniciar el script, que se va a
utilizar en producción. Y esto sólo va a
ser lo mismo que def main, pero no reconstruido main.js
cuando compilamos, cuando construimos nuestro proyecto. De hecho, podemos hacerlo ahora mismo. Jahren construir solo una, puedes ver, verás que se han creado estos
Build folder. Y tenemos todos nuestros
archivos de fuente. Pero en JavaScript, main.js
es esto aquí. que puedan ver que
vamos a ejecutar ese archivo en producción
y por eso no se le concedió este script de
inicio aquí. Pero eso es para el futuro. Por ahora, vamos a correr sordos malditos. Ok. Parece que registramos
los comandos con éxito. Si vamos al servidor
y el tipo es slash hola, se
puede ver que ahora
tenemos dos comandos slash. Uno será para los comandos de
aplicación, y el otro debe ser
para el gremio elogia. Por lo que ahora podemos probar
estos de inmediato. Se van a repetir
dos veces y desarrollo que
no creo que sea un tema. Entonces podemos, si queremos probar el comando fuera
del servidor AAA, queríamos probarlo
en un mensaje directo. Bueno, no teníamos
demasiada alternativa. Tenemos que esperar, um, hasta que el comando Este se
registre como comando global. Intenta probarlo,
probarlo en el servidor, y luego intenta probarlo en el mensaje directo si
necesita estar disponible. Mensaje acidótico. Eso es todo por este
video, espero que te guste. Nos vemos en el siguiente
video. Adiós.
18. Desplegar A Heroku: Hola, Así que ahora viene
la parte divertida. En realidad ahora tenemos
algo que funciona. Entonces mi filosofía es que si tienes algo
que está funcionando, entonces desplegado lo antes posible
como producción. Porque entonces después
sólo se va a complicar cada vez más. Estamos en Heroku. Si no tenías una cuenta, entonces simplemente ve a Heroku, heroku.com y
crea una cuenta. No hay ciencia
al hacer eso. Entonces vas a
tener tu tablero. Aquí está dashboard.heroku.com. Y como pueden ver, tengo comprada mi aplicación
para mi servidor. Pero obviamente para este
curso vamos a ir aquí y crear una nueva app. Se puede llamar curso de bot
Discord. Las regiones que puedes
elegir Estados Unidos o puedes elegir en el
original como, bueno, solo
hay dos regiones, sí como Europa, voy a
elegir Estados Unidos. Crea aquí arriba. Voy a improvisar
un poco. Entonces sí, vamos
a conectarnos con GitHub, recordamos que nosotros, nosotros, alojamos nuestro proyecto
que ese repo de GitHub. Tienes que empujar todos
tus comandos, lo siento, todos tus mandos. Si no lo has hecho, es fácil, solo git, agrega git commit con un
mensaje, tu mensaje de confirmación. Bueno, no tenía
nada en este momento, así que no me va a decir nada a gamete,
trabajar en tratamiento. Y luego git push. Empuje. Si es la primera vez que
estás haciendo tu push agenda, tienes que hacer git push menos u origin master o el
nombre de la rama, esa es tu rama principal. Entonces después, lo siento,
después de que hagas eso, luego van a estos
Desplegar y conectar GitHub, conecta tu GitHub
y busca eso. Estos 44, sí,
tienes que primero, creo, conectar tu cuenta
de GitHub a Heroku. Como ya hice eso
con mi otro proyecto. No me está mostrando aquí, pero va a
incitarte a hacer eso. Si ese es el si es la
primera vez que lo haces. Bueno, entonces tengo que poner
el nombre de mi repo. En realidad no lo sé
que la parte superior de mi cabeza. Entonces si voy aquí, y serán estos,
estos anotaron sobre el curso. Así que déjame sólo copiar el
nombre de esta cosa. Vayamos aquí y pegamos la búsqueda. Mostrándolo aquí. Sólo voy a hacer click
en este botón diciendo que Connect intentará conectarse. De acuerdo, ¿y me está diciendo
cuál es mi rama principal? Mi rama principal se llama Maestro. Espera a que pase un CI ante
el azul, no teníamos CI. Podemos dejarlo así. Entonces tenemos que ir a los ajustes. Tenemos que ir a las barras de conflicto. Necesito agregar nuestro entorno de
desarrollo, lo
siento, nuestras
variables ambientales aquí. Recuerda en la
plantilla EMF tenemos el ID de aplicación
que la divide aquí. El valor para estas cosas. Puedes buscarlo en tu
buck course prod obligación. Recuerda que es éste de aquí. El valor va a
ser esta cosa aquí. Después vamos y añadimos
la otra clave, que es el ID del gremio. Entonces el ID del gremio no lo es. Sí, en realidad no necesitamos la identificación de gremio porque el ID de
culpa se va a utilizar sólo para el registro. Registrar comando de culpabilidad, lo siento, buscamos culpabilidad, yodo, todo nuestro proyecto. Se puede ver que sólo
lo
estamos usando aquí dentro de los comandos de
registro de culpabilidad. Entonces no vamos a
poner esta culpa IV. Y el token, el token
que realmente necesitamos, irá a donde se compró una
cosa todavía? Restablecer token. Sólo hazlo. Y me va a
dar token y
me enfrento aquí y agrego el problema
del medio ambiente. Creo que eso es todo lo tenemos que hacer básicamente
dentro de Heroku. Tan fácil como eso. Tenemos que crear un archivo
más en línea. Tenemos que crear
estos archivo proc aquí. Estos Procfile, tenemos que
poner el hilo trabajador iniciado. ¿ Por qué tenemos que hacer esto? Bueno, cuando implementamos alguna
aplicación en Heroku, heroku va a suponer
que tu aplicación va a estar
vinculada a algún puerto. Pero como pueden ver,
nuestra aplicación nosotros, estamos en especificar aquí, hey, une esta cosa al puerto 3 mil o
algo así. Esta es una regla general. Si tu obligación de no
vincularte a un puerto específico, entonces solo Audi no funciona. Y eso es lo que
vamos a hacer aquí. El trabajador necesita algún
comando para arrancar al trabajador, obviamente, eso va
a ser discorvante para empezar. Recuerda, sabe, construido principal. Heroku es lo suficientemente inteligente como para construir tu aplicación
porque va a buscar scripts,
algo llamado built. Y va a ejecutar
este guión aquí. En primer lugar, se va a
instalar las dependencias. Acaba de decir dependencias de dev así
como dependencias. Se va a construir
tu aplicación, entonces va a eliminar
las dependencias dev. Y finalmente se va
a ejecutar, maldita, lo siento, el comando que
usted especifica aquí, que es discorvante,
empieza en este caso. Creo que eso es todo lo que
tenemos que hacer. Pongamos a prueba estas cosas. Así que agreguemos un commit, agregó el archivo Brock, archivo
para la implementación de Heroku. Vamos a empujarlo. De acuerdo, entonces si
hago esto y voy a la actividad, vamos a ver,
debería aparecer aquí. Sí, creo que necesitábamos hacer
click en este botón aquí. Y van a despliegues automáticos. Entonces veamos si eso
resuelve nuestro problema. Supongo que tenemos que hacerlo, tenemos que hacer un comando, hacer un git push otra vez. Así que vamos a hacer
algo como esto. Git commit menos,
menos un minuto. Estoy aquí al final para
que sea diferente. Entonces tenemos que hacer git
push, dash, dash force. Ahora, alguna vez montamos la historia. Buena historia, y
ahora está apareciendo aquí. Veamos el progreso de la construcción. Esto va a la detective de la aplicación
NodeJS. Y dice en peinar
binarios y no nevó. ¿ Y es npm usar un
resultado de falla en la versión Node? Sí, eso probablemente sea uno. También debemos hacerlo. Pero antes que nada, veamos. Tenemos que especificar aún la versión del nodo que
queremos utilizar aquí. Pero veamos qué
está haciendo aquí. Se trata de instalar dependencias. Es edificio con John construido. Ejecutar estos comandos TSC. Entonces está imprimiendo
las dependencias de dev. Entonces está guardando la compilación en caché con estos gigantescos comandos de efectivo. Entonces es lo suficientemente inteligente como para hacer eso. Y descubrió
este tipo de mama, los perfiles declaran
tipos de trabajador y web. No necesitamos la
Web, así que vamos
a desactivar esta cosa aquí. Vamos a C. De acuerdo, así que aquí está. Tomó mucho tiempo para mostrarse. He tenido los recursos de ir a. Y en recursos va
a comprar web y trabajador. En web, vamos
a desactivarlo. En trabajador,
vamos a habilitarlo. Eso es todo. Ahora si vamos aquí para
mostrarte más registros de vista, estos van a ser tus registros. Vas a ver que ahora nuestro curso comprado
trajo en línea. Eso es básicamente todo. Ya lo tenemos. Nuestro camino va a ser ahora nuestra sangre está en
producción. Básicamente. Lo que tenemos que hacer, no se muestra aquí. Se está mostrando aquí. Entonces eso es una sorpresa. Veamos. De acuerdo, entonces funciona. Pensé que iba
a tomar más tiempo conseguir aquí los
comandos de las aplicaciones, pero fue casi de inmediato. Y eso fue una sorpresa para mí. Pero sí. Ya está ahí. Está en producción y
siempre va a ser una
línea aquí porque, ya sabes, está en
Heroku, así que sí. Sí, eso es todo. Hemos desplegado todo con éxito
a Heroku. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
19. Añadir Versión De Nodo En Paquete Json: Hola, Así que sólo una cosa más. Recuerda en la orejeta build, dijo
que no
especificamos la versión del nodo. Se utilizó la versión LTS de
suponer, que es 16.4.2. Entonces creo que eso
es una coincidencia. En realidad no está
usando el archivo NVM o C, usando la versión LTS Heroku. Por lo que queremos igualar la
versión que estamos utilizando en desarrollo a la
versión donde usar en producción entonces es fácil
solo añadir estos motores, Robert D en el paquete
JSON y añadir estos nodos. Estos, ella va a ser la
misma versión aquí. Por lo que ahora vamos a dejar que Heroku solo use cualquier
versión de nodo que quieran, vamos a usar lo mismo que
estamos usando para el desarrollo. Y si lo estás, si
estás trabajando en equipo, entonces puedes optar por no
actualizarlos hasta que lo sepas, actualizas los paquetes correctamente
y cosas así. Entonces eso es algo que
sucede mucho cuando estás trabajando en un gran proyecto. No quieres simplemente
actualizarte a lo último sin preocuparte por romper cambios y cosas por el estilo. Es por eso que probablemente quieras la misma versión
que estás usando y desarrollo en producción, vale, Así que básicamente nos damos por vencidos, todo se
agrega la versión del nodo. De hecho, adyacente, Ese va
a ser nuestro mensaje de compromiso. Entonces obtenemos empuje. Podemos ir a la actividad
y refrescar esta cosa. Ahora tenemos estas nuevas
construidas en progreso. Y ahora se puede ver que esto ya no
es inespecificado. Se va a usar 16.4.2
es bastante rápido. Estas construcciones, básicamente
terminó tan rápido. Ahora podemos ir a los registros de BYU. Se puede ver si. Por supuesto, amplia no está alineada, así que sí. Eso es básicamente todo.
Seré como este video. Nos vemos en la
siguiente. Adiós.
20. Añadir Comando: Hola. Entonces en este video, vamos a empezar a
agregar otro comando, que va a
poder sumar dos números. Sé que suena muy fácil hacer y de hecho,
es fácil de hacer, pero vamos a
empezar a aumentar la complejidad de nuestros
comandos a medida que pasan los videos. De acuerdo, entonces vamos a agregar otro
comando llamado add app.js. Voy a exportar una
variable const llamada comando EPC, que va a ser de
tipo como comando lash. Y parece que TypeScript no me
está ayudando. Por lo que tengo que importar esto
mentalmente como comando slash desde la propiedad de comando y la propiedad. Primero, hagamos la propiedad
command, y vamos a usar el constructor de comandos de
slash. Así que veamos si VSCode
me ayuda a saber comando slash. Sí, parece que esta cabra me
ayude a importar automáticamente, eso es el constructor de comandos de slash. Agreguemos una opción numérica. Tenemos aquí un método
llamado opción agregar número. Aquí voy a decir opción. Ahora tenemos que empezar a
construir estas opciones aquí. Vamos a decir,
vamos a pasar una devolución de llamada con una
opción que es,
que es de tipo su opción de número de
comando de latigazo. Y vamos a usar el patrón constructor
para construir suposición. Entonces primero tengo que
decir que el nombre, voy a ser el número uno. Y la descripción. La descripción puede ser algo
así como el número uno. Vamos a establecer lo
requerido para que sea verdad. Cuando ejecutamos nuestro comando como latigazo. Nos van a requerir
ingresar estos número uno. Número uno. Ahora vamos a
sumar un segundo número. Vamos a decir opción
numérica. Opción. Vamos a hacer
lo mismo. Pero esta vez vamos a llamar
a este número dos y número dos. Por lo que ahora tenemos que establecer también el nombre
del comando, obviamente. Entonces el nombre va a estar en. Y también esa descripción, que va a ser devuelve
la suma de dos números. Está bien, genial. Ahora tenemos nuestra propiedad de
mando. Ahora definamos
nuestra carrera correctamente. Digamos que la carrera asíncrona. Y esto va a tener una
interacción como argumentos. Y
veamos qué vamos a hacer dentro de estos callback aquí. En primer lugar, vamos a salir
de la interacción. Vamos a
distraer esta cosa aquí. ¿Qué pasa aquí? No es así. Es como en realidad lo olvidé. Sí, sin estos, así, casi
me olvido ¿cómo se solucionó
lo mismo en JavaScript? Entonces, sí, la interacción
va a ser algo a la semana destructor de
estas opciones aquí. De opciones podemos obtener el
número uno y el número dos. Número uno, podemos
hacerlo así. Opciones delta obteniendo número. Voy a pasar el
nombre de la opción, que es el número uno. Vamos a pasar el segundo parámetro que
se va a requerir. Estos requeridos aquí va
a ser lo mismo que se requiere aquí. Entonces vamos a decir,
vamos a decir verdad. Y eso básicamente me dice que estos número uno siempre se va a definir y
siempre va a venir
en nuestra interacción. Para que como se puede ver, el número
uno es de tipo número. Si elimino estos true aquí, número uno es
numero teñido o nulo. Pero sabemos que no
podemos ejecutar este comando si no
pasamos estas dos opciones. Por lo que queremos número mientras
que se defina siempre. número dos va
a ser lo mismo, pero con el nombre número dos. Ahora tenemos el número
uno y el número dos. Por lo que sólo necesitamos la suma, que es básicamente número uno. Número uno más número
dos, y eso es todo. Ahora tengo la suma
de dos números. Y vamos a decir,
espera, interacción. La otra respuesta. El contenido
va a ser, bueno, vamos a decir el número uno más El número dos es
igual a la suma. Y eso es todo. Ahora podemos empezar a
probar nuestro comando, pero primero recuerda ponerlo
en estos como comandos de latigazos. Entonces vamos a tratar de
ponerlo así comando. Ahí está. Vamos a teclear maldita profundidad en nuestra terminal
porque recuerda, profundidad desconcertante va a
registrar los comandos del gremio. Y entonces va a
empezar a nuestros sordos Jahren. De acuerdo, entonces ahora el libro
núcleos dev, caballete nueve. Veamos. Sí, Ahora
dev y prod o tierra, recuerda orgulloso
siempre va a estar en línea porque
ya está desplegado. Para que podamos ir y teclear una barra. Y nuestro curso de brote dev
está verde en este momento. Así que vamos aquí y
cd comandos aquí. Y tenemos dos comandos. La única facilidad para lo
global y la otra es para el mando del gremio. Así que probemos cualquiera de esos. Son lo mismo.
Vamos a decir diez más 1610 plantas
más 16 es igual a 70. Ahora vamos a teclear. Vamos a tratar de
ejecutar este comando. Nota a continuación, diez más 61718. Nuestro comando de latigazos funciona tanto
en un gremio como en el interior dm. Eso es todo. Recuerda que quieres
desplegar tu nuevo comando, luego solo haz un
gameto y empujarlo a
master o a cualquier rama que
establezcas para Automatic Deploy. Y eso es todo. Lo vas a ver
reflejado en la producción. Eso es todo. Espero que te guste. Nos vemos en el siguiente
video. Adiós.
21. Añadir enlace: Hola y bienvenidos de vuelta. Hoy vamos a
añadir otro comando que
simplemente va a mostrar un enlace. Para ir a Google. Con esto,
sabrás cómo agregar enlaces a tus interacciones. Vamos a crear un nuevo archivo. Llamemos a estos google.png. En realidad solo copiemos
y peguemos desde la aplicación, desde el comando app. Obviamente,
vamos a necesitar reemplazar muchas cosas aquí. En el comando crea un nuevo. En primer lugar, cambiemos
el comando de Google de Office. Tal vez. En el comando, vamos a crear el nuevo constructor de comandos de
barra inclinada. Y sólo vamos
a poner el nombre de estos para ser Google. Y la descripción devuelve un enlace a Google, conjunto más simple. Ahora en la interacción, elimine todo esto, y hagamos lo siguiente. Vamos a crear el enlace inferior. Vamos a crear
una instancia de una fila de acción de mensaje de
clase de fila de acción de mensaje de mensaje de acción. De estos corp dot js. Podemos agregar componentes
a estas filas. Podemos agregar componentes con
este método add components. El único componente
que vamos a añadir en nuestro caso es
el fondo del mensaje. Entonces digamos botón de mensaje que se importa
de la partitura js. Podemos establecer la URL aquí. Se puede ver establecer URL. Definamos una constante
llamada URL de Google. Esto obviamente va
a ser google.com. URL de Google. Eso ha establecido el estilo para que sea enlace. Como se puede ver,
tenemos más opciones. Tenemos Bangor, link, primaria, secundaria, y éxito. Porque el botón Mensaje no sólo
puede ser un enlace, puede
ser un botón normal y realidad
vamos a
usarlos más adelante en este curso. Pero los enlaces son
botones especiales porque están pensados para ser clicados y
retórica debido a un lugar. Entonces es por eso que
necesitan una URL establecida. Es necesario llamar
al método conjunto URL sería establecer el estilo está vinculado. El sello sólo
va a ser Google o
lo que quieras. Ahora podemos básicamente debajo
del botón de enlace, solo espera. La interacción no responde. Aquí podemos pasar
en un objeto y el sujeto acepta estos
componentes propiedad, que es una matriz de componentes. Y el único componente
que vamos a tener este botón de enlace aquí. Bien, Genial. Ahora, también vamos a poner estos dentro de estos comandos
slash array. Así que vamos a ir y el comando de google. Vamos a correr discordantes sordos. Se registraron los comandos de
culpabilidad. Ahora el curso de protuberancia
dev, ella estará en línea. Por lo que debería
poder escribir Google aquí. Me da estos link aquí, que si hago clic en
él, va a decir
aguantar estos lingual, llevarte a google.com. ¿ Estás seguro de que quieres
ir allí y puedes confiar en este dominio si
confías en Google. Confío en Google y bueno, en mi segundo monitor,
abre google.com. Así es como agregas
enlaces a tu bot. Espero que te haya gustado este video. Nos vemos en la
siguiente. Adiós.
22. Parte 1 del comando de información del usuario: Hola y bienvenidos de vuelta. En este video,
vamos a crear un comando para conocer esa
información de usuario de alguien. Empecemos
creando un nuevo archivo llamado userinfo dot ds. Copiemos la calderilla
del último comando que lo creamos. Vamos a necesitar esto. Al ir, se va a escribir esto desde cero y también
estos desde cero. Justo abajo. Vamos en última instancia esto, se
va a llamar a
estos comandos, lo
siento, va a tener
primero una opción de usuario. Podemos agregar una opción de usuario. Aquí. Podemos ya sea tan rápido
como la opción de usuario de comando slash, o podemos construir la opción
dentro aquí con una devolución de llamada. Entonces hagamos el segundo método. Voy a decir opción. Esta opción, puede establecer
el nombre de la opción. Voy a llamarlo descripción
de usuario. Voy a decir el usuario, del que sabremos. Vamos a establecer
la requerida de estas opciones para que sea verdad. No podemos usar este comando sin especificar el
usuario que queremos conocer. Entonces tenemos que leer
obviamente el nombre. Y voy a nombrar estos comandos usuario
subrayado info. Y luego entraremos en decir, la descripción a ser devuelve
la información del usuario, del usuario especificado. En la función de ejecución. Vamos a crear
lo que se llama apuesta M. En primer lugar, vamos a
conseguir al usuario. ¿ Cómo sacamos al
usuario de la opción? Bueno, la interacción
tiene una propiedad de opciones. Esta propiedad de opciones tiene
un método llamado get user. Tenemos que especificar el
nombre de la opción, que es éste. Entonces vamos a copiar usuario. Estos pueden recibir
un segundo argumento, que es opcional, y
es el requerido. Vamos a decir,
sí, se requiere. Para que nuestro tipo de estas
variables usuario sea de tipo usuario. Si no especifico
estos requeridos, va a decir, Hey, esto es usuario o null. Pero sabemos que no podemos
ejecutar este comando si no
especificamos estas opciones y
vamos a decir requerido. Por lo que ahora que tenemos al usuario, podemos conseguir alguna información
sobre él o ella. Podemos decir const, avatar, usuario dot display, avatar URL, que
nos dará una URL del avatar. Y ahora vamos a
empezar a crear nuestro primero, voy a decir M
apuesta nuevo mensaje M, que viene de
las puntuaciones dot js. Entonces eso es una importación
desde estas coordenadas. Y los fines de semana especifican
múltiples cosas aquí. En primer lugar, vamos a especificar
el color, el color, y tenemos muchas opciones
que podemos usar por defecto, puedes usar
código hexadecimal si lo deseas. Pero voy a decir que
quiero que estos sean herramienta borrosa. No sé cuál es el color. También podemos establecer el título. El título va
a ser la etiqueta de usuario. Entonces dijiste esa etiqueta. También podemos especificar la
miniatura conjunto de miniaturas. Y este va a ser
el avatar que obtuvimos de aquí del usuario dot
display avatar URL. También podemos sumar cuando estos usuarios se registraron
por primera vez. Voy a usar
estos otros campos. Voy a decir que el nombre se
va a registrar en. La fecha, se va a
crear el usuario en. Estos necesitan ser una cuerda. Entonces por ahora, vamos a poner
estas dos fechas de bebida. Vamos a más adelante crear una función que
tenga en cuenta que el local del usuario
de la interacción, lo siento. El tercer parámetro
es esta línea. Campo que básicamente
nos dice que podemos añadir
más campos en línea. Entonces sólo voy a decir que sí, porque vamos a sumar
más campos en el futuro. Antes de hacer eso, agreguemos también un pie de página. Voy a decir embed
que dicho Filter. Y los estoy haciendo por separado. Porque entre esta cosa aquí, estas líneas de código y
estas líneas de código, vamos a añadir más
cosas a nuestro embebido. Aquí. En el pie de página establecido, se pasa un objeto que tiene una
propiedad llamada texto. Y aquí estoy. Voy a decir ID
del usuario es punto de usuario. Por último,
vamos a responder a esta interacción
diciendo respuesta de interacción. Y voy a decir
m, lo siento, m camas. Y vamos a
pasar nuestras incrustaciones. Vamos a sumar
más cosas. Por ahora. Vamos a cambiar el nombre
de estos comandos, los comandos info del usuario. Obviamente, tenemos que
agregarlo aquí, comando info del usuario. Hablemos de hilo sordo, y veamos qué pasa. Vamos. Esperemos ambas
curvas débitos en línea. Ahora vamos a nuestro servidor
y tecleemos información de usuario. Aquí se puede ver
que puedo seleccionar todos los usuarios que están
disponibles en mi servidor, que son sólo tres. Veamos, mío, mi propio usuario. Está diciendo que esta es mi etiqueta. Me registraron el
viernes 292019 de noviembre. Y esta es la idea de mi usuario, y este es el color del polo de desenfoque, y este es el avatar, que lo puse como una miniatura. Repasemos lo que
estaba pasando aquí. Ponemos el color para
que sea polo borroso, esa es esta línea aquí. Establecemos el título para que
sea la etiqueta de usuario, que es esta cosa aquí. Agregamos la miniatura, que es mi avatar aquí. Y tenemos estos campos
que se registra en. Registrado en es el título
de estos campos o el nombre. Y tenemos el valor que es user.name creado
que hasta la fecha cadena. Estos valoran aquí. Y también tenemos estos verdaderos, lo que significa que el campo
d está en línea. Y estos tendrán más sentido una vez que agreguemos más información
a estos incrustados aquí. Eso es todo por este video. En el siguiente video,
vamos a añadir más información a estos
n-bits. Espero que te guste. Nos vemos en el siguiente video. Adiós.
23. Comando Parte 2 de la Parte 2: De acuerdo, así que continuemos
con nuestra información de usuario de M ben. Recuerda que nuestro
bot realmente puede enviar tus respuestas dentro de un
rendimiento y fuera del rendimiento. Si estás dentro de un gremio, tendrás
información adicional como, por
ejemplo, el apodo que
usas dentro de eso, siente esa culpa, lo siento. El conjunto en. Entonces cuando te unes a ese servidor
o culpable en particular. Y también lo que se llama, los roles que tienes
dentro de esa culpa. Toda esta información
estará disponible solo si la interacción
proviene de una culpa entre crear el Embed y establecer el
pie de página para el Embed. Primero voy a comprobar si la interacción proviene de una interacción de
gremio en rendimiento. Si esto es cierto, entonces vamos a tener información
adicional. En primer lugar, vamos
a sacar al gremio de la culpa de la que proviene la
interacción. Entonces vamos a
definir estas
variable gremio donde el CE,
interacción esa culpa. Ahora si hacemos d's, veamos la definición de
la definición de tipo de Gill. Vas a ver que
estos pueden ser gremio o nulo. Básicamente sucede
porque el rey gremio no está en el caché. Si eso sucede,
vamos a decir o, y vamos a decir,
espera, interacción. Un cliente que gremios, déjame cerrar estos un poco. Esa búsqueda. Y vamos a pasar la
interacción, el ID del gremio. Estos devuelven una culpa. Y como se puede ver,
estamos usando el peso. Si esta cosa es nula, entonces vamos a
buscar al gremio. Y ahora se puede ver que la
variable de campo es sólo de tipo, culpa. Eso es un gran. Y ahora podemos conseguir al
miembro de estos gremios. Entonces lo que vamos a hacer
es decir miembro constante, EC igual a miembros del gremio que necesitamos buscar
dentro del cache. Obtener usuario. Nuevamente, si estas cosas
no están en el caché, entonces va a
volver en definido. Esta vez vuelve indefinido. Si esta cosa vuelve indefinida, entonces vamos a decir, vamos a buscar para el, para el, para que el
miembro diga aguardan miembros del
gremio que busquen. Y vamos a
pasar el ID de usuario. Y estos efectos
va a devolver una premisa que devuelve una
promesa con un miembro del gremio. Ahora podemos ver que el miembro es solo de tipo miembro de big deal. Ya no va a ser
indefinido. Y ahora estamos seguros de
que existe la culpa y el miembro dentro de
este gremio. Ahora vamos a conseguir el conjunto en campo de los integrantes. Por lo que simplemente decimos
miembro dot unirse a eso. También puedes
destructor si quieres. También vamos a obtener
el rol enfermedad de los roles de los miembros que cobran dinero en efectivo. Afortunadamente, estos,
esto es de tipo colección, que es, que tiene una cadena y una colección de reglas
realmente en la partitura, jazz es solo un mapa con cosas
adicionales. Y cuando me refiero a él, lo tengo, digo algo
así como estos nuevo mapa. Este es un mapa en JavaScript. La colección es básicamente solo un mapa con cosas
adicionales. Ahora vamos a establecer la descripción de los
embeds van a decir M, pero eso es descripción del conjunto. Y vamos a usar
una función de YouTube, que viene de hecho de estos constructores
de barra
js de guardia, que es el apodo miembro
mencionado. Veamos. A esto tenemos que
pasar un ID de miembro, que es el ID de usuario. Veamos, veamos lo que
tenemos en hasta ahora. Vamos a nuestro servidor. Vamos a teclear ¿qué es? Userinfo, y ese es mi usuario. Y se puede ver que
este es el medio. Siento ese
apodo miembro mencionado. Ok. Es como hacer esto, pero dentro de las incrustaciones. Para que pueda dar click sobre esto
y verás cosas. Ahora, volvamos
al código y veamos que estos se unen a eso. Se puede ver que tiene fecha. Es de tipo fecha o un viejo. Por lo que sólo vamos
a decir que únete a eso. Si esto existe, entonces voy a añadir un campo. El campo se va a
llamar conjunta en. Ahora vamos a poner la fecha, pero en lugar de hacer estos, únete a esa cadena hasta la fecha. Eso es genial. La función dentro de
este método aquí llamada llamémoslo
obtener formatos tienen. Esto va a recibir una fecha que
va a ser de tipo. Voy a regresar. En lugar de usar la cadena hasta la fecha, voy a usar dos cadena de fecha
local. Y vamos a usar la
interacción, lo local. Aquí. Aquí tenemos dos cosas. El primero es el local. La persona que está utilizando el
mando o el gremio local, que es el autor local Gil. Voy a usarlo para usar el local del usuario que
ejecuta este comando. Y en realidad podemos especificar el día de la semana para
ser camisa larga, estrecha. Entonces esto es sólo JavaScript. Podemos especificar el engranaje para que sea de dos dígitos o numéricos,
numéricos el mes. Nuevamente, tenemos muchas opciones para DDD largo, corto numérico estrecho. Voy a decir
pulmones el día de nuevo, muchas opciones a la
TDT o numérico. Lo voy a decir numérico. Esto depende de ti. usar cualquier otra
cosa extranjera si quieres. De acuerdo, entonces estos en
este conjunto y
voy a pasar a la fecha
obtener formateada. Voy a pasar la
unida en variable. Voy a decir que estos
deben ser un campo en línea. También aquí, permítanme usar aquí
la misma función. Obtener fechas formateadas. Voy a pasar a un
usuario que creó eso. Bien, genial. Ahora veamos qué tenemos aquí. Volvamos a usar
userinfo conmigo mismo. Y como pueden ver ahora, tengo registro al viernes 292019 y me uní en el servidor Viernes,
Marzo 252010202022. Lo siento. Ese es el
conjunto de ese campo. Ahora vamos a añadir otra cosa, que son los roles que, especificamos aquí, los roles. Así que ahora veamos. Filtremos primero los roles. Porque, bueno, primero vamos a
crear algunos roles en realidad, porque creo que no
tenía ningún servidor. Veamos dónde
tal vez en la configuración del servidor. Vamos a Roles. Y como se puede ver,
tenemos dos roles, pero por supuesto sordos y
comprados, por supuesto prep. Ahí están estos Todos, que es un
rollo completo, eso es genial. Otro, digamos dueño. Y va a ser jello. Y un bajo mencionó este papel. Vamos a
mantenerlo así. Mostrar miembro del rol por separado de los miembros de una tierra, no
importa. Entonces vamos a guardar los cambios
aquí en los miembros. Me voy a sumar aquí. Ahora se puede ver que tengo
este papel de gelina aquí. Vámonos aquí. Voy a decir
M cama ese campo. En realidad vamos a crear primero una variable llamada roles
filtrados. Por ahora solo voy
a tomar los roles array map heat, como este rol. Y luego voy a
usar otra utilidad de los constructores de rollo frío mención. Voy a decir roll mencionado
que voy a pasar un papel. Por último. Veamos, voy a unirme
a esta cosa. Esta matriz con un espacio. Así que básicamente aquí
sólo voy a decir rollos. Después va a interpolar
los roles de filtro esa longitud y ponerlo entre
paréntesis como este. Para ver cuántos roles tiene
este usuario. Y el valor de
esta cosa va
a ser roles filtrados. En realidad, no puedo hacer esto porque esto ya está unido. Entonces esto me va a
conseguir la longitud de la cadena en lugar de
la longitud de la matriz. Entonces hagamos esto aquí. De acuerdo, entonces ahora
sé que no especificé
esta cosa como inline, por lo que debería aparecer debajo de la registrada
y unida en los campos. Vamos aquí y tecleamos UserInfo. Vamos a ponerme a mí mismo. Como se puede ver,
tenemos estos rollos y
dice que tengo dos roles, el rol propietario y
el anuncio a todos. Este anuncio a todos. A lo mejor no quiero mostrarlo. Sólo voy a
decir roles de filtro. Y aquí voy
a filtrar los roles. Voy a decir roll, roll. Si el nombre del rol no es
igual a todos, no
quiero
incluir ese rol. Ahora. Tengo que comprobar realmente
si los roles de filtro tiene alguno, cualquier elemento porque puede ser una matriz vacía para
alguien que acaba de unirse, por
ejemplo, eso es
ECM solo va a decir reglas de
filtro que
longitud estos elementos. Y voy a hacerlo en
esta cosa de aquí. Ahora
volvamos a escribir UserInfo conmigo mismo. Y ahora se puede ver
que lo filtré a todos porque no tiene
sentido ponerlo aquí. Si lo quisieras, lo computas. Si no lo quieres,
puedes filtrarlo. Y patrimonio, tengo
mis roles dueño. Ok. Entonces eso es todo. Creo que la
parte más importante que se tiene que obtener de esto es que sólo se puede incluir esta
información. Iv, estás dentro de una
culpa que necesitas para
buscar al Gremio y al miembro si no
están en el caché. De hecho, vamos a escribir aquí
mensaje alelo a nuestro bot aquí. Digamos UserInfo. Esta vez sólo puedo poner
como yo o los bots. Veamos qué pasa. Ahora sólo puedo obtener
esta información, el registro agrega el ID. Puedo obtener información adicional
porque este comando
no se ejecuta desde la
culpa AIG. Eso es todo. Espero que les guste
y que ahora
sepan cómo conseguir
miembros de gremios y básicamente Bye, al conocer estas, sus
posibilidades son infinitas. Términos de construcción de bots. Estás usando TypeScript,
así que estamos en buen camino. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
24. Parte 1 del Comando de la Encuesta: Hola y bienvenidos de vuelta. Ahora vamos a empezar a construir un comando de sondeo
y barra. Esta será la cosa
más compleja que vamos a hacer ahora. Empecemos creando un
nuevo archivo llamado pole dot ds. Y nuestra encuesta va a
ser muy, muy completa. Entonces vamos a construir algo que es
muy, muy completo. Lo primero que
voy a hacer es ir a copiar
y pegar
en algunas cosas aquí. Quitemos todo aquí. Vamos a quitar estos. Y vamos a cambiar estos
para ser el comando pull, que va a ser
de tipo comando slash. Empecemos a construir
nuestro mando. Aquí. Pongamos lo que sea justo para que
no consigamos ese error. Eso es cancelar
la interacción. Empecemos a construir
el mando aquí. Nuestro mando E va
a ser un complejo alelo. Entonces lo que voy a hacer es crear una función que se
va a llamar de inmediato. Inmediatamente invocado expresión de
función, o que es básicamente el Sur, a diferencia de que usted crea
su función aquí, usted dice el
amor del Consejo, lo que sea, bajo. Ahora esta es una función y
para llamarla de inmediato, lo
haces así. Esa es una expresión de función. Y de inmediato evocó invocó expresión
funcional. Si asigno estas
dos variables a, vas a ver que ABC. Vas a ver
que el tipo de esta cosa es una función
que devuelve void, devuelve por ejemplo uno. Entonces esta cosa va
a devolver un número, su función normal, pero
se llama de inmediato. Eso es lo que voy
a hacer aquí porque mi función va a
ser un poco compleja. Y por eso necesitaba
hacer alguna
lógica especial dentro de aquí. Comencemos a declarar una variable de comando de
barra de costo. Voy a decir que Mu es constructor de comandos de
slash. Y en este momento se puede ver
que estos comandos se quejan de que estos espera constructor de comando
slash, podemos, para
deshacernos de ese error, simplemente devolver los comandos de slash. Ahora tenemos una identificación limpia sin advertencias ni
nada por el estilo. Ahora empecemos a crear
estos comandos de slash. Lo primero que
vamos a agregar es una opción entera
que va a ser el momento en que la encuesta
va a estar disponible. Para eso, voy a
decir una opción entera. ¿ De acuerdo? Necesito construir la opción. Entonces creo una devolución de llamada
como argumento. Y esto va a
ser Option dot name. El nombre de esta opción
va a ser tiempo. Entonces necesito establecer
la descripción. Y la descripción
va a ser cuánto tiempo va a durar
la encuesta. Ahora, voy a decir que
este es un argumento requerido. Tan triste, requerido a verdad. Además, quiero poner un
valor medio y el valor máximo. Esto depende totalmente de ti, pero quiero un valor medio de
uno y un valor máximo de 60. Ahora que tenemos el tiempo, ahora tenemos que especificar
la unidad de tiempo. Tenemos que ver si esto es
segundos, minutos, horas. Para eso. Primero, voy
a crear una enum, que va a ser unidad de tiempo. Voy a decir segundos
iguales a segundos. Lo que significa igual a minutos
y horas iguales a la nuestra. Esto no es necesario, pero quiero hacerlo como una
mejor práctica para que
tengas un lugar central donde manejes este
tipo de cosas. Ahora vamos a añadir otra opción que va a ser
una opción entera. Lo siento, una opción de cuerda. Voy a decir agregar
una opción de cadena. Voy a crear la opción de devolución de llamada
aquí, ese nombre establecido. Y el nombre de
estos va a ser unidades de subrayado tiempo. Una cosa, no
creo que haya mencionado estos,
pero estos nombres sólo pueden ser como si sólo se pueden
separar por un guion bajo. Si haces algo como
esto, va a fallar. Si tienes palabras compuestas
como estas, usa un subrayado. Ahora la descripción
va a ser lo que sea, sólo va a decir a
tiempo unidad ser utilizada. Esto también se va
a requerir. Entonces voy a fijar el
salario requerido a verdadero. Y aquí es donde
agrego las opciones. Entonces en las elecciones y estas
espera una matriz de matrices. El primero, va a ser el segundo, la segunda opción. Entonces voy a decir unidad de
tiempo dot segundos. Y el primer elemento de
esta matriz va a ser el nombre que se va a
mostrar en este tribunal. Y el segundo valor está en el segundo elemento
de estas matrices para ser el valor real que
vas a utilizar en tu código. Aquí puedo poner segundos, y aquí puedo poner segundos unidad de
tiempo. O simplemente puedes usar lo mismo si no te
importa la capitalización. Voy a hacer eso aquí. Sólo voy a repetir
el nombre y el valor. Y voy a
repetir este proceso. Pero con minutos, con horas. Horario y horario. Nuevamente, si quieres cambiar la etiqueta que se va a
mostrar en este cuadrado, solo cambia este primer
elemento de la matriz. En este caso, eso no me
importaba demasiado,
así que solo voy a usar
el mismo nombre y valor. Ahora, recuerda que necesitamos
nombrar estos comandos. Entonces vamos a poner el nombre
va a ser polo y la descripción va
a ser, crea una encuesta. O si piensas en algo
mejor, siéntete libre de agregarlo. Ahora vamos a
sumar las opciones. Y las opciones van
a ser totalmente dos opciones van a ser requeridas
porque cuando al
menos dos opciones para un polo. Y las ocho opciones restantes, porque esto va a
tener un máximo de diez opciones. Las
opciones restantes van a ser opcionales. ¿Por qué es eso? Bueno, la forma en
que queremos votar por nuestro polo oriente para
reaccionar ante algunos emojis. Sólo tenemos diez emojis
para los números 12345678910. Sólo podemos tener como
máximo diez opciones. De hecho, hagamos eso. Vamos a crear esa matriz emojis. Voy a crearlo. En realidad, sólo voy
a copiarlo y pegarlo. Pero hay que básicamente
se puede ir a esta cancha,
ir a esta parrilla. Aquí. Puedes ir a este acorde
y buscar ese emoji. Déjame ver. ¿Dónde
está ese emojis? Tal vez Tier bien, busca. Creo que es algo
como uno o
puedes simplemente enviarlo a ti mismo o lo que sea y
copiarlo en tu código como este en algunas
citas individuales a su alrededor. Así es como se crea
estas matriz de emojis. Entonces esto es algo
que vamos
a utilizar en el futuro. Pero yo solo, solo
te estoy diciendo cómo puedes construir
estos emojis array. Y lo otro que
vamos a hacer es crear la matriz de opciones. Voy a llamar a esta opciones. Permítanme añadirlo aquí. Vamos a utilizar el punto
array de métodos. El primer parámetro de distinto
0s, un objeto iterable. Entonces un objeto iterable
puede ser algo que básicamente especifica
la longitud de la matriz. Quiero decir, oye, quiero una matriz de longitud diez. Y la segunda
opción es un mapa fn. Por lo tanto, es una
función de mapeo para llamar a cada elemento de la matriz y crear una matriz a partir de
un objeto iterable. Pero básicamente aquí el segundo
argumento es el índice. En este momento, nuestra matriz
tiene 10123456789. Y queremos convertir estos valores en
algo más complejo. Y quiero regresar. En un objeto para cada uno
de estos índices, el objeto va a tener
algo así como la media, que va a ser
el nombre de nuestra opción. Voy a usar la
interpolación de cadenas aquí. Va a ser yo más uno. Cuando tengamos 0, esta va a ser la opción uno. Cuando tengamos uno, va a ser la
opción dos, etc, etcétera hasta que lleguemos igual a nueve. Esta va a ser la opción diez, que va a ser básicamente
la suposición aquí. El segundo va
a ser la descripción. Aquí. Sólo voy a decir
opción, sondeo, opción. No sé número aquí. Voy a decir que
más uno de nuevo. Entonces esa va a ser la
descripción de la suposición. Y la
propiedad más importante que vamos a añadir aquí
es que se requieren. Obligatorio va
a ser un booleano. Obviamente. Recuerda que
las dos primeras opciones van a ser requeridas porque necesitamos al menos dos opciones. Si soy menor
o igual a uno, entonces somos buenos
porque esos son 01. Por lo que las dos primeras opciones, esas son las
que se van a requerir y estos
valores van a ser ciertos. Ahora en nuestro comando, podemos, debajo de esto, podemos ir por cada una
de estas opciones, agregar una opción de cadena
como lo hicimos aquí. Hagamos eso. Para cada uno. Voy
a deconstruir las propiedades de
cada objeto aquí. Recuerda que tenemos un nombre, tenemos una descripción, tenemos una devolución requerida. Vamos a hacer algo
con estas propiedades. Se va a decir
el comando slash, la opción string,
la opción string. Ir a construir la opción. Vamos a decir
opción que dicho nombre. Ese va a ser el nombre
que aquí se especificó. Opción I más una
dicha descripción. Esa va a ser la
descripción se especificó aquí, opción número I más uno. Y entonces vamos a decir
requeridos iguales requeridos. ¿ De acuerdo? Así es como construimos o
agregamos dinámicamente muchas opciones. Por lo que estamos agregando diez
opciones y las dos
primeras son obligatorias. Creo que el video
se está haciendo largo, así que continuaré construyendo este comando
en el siguiente video. Adiós.
25. Parte 2 del Comando de la Encuesta: Hola y bienvenidos de vuelta. Entonces empecemos. Vamos a seguir agregando
algunas opciones más a nuestro comando slash. Antes de devolver nuestro comando
slash
van a tener otras opciones de
cadena. Así que agrega la opción string y
vamos a construir esta opción. Vamos a decir opción
ese nombre establecido, título. Y vamos a
establecer la descripción. Permítanme cerrar esto. Y este va a ser
el título del polo, por lo que el polen necesita
tener un título. Esto es lo que estamos haciendo aquí. Además, vamos a agregar
otra opción de cadena. Y esta vez, estos
van a ser la
descripción del poste, la descripción real
de un cuenco. cuenta también que estoy enviando
estos para que sean opcionales. Entonces durante una va
a ser requerida, voy a decir descripción de sub
nombre. Y la descripción
de la descripción va a ser esa
descripción de una pelota. Are Paul va a
tener opcionalmente un título y una descripción. Entonces voy a decir
añadir la opción booleana. Ahora, tan difícil de escribir
este mayor que símbolo. Y la última opción va
a ser algo llamado DM travieso cinco opción
que establece el nombre DM N5. Nuestra alberca va
a enviar un mensaje COMO la encuesta y con éxito. Y esto va a ser verdadero
o falso. Entonces si lo configuras en falso, entonces la encuesta va
a terminar con éxito, pero no te va a
notificar a través de un DM. Ahora la descripción del conjunto, vamos a decir
si el pero el,
la pulpa terminó con éxito. Genial. Por lo que esas son las
últimas tres opciones
opcionales, opcionales que
vamos a añadir
a nuestros comentarios. Entonces antes de avanzar más, quiero
explicarte una cosa más. Bueno, en primer lugar, como te
dije en el último video, vamos a
reaccionar al polo, que va a mandar
un mensaje obviamente. Y el mensaje va a ser, va a tener
algunas reacciones que van a tener
1234, estos emojis aquí. Para añadir estos
emojis a un mensaje, necesitamos otra intención y vamos a sumar antes de
que lo olvidemos. Y se va a
llamar intenso. Eso marca esa culpa,
mensajes, reacciones. Por lo que necesitamos esta intención. Y lo otro que
quería
decirte es que vamos a permitir que estas encuestas solo
se llamen dentro de un gremio. ¿ Y por qué no dm? Bueno, sin duda puedes usar un poste dentro de un DM
con múltiples personas. Pero simplemente se
complica más de lo que es. Así que sólo nos vamos
a centrar en hacer que esto funcione dentro de un gremio
y dentro de un canal de texto. Lo que vamos a
hacer en esta corrida este, hazlo así. Si la interacción
no está en una culpa, culpa, tenemos esto en el
método de culpa para la interacción. Si esto
no está en la culpa, vamos a responder. Interacción. Esa respuesta. Vamos a
responder con contenido. Sólo se pueden utilizar estos
comandos dentro de un servidor. Lo segundo es que la interacción no
tiene canal. Porque si vas a ver el tipo de
interacción de ese canal, veamos cuál es el
tipo de esta cosa. Esta cosa puede ser canal basado en
texto o nulo. Si el canal de texto
no existe, si estás tratando de
hacer cosas raras. Aquí, sólo van a decir respuesta de datos de
interacción. El contenido es,
sólo se puede utilizar este comando
en un canal. Ser más específico. Yo también voy a decir, o el cliente así no
tiene la intención correcta. Entonces por qué estoy diciendo que el cliente no tiene
las intenciones correctas, usted irá al archivo main.js. Vas a ver que tenemos esta intensa que
banderas que gremios. Y si recuerdas correctamente, estos nos permiten ver información
sobre los canales del gremio. Si no establecemos esta intención, entonces no va a ser capaz conseguir interacción ese canal. Incluso si está tratando de ejecutar el comando slash en
un canal basado en texto. Sólo para ser 100% claro, estoy agregando pedazo
de mensaje aquí. Eso son ocho. En el siguiente
video donde vamos a hacer es empezar a construir realmente
la interacción aquí, que va a ser
alelo un poco complicado. Entonces ten en cuenta conmigo en el
siguiente video. Adiós.
26. Parte 3 del Comando de la Encuesta: Hola y bienvenidos de vuelta. Ahora vamos a empezar a
construir nuestro incrustar el mensaje. Por lo que el
mensaje embebido va a ser Web contiene la
información sobre la encuesta. Para eso, vamos a necesitar la información sobre el gremio, información por encima del miembro, información sobre
las opciones brilladas. Porque recuerda, sólo
tenemos dos opciones requeridas. Contamos con opciones
opcionales adicionales. Sólo necesitamos conseguir
los que se especifiquen. Necesitamos obtener la
información sobre la hora, el tiempo que necesita el título, la descripción, y así sucesivamente. Antes de empezar, me olvidé de
hacer algo aquí. Tenemos que volver después de
aplicar porque no queremos
continuar con el siguiente flujo que vamos a definir aquí. En primer lugar, deconstruyamos
de la interacción. Muchas cosas. Vamos a conseguir las opciones
van a conseguir el usuario, vamos a conseguir el ID de gremio. Voy a conseguir
al cliente por ahora. Entonces lo primero que
quiero conseguir estos, la información de culpa, voy a conseguir estas variables de culpa. Recuerda, ya hicimos
esto en el UserInfo. Obtenemos la interacción
que gremio y esta cosa no existe porque puede
regresar, usted será nuestro nulo. Entonces
lo vamos a buscar de la interacción esa línea que gremios que
obtienen interacción que BLAT. Entonces hagamos eso. La interacción hace culpa. Y si sólo hago esto, entonces la culpa va
a ser de tipo. Si me pongo sobre él, culpa o no, quiero que esto
sea siempre refinado. Y por eso
voy a hacer cliente que gremios dot fetch. Y voy a pasar la
guillotina como deuda ECS. Ahora que tengo la culpa, la información ahora puedo
conseguir la formación de membrana. Nuevamente, esto es algo
que hicimos en el userinfo y en realidad podemos simplemente
copiar y pegar aquí. Guild up miembros que
caché hasta Obtener User ID. Esta cosa puede devolver ya sea miembro de la
agill o indefinido. O no quiero que esto
sea indefinido. Entonces si esto es indefinido, entonces lo voy a buscar del gremio de miembros
que lo busquen, señor. Bien, genial. Ahora tengo información
sobre el gremio. Tengo información
sobre el miembro. Ahora, quiero conseguir que las opciones
mostradas estén clasificadas, que va a ser
una matriz que contenga solo las opciones
mostradas o especificadas. Voy a declarar opciones
mostradas. Y voy a conseguir
la matriz de opciones. Y luego lo voy a mapear. Por lo que el primer argumento, estos pueden ser raza ella. Por lo que puede ser un objeto
con estas propiedades. Sólo voy a deconstruir
el nombre desde, desde aquí. Eso es lo único que necesito. El segundo argumento
es el índice, que lo voy a llamar I. Esta cosa va a devolver otro objeto que va a contener el emoji
asociado a esta opción. ¿ Y cómo obtengo el MOG? Bueno, solo accedo a la matriz de
imágenes en
la posición i. Ahora necesitamos la etiqueta, que básicamente va a ser, si recuerdas en el
UserInfo, algo como estos, etiquetados aquí en la etiqueta de campo, puede, puede ser esta
descripción opción número uno. De hecho, hagamos eso. Eso también es deconstruir
la descripción. Voy a poner la etiqueta
para que sea la descripción. Si quieres. Puedes
especificar cualquier otra cosa. Pero por ahora vamos a
mantenerlo simple y vamos a configurarlo a la
descripción sobre el valor. Va a ser opciones que
obtengan el nombre de la cadena. Entonces vamos a conseguir que esa opción se
asocie a su nombre. Y se pasa por encima de esto, va a ser
una cadena o nulo. ¿ Por qué? Porque puede estar presente
o no. Y vamos a filtrar
estas cosas en base a eso. Ahora que tenemos estos mapa, vamos a decir filtro de puntos. Voy a tener
la opción de hombro. Aquí. Sólo
voy a decir, Hey, sólo dame esos valores
donde la opción brilló, ese valor es la multa. Truthy. Si esta cosa es nula, entonces el filtro lo va
a filtrar. Aquí viene una cosa
interesante. Si vamos aquí y pasamos
por encima de estas opciones mostradas, ves que se trata de
una matriz de objetos, y estos objetos tienen la cadena
emoji, cadena etiquetada. Y aquí viene la parte
interesante. El valor es una cadena o nulo. No obstante, ya filtramos
aquellos valores que son nulos. Entonces esto es
algo interesante en TypeScript que cuando aplicas un
filtro a un mapa y
filtras en función de alguna condición, entonces no va a
multiplicar el tipo por ti. En realidad tienes que
hacerlo tú mismo. ¿ Y cómo hacemos eso? Bueno, en realidad es
bastante simple. Nosotros, después de esta opción mostrada, vamos a decir
columna muestra opción. Y vamos a especificar
el tipo emoji, string, label, string value strength. Ahora pongo el cursor sobre
estas opciones mostradas. Se puede ver que ahora
el valor es siempre, su entrenamiento fue
filtrar y se fijó el tipo de espectáculo
una opción. Esto es algo que
no mucha gente sabe, pero es muy, muy útil. Ahora que tenemos
se muestran opciones, vamos a conseguir la
información como la hora. El tiempo son opciones que se
meten en su tiempo. Se requiere. Entonces vamos a
ponerlo en verdad. Vamos a conseguir el
tiempo que necesitas con opciones dot conseguir un momento
extraño que necesitas. Éstas también se requieren. Y aquí viene la parte
interesante. Esta cosa en este momento
es de tipo string que recuerdan que
las opciones de anuncios, configuramos para que sean una unidad de tiempo. Entonces ella será como tiempo
S porque es
algo de ahí. Sabemos que está
sufriendo desde ahí. Ahora, const, titulado
va a ser opciones dot obtener el
título de fuerza, y esto es opcional. Por lo que no vamos a enviar
que se requieren para ser verdad, vamos a conseguir la
descripción también. Opciones que obtienen una descripción
de cadena. ¿ Por qué no? La variable phi
traviesa DM. Opciones que se vuelven
booleanas, no definen. Estos pueden ser
booleanos o nulos. Si esta cosa es nula, entonces en realidad, si
esta cosa es falsa, queremos que esto sea falso. Pero si hacemos esto, entonces vamos a ir
a esta condición aquí. Si hice esto, esto
siempre va a ser cierto. Sí, se puede ver
que dm notificar verdadero. Por lo que quiero que estos sean
verdaderos o falsos, así que un booleano. Entonces para la deuda, voy a usar este operador aquí,
doble signo de interrogación. Entonces si veo esto, ahora es de tipo Boolean. Este doble signo de
interrogación me dice, oye, ¿ esta cosa
es siempre en esta cosa indefinida
o nula? Entonces ve aquí. Si esto es falso, entonces sólo guárdelo
como eso, como falso. Si esto es cierto, obviamente va a ser verdad. Si esta cosa
no es nula o indefinida, entonces ve aquí y configúrela a true. Entonces esto es como
el valor predeterminado. Eso es como el
volumen predeterminado. ¿Qué más? Eso es todo lo que
vamos a conseguir. Ahora tenemos
mucha información. Ahora necesitamos utilizar
esta información. Necesitamos utilizar esta información. Vamos a crear
la incrustación por encima de
todas estas cosas y debajo de
todas estas condiciones aquí, voy a crear una función
dentro de esta función. Entonces eso se llama
cierre en guión GAO. Voy a conseguir una llamada que
construya y eso o muerto en la cama. Lo que quieras. Voy a
llamarlo conseguir incrustado. En realidad construir en cama. Sonido inteligente, correcto. Lo primero que
vamos a hacer es declarar estos formato en unidad de tiempo. Y voy a
decir que esto es de tipo unidades de tiempo o cadena. Entonces voy a
ponerlo a esta cosa aquí, mientras que es unidades de tiempo. Esta es la
parte interesante sobre los cierres. Podemos usar variables
fuera de la función. Cuando declaras una función
dentro de una función, la función interna puede usar cosas de la función externa. Eso es básicamente un cierre. ¿ Por qué? Estoy declarando estos
formato en variable unidad de tiempo. Bueno, si el tiempo
es igual a uno, si el tiempo es igual a uno, entonces quiero este formato de tiempo. Es necesario formatear unidades de
tiempo, 0 menos una. Entonces, lo que está haciendo esta cosa es básicamente si dijiste el polo, tiempo para ser una hora. Entonces en lugar de decir una hora, esto se va a
transformar a una hora. Eso es básicamente lo que aquí. Sólo una cosa muy pequeña, pero es agradable tener esto. De acuerdo, así que ahora empecemos
a crear nuestra incrustación. Entonces voy a decir const
y malo va a ser nuevo mensaje M beth
del disco o de Jess. Voy a establecer al autor objeto
BIM con una propiedad de nombre que va a ser el
miembro que muestre el nombre. También podemos establecer el icono URL. Yo tipo de URL. Este
va a ser el usuario que muestre
una URL de destino. Eso es todo. Ahora tenemos a los autores
colocados en la misma cama. Ahora vamos
a fijar el título. El título tampoco va a ser el título que obtenemos de aquí. Recuerda que esto es
una cadena o nulo. Si esta cosa es nula, entonces voy a ponerla en algo así como
Paul, algo así. Ahora vamos a
establecer la descripción. En realidad aquí. No quiero
permitir cadenas vacías, así que voy a usar también el operador OR.
Eso depende de ti. Puedes usar esto o esto. Voy a usar estos porque no
quiero azulejos vacíos. A pesar de que creo que eso no está permitido por la opción
que no conozco. Ahora, la descripción
va a ser o bien
esa descripción o algo así como React to boat. El sondeo va a estar disponible por tiempo. Por mi difícil momento conseguir. Este va a ser el mensaje
predeterminado y va
a ser que pases descripción. Entonces vas a establecer eso, si no el hermoso pase que entonces vas a
poner este mensaje aquí. Vamos a establecer el
color del Embed. Eso va a ser no lo
sé, azul. Eso depende de ti. Voy a poner el
pie de página diciendo algo así como en el texto
en caso de un empate, una opción aleatoria seleccionada. Por lo que ahora que
tenemos estos incrutados, queremos sumar los campos. Del mismo modo que agregamos aquí
los campos. Recuerde dónde campos TI. Ahora queremos sumar esos
campos aquí al elemento. Para eso, voy a usar
la matriz de opciones brilladas. Voy a ahorrar para
cada opción mostrada. Voy a conseguir la etiqueta. Voy a conseguir el valor y luego voy a conseguir el emoji. El callback sólo va
a incrustar ese campo add. El primer argumento es el nombre, que va a ser la etiqueta. El segundo argumento
va a ser el valor, que va a ser el valor de guión
emoji. El tercer argumento
va a ser el Inland. No quiero que esto sea tierra adentro, así que voy a
mantenerlo así. Por último, vamos a devolver el embed de estas plantillas de
compilación. Ahora que tenemos estas función
build-in, sólo
vamos a decir
const y cama es igual a construirlas, construirlas, entonces. Eso es todo. Aquí hemos hecho
muchas cosas. Básicamente obtenemos la información de la agalla, del miembro. Podríamos
mostrar un show up. Obtenemos estos tiempo descripción del título
de unidad de tiempo. Estos DM notificaron que aún no
hemos utilizado. Y luego usamos cierres para crear esta función que formatea el tiempo que necesitas primero. Después establece el
autor, el título, la descripción, el
color, el fluido central, o agrega todos
esos campos para las opciones brilladas y
devuelve
el embebido DDL final. Y lo llamamos aquí.
Muchas cosas para digerir. Paremos aquí y
continuemos en el siguiente video. Adiós.
27. Parte 4 del Comando de la Encuesta: Hola y bienvenidos de vuelta. Continuemos construyendo
nuestro mando de sondeo. Ahora tenemos el Embed. Ahora vamos a
añadir algunos botones. Y estos van a
ser sólo dos botones. Así que definamos estos botones. Obtener botones. Debajo de nuestra función construida
y Beth. Vamos a crear otra
función por donde
puedas compactar esta función haciendo
clic aquí en código VS. Voy a crear esto, conseguir botones o construir
botones, lo que sea. Una función, que va, nuevo va a ser
una función interna. Y luego solo voy a
devolver nueva fila de acción de mensaje. Recuerda que ya
usamos estos en, creo que tal vez fue Google. Aquí agregamos estos
métodos sección cuerda, y necesitamos agregar algunos
componentes para agregar botones aquí. Entonces vamos a agregar
en realidad dos botones. El primero va a ser este nuevo
botón de mensaje. Cierra esto. Y voy a estar configurando el ID
personalizado para que se cancele. Este botón nos va a
permitir cancelar el poste. Va a establecer la etiqueta
para que sea igual a cancelar. Dijo este azulejo. Esto va a ser
como un fondo de rata. El otro botón, que va
a ser botón de mensaje. Vamos a configurar al cliente. Y sólo la persona que
creó esta encuesta
va a poder hacerlo
antes de que expire el tiempo. Sé que tal vez esto es algo
que no queríamos sondeo, queremos que todos voten. Pero esto nos va a
permitir aprender algunas cosas sobre permisos
y cosas así. El dicho sello. Tira ahora y satisface
ser primaria. Puedes hacerlo
secundario, lo que sea. Sólo voy a hacerlo. El primario aquí, esto se va a construir
botones no obtener fondos. Ahora tenemos, tenemos el embed, tenemos los botones. Ahora vamos a hacer
algo muy interesante. Vamos a decir
interacción esa respuesta. No vamos a responder con el imbed ni con el botón. Sólo vamos a responder con algún mensaje genérico como
Paul creado con éxito. Entonces vamos a
mandar mal la cama M como mensaje separado, peso del
mensaje. Y tal vez necesitamos aquí para deconstruir el canal a
partir de la interacción. Ahora el canal es solo canal de
culpabilidad basado en texto. Esa arena. Aquí vamos a
incluir la incrustación, que va a ser
sólo los componentes, que van a
ser los botones. Por qué estoy haciendo esto, por qué primero estoy enviando un mensaje
genérico y luego estoy creando por separado el mensaje y
lo envío es por separado. Bueno, estos me llevó
mucho tiempo darme cuenta, pero recuerda que si
vamos a nuestro comando, tenemos estos valores medios establecidos a uno y establecemos el valor máximo en 60. Puede ser segundos,
minutos, u horas. Aquí viene la parte interesante. No puedes contestar. No se puede hacer nada
con la interacción. Con respuesta de interacción. Puedes hacer cualquier cosa. Usted borrado, puede responderlo. Puedes hacer cualquier cosa. Si han pasado 15 minutos
desde tu planta. Entonces hay un token que detrás de escena
se caducó, entonces no se puede
actualizar ese token. Es imposible
ahora mismo hacer eso. Entonces tenemos que crear el
mensaje porque este mensaje, que es de tipo mensaje, éste se puede modificar
después de 15 minutos. Si solo tuviéramos que
editar la respuesta, no
íbamos a
poder hacer nada. Pero este mensaje,
Capítulo 15 minutos, vamos a
poder modificar eso. Vas a ver a qué quiero modificar
este mensaje. A medida que avanzamos. Entonces por eso
estoy haciendo esta cosa aquí. Ahora en realidad podemos ejecutar def. Podemos ir a este acorde. Observe que, pero
Chris Davies en línea, podemos, obviamente necesitamos
registrar esta cosa. No hemos hecho eso. Vamos a cancelar esto. Y escuchemos agregar
los comandos de la encuesta. Vamos a correr discordantes sordos. Una vez más. ¿ Qué curso hay en línea? Veamos, sondeo. Ahora tengo que precisar la hora, digamos 15 segundos. De acuerdo, entonces ahora tenemos
estas tres opciones aquí. Recuerda estas opciones
que las etiquetas de estas opciones son en realidad
lo que dijimos aquí. Estos, lo primero
aquí en desorden, las unidades de
tiempo van a
ser segundos o la Opción uno va a ser una y la
opción dos va a ser yo. Y si escribo la tecla tabulador, puedo ver que tengo todas estas opciones adicionales,
opcionales. Mantengámoslo así. Ahora dice que Paul
creó con éxito este es mi nombre
para mostrar, mi avatar. Yo no fijé un título, así que el título
va a ser pole. Reaccionar a ambos la
encuesta va a estar disponible durante 15 segundos. Y aquí tenemos la
opción de sondeo número uno. Me está incitando a reaccionar con uno si
quería seleccionar una, dos, si quiero seleccionar B, y está diciendo dibujar un aleatorio, será una
opción aleatoria se selecciona. Entonces mientras que esa
opción aleatoria anula la selección, tengo que cancelar
y la encuesta final. Ahora si hago clic en ellos, no
va a hacer nada. Me va a decir
que esta interacción falla porque no hemos creado los coleccionistas
para los fondos. Entonces intentemos hacer eso. A lo mejor vamos a terminar
esto en el siguiente video. Quiero decir, terminar de crear
el colector de componentes. Pero primero agreguemos un
tiempo en milisegundos. Y MS, voy a nombrar
esta función conseguir tiempo. Ms, en milisegundos. Quiero convertir el tiempo que pasé
dos milisegundos. Para eso, es bastante fácil. Solo voy a crear
otra función interna llamada obtener tiempo en un in NMS, lo siento, aquí, y vamos a crear
una sentencia switch. Voy a tomar las unidades
de cronometraje. Y esta vez necesitas
recordar e es de tipo unidad de tiempo. Por lo que puedo decir caso que segundos. Voy a devolver el tiempo multiplicado por
ciento diez cientos, porque esta vez
va a ser en segundos. Para convertirlo a milisegundos, tengo que multiplicarme por uno. En el caso de
unidad de tiempo para ser minutos, entonces tengo que devolver el
tiempo multiplicado por 60, multiplicado por una milésima. Entonces esto convierte el
tiempo en minutos a segundos y luego estos
factores dos milisegundos. Y por último, si la unidad
horaria es nuestra, tiempo de
retorno multiplicado por 3 mil 600 veces 10000. ¿ De acuerdo? Entonces este es el número
de segundos en una hora. Entonces este es el segundo. También puedes hacerlo
de otra manera. Pero esto es mejor para mí. Es más comprensible
porque
hay 303,600 segundos en, en una hora y luego convierto
segundos a milisegundos. Tal vez puedas poner esto dentro de
otro o fuera de aquí. Pero de todos modos, solo lo estoy
otorgando aquí como una función interna
para que pueda usar el
tiempo que necesites a tiempo como este. Sin pasar ninguna muerte, un argumento o
algo así. Ahora que tengo el
tiempo en segundos, y este es un
número voy a crear lo que se llama coleccionista. Y vamos a necesitar
aquí a los coleccionistas él componentes colector y
sus reacciones coleccionista. La reacción es
colector va a filtrar y
especificar cuántos, cuánto tiempo queremos que se recojan las
reacciones. Y los componentes
colectan lo mismo pero para los componentes que en
este caso son las botellas. Para que esa reacción sea coleccionista es un poco
más complicada. Así que empecemos con colector de
componentes. Componentes colector. Va a crear el recolector de componentes GED o
construir. Y empecemos a
construir esa cosa. Entonces por debajo del get
timing, la masa. Hagamos esto en realidad. Debajo del cronometraje, el lío. Voy a crear el recopilador de componentes de
compilación, de nuevo, una función simple que
va a devolver un mensaje. Entonces recuerda que tenemos la variable de
mensaje que crea, mientras que es colector de
componentes de mensaje. Y como opción necesitamos
especificar cuántas veces queremos recolectar interacciones
para estos bloqueadores. Entonces ahí es donde
usamos estos tiempos. Sra. Bible. Eso es todo. Ahora tenemos nuestro colector de
componentes que va a ser
útil en el futuro. Nuevamente, se está volviendo solo video, así que vamos a parar aquí y
continuar en el siguiente video. Adiós.
28. Parte 5 del Comando de la Encuesta: Hola y bienvenidos de vuelta. Ahora tenemos el colector
de componentes. Ahora tenemos que crear el coleccionista de
reacciones que va a ser alelos marcan complicado pero no
demasiado, sólo un poco. Vamos a crear esta reacción
llamada elector así. Crear la función de
recopilador de reacciones de compilación que
se creará debajo del recopilador de
componentes de factura va a ser la conferencia de
reacciones de compilación. Lo primero
que queremos hacer, y esto es puramente
una cosa de optimización. Oriente para crear y mapa de emojis. Estos emojis mapa va a tener como claves,
la imagen misma. El valor va a ser un dicho
booleano, Hey, sí, estos emoji East en las opciones mostradas que
enviamos en el Embed. Entonces algo como esto. Esto sólo va
a hacer esto manualmente. Al igual que tomemos estos
3 primeros hematólogos. Considerando que aquí. Supongamos que la primera
opción está mostrando bien, las dos primeras siempre se
van a mostrar así. Entonces el tercero, puede ser verdadero o falso. Entonces si especificamos la
opción número tres, esta es la opción número tres. Esto va a ser cierto. Si no especificamos
va a ser falso. Y lo mismo con cuatro
o 56700 hasta diez. Esto es lo
que queremos construir primero antes de
construir
el coleccionista de reacciones. De acuerdo, entonces en realidad es
bastante simple. Vamos a crear este mapa de emojis
mostrado. Y por cierto, ¿por qué
estoy haciendo esto? Bueno, porque quiero crear
un filtro en la corriente, en el coleccionista de reacciones
que cuenta, eso. Me dice, oye, ¿
este emoji está aquí? Sí, entonces
filtra. ¿No está aquí? ¿ Entonces? Filtrar. Lo siento, si está aquí, entonces no lo filtre. Si es falso,
entonces filtra, algo así. Nuevamente, esto es puramente algo que es
para la optimización. Podemos lograr esto simplemente encontrando el emoji en las opciones
mostradas cada vez, pero eso no es suficiente. Un objeto que accede a elementos en un objeto tiene una
complejidad temporal de O uno. Y por eso estamos haciendo esto. Se muestran emojis mapa se van a
mostrar opciones que reducen la reducción ¿
se puede especificar y reducir el resultado
de las revisiones? Yo lo soy. Entonces en nuestro caso
va a ser un objeto. Podemos decir grabar estos x sombreros
recurrentes dos parámetros. El primero es el
tipo de la clave, que va a
ser de tipo string. Y el tipo del valor que va a
ser de tipo Boolean. Ese es el básicamente el, lo siento, el tipo de
nuestro mapa resultante. El primero alivia una devolución de llamada. Permítanme cerrar esto. En esta devolución de llamada,
vamos a conseguir primero el mapa. En segundo lugar la imagen. Vamos a
deconstruir el emoji desde la opción aquí. El segundo argumento es solo un argumento
que es una devolución de llamada. Y el segundo argumento
va a ser el valor inicial, que va a ser un objeto
vacío,
mapa vacío, lo que sea. Este no es el mapa,
estrictamente hablando, esto es sólo un objeto pero
su función es ser mapa. Entonces es por eso que los
llamo arriba. Entonces voy a decir mapa emoji, sé verdad y devuelva
el mapa. Eso es todo. Ese es nuestro show,
mostrarles el modo solo Mab
va a ser lo que
acabo de mostrarte antes. Ahora vamos a crear el recolector de
mensajes, digamos que devuelve mensaje que crea coleccionista de reacción. El primer inmueble
va a ser el momento. Cuánto tiempo queremos que se recojan
las reacciones. No sólo voy a
estar cronometrando el lío, solo probando los componentes. Por eso creamos esta vez. Y luego en MS para reutilizarlo tanto
aquí como en el colector de
componentes. Y lo segundo que
vamos a utilizar es el filtro. El filtro es una devolución de llamada. La devolución de llamada recibe una reacción. Vamos a decir, vamos a sacar el emoji de estas reacciones fueron una reacción de ese nombre de punto
emoji. Este nombre es en realidad
como esta cosa aquí. Por lo que estos serán el
nombre del mono. Esta cosa puede ser
en o cadena o nula para ser 100% honesta, no
entiendo
por qué puede ser nulo, pero sólo vamos
a estar seguros aquí. Vamos a decir no
emoji, luego volver falso. Cuando el viento emojis raros
entonces no tienen nombre. Si esta cosa tiene un nombre que
vamos a decir volver. Y vamos a usar un doble bang para
lanzarlo a un booleano. Y vamos a
decir que se muestran emojis mapa fuera y esta cosa se va a mostrar. Y sólo vamos a mapear. Esta cosa va a ser verdad o esta cosa
va a ser indefinida. Si esto es cierto, entonces el doble banco
true sigue siendo cierto. Y si esta cosa es indefinida porque no está en estos
mostrados el mapa de motivos, entonces esta cosa
va a ser indefinida. Un doble golpe de undefined
va a ser falso. Ahora hemos creado nuestro colector de reacciones y
nuestro colector de componentes. Ahora, vamos a crear
una variable más. En realidad van a ser dos, pero por ahora sólo
va a ser uno. Y esto se va a
llamar frecuencias. Esto va a ser
un objeto de nuevo. Entonces registra el número de cadena. Va a ser número de cadena de
registro. Eso significa que va
a ser un objeto con claves como corriente. Si el número va
a ser el número de veces y aparece el
emoji. Entonces va a ser como
un recuento de frecuencias. ¿ De acuerdo? Entonces lo que vamos a hacer a continuación es crear la
función que va a ser capaz de poner información dentro de
estas frecuencias. Eso es lo que vamos a hacer en el siguiente video. Yo seré así. Nos vemos en el siguiente video. Adiós.
29. Parte 6 del Comando de la Encuesta: Ahora tenemos nuestro colector de
reacciones
o colector de componentes. Ahora tenemos que especificar
qué queremos hacer cuando
recogemos algo que
vamos a crear. Componentes. En componentes recogen función
que va a especificar lo que queremos hacer
cuando llamamos a una camarilla, en este caso desde los botones. En primer lugar, tengo
que especificar una cosa. Si vamos a los no asegurados
podemos crear oyente, tenemos que cumplir con
un cambio alelo. Cuando hacemos clic en un botón. Recuerda los botones
difíciles de cancelar y, y Paul ahora botón. Tenemos que no hacer nada
cuando llegue esa interacción. Vale, así que eso es lo que
vamos a hacer aquí. Va a decir si la interacción, abajo, va a decir
esperar interacción. Esa V para. Básicamente
les estamos diciendo a estos anotados, hey, no hagas nada por ahora. Porque la interacción
del botón, lo que realmente vamos
a hacer con el botón que
vamos a manejar
dentro del comando Todo. Vamos a crear un método de recolección de
componentes, nuestra función interna aquí. Voy a crearlo debajo del colector de
componentes de la correa. Lo siento, por debajo de la
reacción de construcción está colector. Voy a crear estos
componentes recoger. Voy a decir componentes
colector, recoger. Recuerda que tenemos estos en
disponer y luego no recogidos. Eso es lo que nos interesa. Y vamos a recibir
la interacción componente. Esta es la
parte confusa porque, lo siento, porque estos componentes de
interacción viene aquí en nuestra interacción crea. Y también aquí no
queremos manejarlo aquí, tal vez vas a construir
unos comandos más. Por lo que hay que modificar
estos y descartar el fondo del tazón. Pero por ahora
vamos a hacer eso. Así que sólo vamos a decir, Hey, no
quería hacer nada
con este botón aquí que
quiero hacer algo
aquí en componentes. Lo primero es comprobar
si el componente de corte de interacción punto personalizado
ID es igual a cancelar. Recuerda esa identificación de cliente
que dijimos en el botón. Ahora vamos a comprobar si
este es el fondo de cancelación. Aquí viene la parte interesante. Va a decir E de la interacción de
componentes. Ese ID es
diferente al ID de usuario. Estos usuarios, recuerden,
estamos utilizando cierres para que podamos usar variables desde
fuera de esta función. Este es el usuario de
la interacción. Entonces si no es tu ID
del ID de interacción del usuario, entonces vamos a decir una interacción de componente de
peso. Fetch respuesta. Voy a explicar
esto en un momento. Interacción componente de distancia. Seguimiento. Voy a decir contenido. No se puede cancelar. Tire. El efímero
va a ser cierto. Obviamente vamos a regresar. Lo que estoy haciendo aquí es
básicamente buscar la repetición. Recuerda que la respuesta puede
ser después de ciertos tiempos. Por lo que tenemos que buscar la respuesta de estos
componentes de interacción. Entonces haciendo estos seguimiento. Si hago esto,
no va a funcionar. Primero tenemos que
buscar la respuesta. Entonces tenemos que dar
seguimiento a esa respuesta. Estas son femeninas. Creo que no hemos
hablado de esto. Esta es una mujer verdadera
significa que solo tú podrás ver el mensaje. Si ese no es el caso. Si soy el, si el ID de usuario de la interacción del
componente es igual a mi ID, entonces tenemos que hacer algo. Tenemos que detener al coleccionista de
reacciones. Por lo que estas reacciones colector tiene estos método stub
y podemos especificar un reciente y vamos a decir que la razón
es cancelar, tirar. Este reciente va a ser
invertir en su futuro cuando
creamos nuestro
coleccionista de reacciones y función. Vale, entonces esta es la
primera condición. El primer estado cuando
el botón que estamos interactuando con facilidad
el botón cancelar. Ahora cuando estamos haciendo click
en los otros botones. Entonces vamos a decir si la interacción
componente que yodo
Kusto es igual al polo N, va a hacer básicamente
lo mismo. Déjame copiar y pegar esto. Que en vez de decir, no se
puede cancelar este tazón, vamos a decir,
no se puede terminar este otoño. Si se me permite terminar la encuesta,
voy a llamar a métodos de material de
datos
del recolector de reacciones. A lo mejor podemos especificar lo que
no voy a especificar
un reciente aquí. No vamos a
especificar una razón aquí. Sólo detente la cosa aquí. Opcionalmente podemos
poner un retorno aquí. No es necesario porque
esta última condición, por cierto, la voy a
sumar de todos modos. De acuerdo, así que ahora tenemos nuestros
propios componentes recogen. Básicamente,
revisemos lo que hicimos. Ponemos una llamada de vuelta hacia el on cobramos una prohibición
del colector de componentes, donde primero tech y si
es el botón de cancelar, la pizza el botón cancelar, vamos a comprobar si estamos permitido
cancelar la pelota. Somos el mismo
usuario que creó la interacción inicial de
calificar el comando sondeo. Y entonces vamos, no se
nos permite. Entonces solo vamos
a seguir con una persona que intentó
cancelar el fondo y decir, Hey, puedes cancelar esta pelota. Y si se nos permite, sólo
vamos a subir
al coleccionista de reacciones
con estos método top. Y lo mismo con la encuesta final. Estamos comprobando si el usuario
que creó la encuesta, no
somos usuario. Solo vamos a decir que no
puedes terminar con esta encuesta. Y si somos el usuario
que grilla en el polo, reacciones del estado
romano recogieron ese stock sin ningún motivo. Sólo va a ser como un estab normal como
si el tiempo expiró, pero básicamente simplemente haciendo clic en el botón.
Vale, así que eso es todo. En el siguiente video, vamos a
sumar las reacciones. Espero que te guste. Nos vemos en el siguiente video. Adiós.
30. Comando de la encuesta Parte 7: Ok. Es hora de sumar las
reacciones para ese informe sólo
va a esperar a
las reacciones al mensaje. Obviamente. Para eso, vamos a crear otra función. Entonces va a ser algo así
como reacciones de const. Y esto va a ser sincronía. Por eso estamos ponderados. Que va a ser disfunción va
a ser bonita escena. Sólo vamos
a decir por lead, yo igual a 0, yo menos que las opciones brilladas
dot length I plus, plus. Sólo vamos a esperar. El mensaje que reaccionan. Opciones mostradas de IA. A MOOC. Eso es todo.
Solo vamos a agregar cada reacción de
las opciones brilladas al mensaje. Mensaje. Tiene este método reaccionar que pases el
emoji y eso es todo. Simplemente reaccionamos al mensaje. Ahora, agreguemos hilo. Corremos durante sordos, lo siento. Vamos a asegurarnos de que tengamos las reacciones del mensaje del
gremio. Podemos reaccionar. Vayamos aquí y creamos una encuesta. Tiempo diminutos segundos. Vamos a añadir una opción tres C. ¿Por qué no una opción para d Phi? Esto, se puede ver
que tenemos 1234. Esas son las reacciones y obviamente
podemos reaccionar ante ellas. Ahora el paso final
será recoger todas estas reacciones
después
de que expire el tiempo
o después de hacer clic en el botón de sondeo ahora. Empecemos a hacer eso. Vamos a crear una
reacción On, termina en reacciones. De nuevo, esto va
a ser una función. Vamos a añadirlo al sentido de reacción. Lo que vamos a hacer aquí, oriente tomar el
coleccionista de reacciones encendido. Vamos a pasar
una devolución de llamadas asíncrona. Y esta devolución de llamadas asíncrona
tiene dos argumentos. El primero es el recogido. Esto es básicamente las entradas
colectivas va a ser un
mapa y un reciente. Recuerda, cuando
teníamos los componentes recolectan y agregamos esto como
top y estos recientes aquí. Bueno, esa es la razón por la que vamos a recibir aquí. Ahora que tenemos todas
las reacciones en
estos mapa recogidos, necesitamos ver cuál
tiene la frecuencia más alta. Eso es lo primero
que vamos a hacer. Vamos a decir que
dejemos que la clave max sea una cadena vacía y
dejemos que el recuento máximo sea 0. Entonces inicialicemos
estas dos variables. Voy a decir por const, clave y valor de las entradas de puntos
recogidos. Hay un método para
estos colectivos, que es recordar que esta es una colección que es
básicamente un mapa de fantasía. Por lo que tiene este método de entradas. Vamos a decir si el
recuento de valores mayor que
el recuento máximo, va a decir que la clave máxima es igual a c0 y el recuento máximo es
igual a value.com. Bien, perfecto. Ahora, recuerda que teníamos estas frecuencias array, así que ahora mismo
vamos a usarla. Después de eso, vamos
a guardar frecuencias de equipo va a ser
igual a value.com. Clave básicamente es emoji y el valor es alguna reacción de mensaje. Para que podamos buscar este tipo. Podemos, déjame ver
si podemos hacer eso. Reacción del mensaje. Veamos. Podemos la reacción del mensaje de hoy. Podemos intentar importarlo y
solo control-click aquí. Y lo hará. Se irá a la definición
de esta reacción de mensaje. Para que como pueden ver,
tenemos este conteo público. Tenemos este mensaje
usuario eliminar fetch. Entonces eso son todas las cosas que tiene
esta reacción del mensaje. Una de las
cosas importantes aquí es la cuenta. Queremos conocer el recuento de
esa reacción de mensaje y
obviamente la ECMO clave. Ahora que conocemos la llave max, el México, recuerda ECMO. Ahora que conocemos
esa información, podemos obtener la información, toda la información
del ganador. Sólo tenemos que ir a las opciones
brilladas y encontrar, encontrar el elemento que donde el emoji es igual
a la clave máxima. Emoji es igual a la clave máxima. En realidad podemos cambiar el nombre de estos
dos emojis más frecuentes, que es mayor. Tenemos
emoji más frecuente es igual a emoji, entonces ese es el ganador. Ahora podemos empezar, podemos empezar a
modificar nuestro embed. Recuerda que tenemos,
mientras que nuestro embed, Aquí están nuestros incrustar, podemos
empezar a modificar esa cosa. Lo primero que
voy a decir es el color. Quiero que estos sean verdes porque el polo y la deuda y cuando
algo y con éxito, el color suele ser verde. Y la descripción
va a ser la mitad de vapor y el ganador va a
usar una interpolación de cuerdas. Ingresamos ese valor. Typescript en realidad me
ayuda con estos puntos de signo de interrogación porque el ganador también puede
ser indefinido. Si es indefinido, ese
será un caso raro. Probablemente. Vamos a arreglar ese caso
en el futuro. Por ahora. Seamos felices con esto. Y también voy
a restablecer los campos. Los campos va a
ser una matriz vacía. Ahora, quiero también, reinicié los campos, pero quiero ver también la tensión para cada una
de las opciones. Sólo voy a
decir opciones mostradas. Ahora voy a conseguir el
valor y el emoji. Voy a decir
incrustar ese campo de aplicación. Voy a guardar el
nombre va a ser Bode por el valor. Esos van a ser los
textos para el nombre. Y voy a decir frecuencias
de emoji a una cuerda. Porque este es un número
para convertirlo en fuerza. Y eso es todo. Ahora, podemos ver los
votos para cada opción. Por lo que el siguiente paso será
eliminar todas las reacciones
del mensaje. Sólo tenemos que decir esperar mensaje de que las
reacciones que remoción, que esto depende de usted. Puedes dejar la, las
reacciones si quieres, pero yo quiero quitarlas. Lo final va
a ser un mensaje de peso. Bueno, no es una cosa final
que vamos a hacer, sino sólo para ver
algo en Discord, vamos a decir mensaje dot edit y
vamos a decir incrustado. Integrar componentes va
a ser una matriz vacía. No queríamos
agregar botones aquí. Por ahora, agreguemos aquí un paso
adicional. Vamos a salvar a DM
notifica igual a verdadero. Vamos a decir una
forma en que los usuarios que arena. Y vamos
a decir tu sondeo. Y vamos a agregar
el mensaje, esa URL, mensaje, esa URL,
luego éxito plenamente. Creo que eso es todo lo necesitamos para el evento
del coleccionista de reacciones. Entonces intentemos probar
estas cosas ahora. Tiempo, digamos 15 segundos. Opción B, la encuesta creada
con éxito. Tenemos estas dos opciones. Voy a votar por. La opción a. Voy a esperar
un par de segundos y ver qué pasa. Vale, entonces esto es lo que pasa. Incruste hábitat gut. Dice ahora que el polar
ha terminado y el ganador, está siendo ese
barco para un fue uno, sólo un voto y
los votos por B. Y eso es, eso es todo. Creo que hicimos un
gran trabajo por esto. Y fíjate que tengo este mensaje diciendo tu
sondeo y con éxito, si hago click en ese enlace, me
va a leer reg a este mensaje aquí. Eso es todo para este video, todavía
necesitamos manejar
estos botones aquí. Hagámoslo en el siguiente video. Adiós.
31. Comando de la encuesta Parte 8: Hola y bienvenidos de vuelta. Ahora, hagamos una cosa más. Manejemos el caso
donde cancelamos el poste. Porque si vamos
aquí y decimos Paul, digamos diez minutos,
opción a y b. Y supongamos, bien, he
recogido las reacciones. Quiero saber,
quiero terminar con la encuesta. Sólo voy a
terminar la encuesta ahora. Va a funcionar. Me va a enviar
el mensaje a las 10.5 para hacer algo especial aquí porque solo
sigue el flujo de las reacciones y
el evento. Cuando tenemos una encuesta reciente y
razones canceladas, queremos hacer
algo, ser amigos. Vamos a decir aquí, e de reciente u es
igual a cancelar encuesta. Voy a decir inmuta
set color a rojo. Y luego voy a poner la descripción a
algo como estos. Ball West canceló el
set, estableció que el pie de página sea nulo. Retire el pie de página. Eso es todo. También. Estoy cancelando la encuesta. No quiero simplemente enviarme un mensaje en
el DM porque tonto. Ya sé que estoy
cancelando la encuesta. Voy a añadir
una condición aquí. Hace poco es
diferente a cancelar, tirar de ellos, enviarme
ese mensaje también. Veamos qué pasa. Si digo Paul, tiempo. Tengo diez minutos, a
y B en contraposición, hice algo mal. No quería
poner a y B y C, así que solo hago clic en estos cancelan. Y ahora dice estos sondeos West cancelaron barcos para
un barco para mí. Si quieres eliminar
estos también, puedes, solo
tienes que agregar el campo, establecer los campos para que sean una
matriz vacía o null dondequiera que sea. Y eso es todo. Eso es lo que debes hacer para
eliminarlos si quieres. Eso es todo por ahora. Tenemos todo
en el lugar, creo. Pero hay una captura más, un caso H más. Si quieres desplegar esto
a la producción y eres una empresa seria
y tienes QA, no pasarías. Te diré por qué hay algún
error en nuestra app en este momento. Si digo sondeo 1 segundo
y adivina qué
pasa, sólo va a fallar. Si hago N pole ahora, no
va a funcionar. Se va a decir que estas
interacciones fracasan. Si digo una vez más, 1 segundo, y B. Ahora es aún peor. No está respondiendo porque
probablemente tenga algo. Sí, la app crash, se
puede ver No se puede leer cosas de la
propiedad en la
fina lectura a cadena. Si voy aquí, estamos usando eso simplemente drenando la escultura de reacción
y evento diciendo, Hey, esta cosa no tiene frecuencias y esta
cosa está indefinida. Probablemente no
tuvo tiempo para
las entradas colectivas a
la clave y al valor. Entonces ahora esta cosa está indefinida. Tenemos muchas opciones aquí. Recuerda que agregamos
estos cierto valor medio. Establece el cuerpo máximo para ser 16. Pero cuando segundos, no
podemos
cambiar dinámicamente estos por ser 51020, lo que sea, porque no
sabemos con anticipación lo que va a poner
el usuario. Si va a ser
segundos, minutos, horas. Esto es sólo declarativo, ¿verdad? Entonces no teníamos forma de
saberlo antes de tiempo. Aquí tenemos dos opciones y
tenemos que tomar una decisión. El primero es
ver si la hora aquí, lo siento, no esta vez. La palabra que dijo, el tiempo MS, es
menor que algún umbral. Podemos decir, oye, la encuesta Oriente demasiado corta, necesitamos más tiempo para que
esta cosa reaccione, para que los mensajes estén adentro, para que las reacciones
estén en el mensaje. Esa es una opción. La segunda opción, que creo que es un poco
más complicada, pero es mejor porque
esta vez en milisegundos. Depende del número de
reacciones que estés agregando. Si solo tienes como
dos reacciones, entonces cinco segundos son suficientes. Pero si estás agregando
diez reacciones, tal vez tome un
poco más de tiempo. Por lo que hay que poner el
umbral para ser Hager, hay
que aumentar
el umbral. Entonces vamos a agregar otra
variable llamada demasiado rápido. Ese es el nombre de mi variable. Se va a
llamar demasiado rápido. Aprendí ir a hacer cosas
interesantes
dependiendo de si demasiado rápido es falso o verdadero. Vamos a omitir esto a variable
más rápida para ser falso. En el, dónde
está, las reacciones. Y vamos a, debajo de este for-loop,
digamos demasiado rápido, es igual a las opciones mostradas. Duplicación. Diferente de las teclas de punto de objeto. Frecuencias. Ese idioma. Básicamente las frecuencias
es una matriz que debe ser de la misma
longitud de las opciones mostradas. Si el poli se asegura demasiado rápido, entonces esto no va a ser cierto. Las frecuencias no va a ser del mismo tamaño de
las opciones mostradas longitud de punto. Si esto es cierto, entonces queremos hacer algo
justo debajo de esta cosa aquí. Voy a decir
demasiado rápido, demasiado rápido. Entonces vamos a decir
incrustar ese conjunto Descripción. Va a decir que el pole time es demasiado bajo para que
las reacciones estén en ello. Porque ver, están aumentando. Vamos a poner
el color para que sea rojo porque pasó algo
malo. Voy a establecer que el
pie de página sea nulo. Esto es si es demasiado rápido, contrario queremos hacer
lo que hicimos aquí. Esta cosa aquí, va
a estar en la cláusula else. También aquí, quiero, no
quiero enviar el
mensaje a rápido es cierto. Si no es demasiado rápido. Y el reciente
no es cancelado sondeo, DM notifique es cierto. Entonces envíame enviarme
un mensaje a la dm. Eso es básicamente tenemos que seguir haciendo una
cosa más al respecto. Vamos a probarlo ahora mismo. Entonces eso es genial. El sondeo con 1 segundo. Veamos. A pesar de que se añadieron
las reacciones, establece
que el tiempo de polo es demasiado bajo para que
las reacciones estén en él. Allí había como una
condición de carrera. Entonces hagámoslo con
más opciones como esta. Creo que eso es suficiente.
Vale, 1 segundo y no tiene tiempo para reaccionar, pero sigue agregando
las reacciones. Todavía está fuera en la reacción. Entonces esa es una cosa
que tenemos que evitar. Y eso es muy sencillo de arreglar. Simplemente vamos a las reacciones de Agregar. Recuerda que hubo este for-loop que si es demasiado rápido
para ir demasiado rápido, entonces solo regresa dentro quiero agregar más
reacciones a esta cosa. Hagamos esto otra vez. 1 segundo, a, B, C, D. Creo que eso es suficiente. 12, es demasiado rápido y ahora no
estoy agregando más reacciones. Necesito aumentar el
tiempo de esta cosa. Ahora, creo que tenemos todo en su lugar para que estos sondeos funcionen. Ahora puedes agregar un poste. El tiempo puede ser de uno a 16. Si intenté a 17 minutos, ya se va a quejar. Entero de entrada b de uno a 60. Digo 24 horas, a y B. Esto va a funcionar. En realidad, esto va a funcionar. Si lo estás, estás usando
este comando en producción, vas a
trabajar siempre y cuando no cierres tu proceso. Esto es algo interesante también que hay que saber. No vamos a hacer esto, pero sólo quería
comentar sobre eso. Cuando implementamos un nuevo cambio, cuando hagamos un nuevo
despliegue de nuestro código, probablemente el código va a ser reemplazado y el proceso
se va a cerrar. Esta cosa no va
a funcionar porque
no hay un proceso que esté
escuchando esta cosa. Va a pasar el
rato por la eternidad. Ahí es donde hay múltiples
estrategias de despliegue que se encuentran, que existen en
varios desarrollo. Azul, verde, las categorías
y todas esas cosas, lo que no. Eso no es algo que
vamos a ver, pero sólo piensa en eso. Eso si vas a hacer un nuevo despliegue y
hay una encuesta que no ha terminado. Y vas a tener
un problema si intentas
reemplazar tu
código antiguo por código nuevo. Pero de nuevo, no es un problema
fácil de resolver. Por eso hay personas especializadas en
este tipo de cosas. Y la maldición será muy, muy compleja si tratamos de
ser tan perfecto en esto. Acerca de Eso es todo. Espero que te guste. Nos vemos en el siguiente video. Adiós.
32. Parte 1 del comando API: Terminamos nuestra encuesta. Ahora vamos a agregar un comando más que va a usar una API. Para llamadas API.
Vamos a usar eje de hilo
axioma para
instalar estas dependencias. Estaba pensando, bueno, qué podemos usar la
muestra Frank, a diferencia de los animales. Entonces voy a usar
esta API de Deacon, que es la no oficial de
mi animal East API. Y más específicamente, van
a conseguir un
animador aleatorio desde aquí. Entonces vamos a
hacer una llamada GET, GET solicita a
este punto final aquí. Se puede ver que esta
cosa puede devolver 200, has leído retornos
con éxito y animar o 400 si hay una mala
solicitud o algo así. Este es su ejemplo de respuesta. Puedes abarcar todo y
puedes ver todas
las cosas aquí
que se devuelven. Se puede ver que devuelve la URL, tal vez redirige a mi animal, al least.com o lo que sea. El título alicatado japonés. ¿ Qué más? El tipo
llagas, episodio, episodios, el IV, It's Erin no
son duración. Tenemos muchas y
muchas cosas aquí. Agreguemos un nuevo archivo
llamado get random animate. En realidad solo
copiemos una cosa aquí. Vamos a modificar estos aleatorios y no olvidemos
agregarlo aquí. El nombre de este
comando va a ser obtener elemento aleatorio. Sólo vamos a decir que
devuelve un elemento aleatorio. Ahora también vamos a declarar una URL animada aleatoria constante, que va a
ser estas URL aquí. Aquí hay uno, sólo
cópielo, pegarlo. Ahí vas. Ahora, vamos a
usar ejes y
vamos a usar x como
también para formar
la respuesta para que la
respuesta sea algo que ya nos da
esta información, la información irrelevante que
queremos a partir de aquí. Acabo de crear este tipo y sólo voy
a copiar y pegar porque la cantidad de
tecleado de DC y no quería
concentrarme en escribir aquí. Tipo obtener respuesta aleatoria animal va a tener una
propiedad llamada datos. Y estos datas,
o va a tener muchas cosas aquí. No incluí todo. Si quieres incluir todo lo que acaba de
agregar a este tipo. Modifica la sangre que
vamos a hacer aquí
en estos comandos. Y eso es todo. El URL, el título, el título y Japón, la marea, los episodios. Sinopsis clasifica las imágenes. En realidad, sólo voy
a usar una web p aquí. Así que vamos a eliminar
esta propiedad aquí. El URL de la imagen, que
va a ser la puntuación de
cadenas
anotada por duraciones. Eso es calificar géneros, temas, muchas cosas. No es todo lo que
estas API pueden devolver. Puede devolver más cosas peores. Sólo voy a utilizar estos para los efectos
de este ejemplo. Vamos a quitar esto. Y lo primero que
voy a hacer, interacción de peso de
E
que la favorable. Así que déjame explicarte
por qué estoy usando estos negros
diferentes porque creo que aún no
hemos usado esto. Pero usamos algo
similar aquí en el, en la interacción botón
que difería la actualización. El tercer pliego
significa básicamente lo mismo. Entonces significa, oye, quiero no contestar estos momentos porque
la API llamada puede decir, bueno, si falla, es una lástima, pero puede ser lento
porque los servidores son lentos porque también hay
mucho tráfico o lo que sea. Es por eso que necesitamos que éstos difieran. Por defecto. Puedes. Si te tardas más de
tres segundos en contestar, vas a tener
problemas, ¿verdad? Entonces pero chico, haz problemas de bufanda. Por lo que para aplazarse para aplicar
más de tres segundos, es
necesario usarlos para la sangre. Entonces este es un mecanismo para
decir, oye, tal vez, tal vez, tal vez pueda tardarme más de
tres segundos en contestar. Así que sólo espérame. Entonces vamos a conseguir la
respuesta de la llamada API. Entonces vamos a
usar ejes para estos. Recuerda cuando los ejes de piedra
van a decir access dot get, estos esperan un argumento. Y el primer argumento
que espera, respuesta, el tipo de respuesta. Ya va, el tipo de datos de
la respuesta que va a ser obtener datos
aleatorios de respuesta animal. Ahora, esto va
a ser una función, así que tenemos que pasar
algunos argumentos. El primero es la URL animada
aleatoria. El segundo es
un objeto de opciones. Puede ser tan complejo
como quieras. Lo único que quiero, la respuesta de transformación
más fácil. Esta respuesta
va a ser de tipo cualquiera porque sea JSON. Voy a decir
constante Jason es igual a JSON.parse trapo respuesta. Ahora esto es de tipo. Así que sólo voy a decir, Hey, quiero que esto sea de
tipo conseguir anomalías aleatorias, y luego devolver JSON eso. Lo sé. Esto puede ser un
poco complicado porque ni siquiera está claro en
la documentación del eje. Pero luego tratamos de
explicar lo que hice aquí. Axis sí consigue, necesito
pasar algún tipo. El tipo va a ser
lo que vuelvo Aquí, Ok, Así que ese tipo de retorno tiene que ser el
tipo de esta cosa. Aquí estoy asignando el tipo, el JSON.parse porque
esta es la respuesta sin procesar. Va a tener estos
datos con todas estas cosas. Por eso estoy diciendo, Hey, quiero que este JSON después de
analizar sea esta vez. A partir de ahí, solo voy
a devolver los datos de JSoN. Parte de esta respuesta es un eje responde
con este tipo aquí. Aquí viene la parte confusa
de un downbeat, confuso. Ahora la respuesta tiene muchas
cosas como café, datos, encabezados, solicitud, estado
y estadísticas estándar. Esta es la que nos
resulta interesante
porque los datos van a tener todas estas cosas aquí que especificamos
en nuestro tipo. Voy a sacar
de la respuesta. Voy a deconstruir datos. Aquí. Sólo voy a
deconstruir muchas cosas. Título en imágenes japonesas. Las imágenes son un objeto. Entonces aquí solo voy a
deconstruir la web B, que de nuevo es otro objeto que voy a
deconstruir la URL de la imagen. Podemos deconstruir más
cosas como el rango, la URL, una sinopsis de tipo. Esto tatuajes la puntuación
anotada por la calificación, duración. Los géneros. Creo que sabemos una cosa. De acuerdo, entonces hemos
deconstruido toda esta información
de la respuesta. En el siguiente video, realidad
vamos a construir el Embed y responder
con el emit. Espero que te haya gustado este video.
Nos vemos en la siguiente. Adiós.
33. Parte 2 del comando API: Hola y bienvenidos de vuelta. Ahora sólo tenemos que
montar el Embed, que es la parte fácil. Creo. La claridad es
incrustar la variable. Llámalo nuevo mensaje incrustado. Recuerda dos métodos importantes, gambit del score dot js. Entonces establece el título. Esto va a ser
igual a la URL del Título. Va a ser
igual a la URL que deconstruimos aquí. Muy bien. ¿ Qué más? Podemos establecer la imagen
para que sea la URL de la imagen. Y podemos establecer los dos superiores. El nombre puede ser el
título en japonés. La descripción puede
ser la sinopsis. Y vamos a
sumar más información. Pero por ahora vamos a contestar. Vamos a editar la respuesta.
¿ Qué tenemos que hacer? No responde, pero edita respuesta. ¿ Por qué es eso? Bueno, la razón es porque nos
referimos la respuesta para que pueda tardar más de tres
segundos superávit. Por lo que ahora necesitamos editar la
respuesta cuando hagamos eso, en lugar de solo retocar. Vamos a correr discordantes sordos. Ya han estado probando esto. Corre. El comando get random animate. Yo consigo estos animales. Este es el autor, que es el título
y los DC japoneses. Estos serán el
título con una URL. Por lo que si haces click en
esto, te redirigirá a mi animal es probable que puedas ver que te
redirigirá a mi animal. ¿ Eso se conoció? La descripción de
estas incrustaciones, la sinopsis, la imagen será bien la
imagen devuelta por la API. Queremos añadir más
información porque
tenemos más información
disponible aquí para eso, vamos a crear solo una pequeña
función auxiliar para agregar campos. Voy a llamar a esta
función f campo. Esto va a recibir un campo que
va a ser una cadena, y un valor que va
a ser cadena o un número. Lo que vamos
a hacer es decir si el valor existe,
el valor existe. Vamos a tomar el
InBev y sumar el campo. El nombre va
a ser el campo y el valor va a
ser valor punto dos cadena porque recuerda que puede
ser un número o una cadena. Entonces si es una cadena a cadena no va
a hacer nada. Si es un número, solo
va a convertir la cadena. Estas verdaderas, solía decir, Hey, quiero que esto esté en línea. Aquí viene algo interesante. A lo mejor ya
pensaste en esto, pero miró que estamos haciendo aquí una condición de aserción
diciendo evalue, por qué estamos haciendo esto. Bueno, aquí estamos diciendo, Hey, todo puede salir bien? Pero eso no es cierto. A lo mejor he visto, y esto es puramente experimental. Y es algo que no se detalla en la documentación. Pero puede ser que, por ejemplo, puntuación en lugar de número es no. En cambio, podemos hacer, sin duda
podemos hacer
este número o nulo. Pero de nuevo, tengo que estar
calentando la API varias veces para ver todas las cosas que
son que pueden ser nulas
o incluso indefinidas. Entonces eso es algo que
chupó de esta API. No es nuestra culpa, es el pliegue de las API el
que no especifica lo que puede ser nulo y
lo que no puede ser nulo. Pero definitivamente puedes
hacer algo como esto. Será más correcto. Será más correcto, pero no quiero
golpear la API varias veces solo para ver qué está definido y qué no
está definido. En lugar de hacer eso,
acabo de hacer esto en el código, digamos, Hey Eve, sólo
los valores presentes. Porque recuerda
estos TypeScript se va a compilar
a JavaScript. Y cuando ejecutas estos valores, no
es algo que pueda venir como una cadena o un
número, puede venir ahora. Es sólo que estamos
viendo en grifo. Bueno. Oye, sabemos que esto
es cadena o un número, pero en el mundo real,
estos pueden ser nulos. Entonces esa es una pequeña
explicación de esto. Ahora hagamos algo. Llamemos a esta función f. Con el rango de campo. Vamos a pasar el rango. Vamos a llamarlo con el tipo
va a pasar el tiempo. Vamos a llamarlo con puntuación. Puntaje. Y ves que
esto se está volviendo muy fácil porque
definimos esta función. Después anotó por. Entonces tenemos la calificación. Podemos sumar también el ¿qué más? Se puede añadir esa duración. Nosotros tenemos estos. También necesitamos sumar
un estado tatuajes. Permítanme añadirlo a continuación anotado por. Ahora hemos utilizado toda
esa información. Solo tenemos géneros y
temas que son array, por lo que necesitamos
convertirla de alguna manera en una cadena, y eso es bastante fácil de hacer. Sólo tenemos que hacer esto. Vamos a decir géneros, una cuerda o algo así. Van a ser géneros
que mapa, ese mapa. Vamos a conseguir
el nombre y la URL. Y vamos a usar un hipervínculo del
flagelo js slash builders. Esto básicamente espera
como primer argumento, los textos que se
van a mostrar, que en este caso
va a ser el nombre. Y el segundo
argumento es la URL. Vamos a hacer lo mismo, pero con los temas. Temas. Temas, temas es
bebida es igual a esto. Ahora solo agregamos los
campos diciendo géneros, va a ser la
ictericia, una cuerda. Y esto sigue siendo un mapa. Entonces necesitamos unirnos a
esta cosa y podemos unirnos a ella compra
base o por nuevas líneas, lo
voy a hacer por nuevas líneas. Voy a hacer lo mismo, pero con los temas. Temas, fuerza. Creo que ya hemos terminado. Vayamos aquí y
consigamos un animal al azar. Una vez más, se está
tomando su tiempo. En la aplicación no
respondió probablemente porque era el servidor
se estaba reiniciando. Y ahora tenemos esta cosa aquí. El título en japonés, no
entiendo que sea un título. Y se puede hacer click en eso
y se leerá reg debido a mi animal es
la sinopsis del tipo. Está diciendo que el dueño es
tatuajes terminados de ventilar, leer temas de duración
y mira eso. Esto es interesante
porque esta cosa aquí no tiene la partitura, la partitura por los géneros. Por lo que nada de esa
información está presente. Y no tuvimos
un error porque
agregamos estos IV valor. Se puede ver que
en el mundo real esa información
no puede estar presente. Y será mejor si
puedes hacer algo como esto. Pero de nuevo, no queda claro
de la documentación y
no quiero leer
demasiado en eso. Eso es todo. Ahora ya sabes cómo hacer
comandos que llamaran una API. Lo importante aquí es estas interacciones
que antes de responder. Porque si no haces eso, entonces vas
a tener problemas. Además, esta cosa puede fallar. Axial, puede devolver tal vez 500
o algo así. Entonces será
impresionante si puedes. Pequeñas mejoras para
manejar esos casos. Esa documentación dice, No, estos siempre regresan
a escribir a mano o 400. Y si haces una mala petición
o algo así, pero eso no es cierto. Hay documentación que está
mintiendo que puedes tener un 500, puedes tener yo no sé,
4142, lo que sea, lo que sea, porque nada es perfecto
en el mundo del software. Por lo que también hay que ver ese caso donde falla la propia llamada
API. Eso es, eso es todo. Espero que te haya gustado este video. Nos vemos en la
siguiente. Adiós.
34. Comando de ayuda: Hola y bienvenidos de vuelta. Ahora vamos a
agregar el último comando, que va a estar al comando
que define subcomandos. Va a ser un comando de ayuda. Entonces básicamente lo que vamos
a hacer en el marcador Este, algo así como una ayuda de barra. Y eso nos mostrará una lista de subcomandos donde podemos
obtener más información. Al igual que por ejemplo, Una
información más sobre la encuesta, entonces en este tribunal diré que es una ayuda exuberante encuesta de MS Slash. Vamos a hacer eso
por cada mando aquí. Quiero decir, podemos, pero vamos a agregar propiedad
nupcial llamada Ayuda dentro del tipo
de este comando slash. Entonces aquí vamos
a agregar algo como esto, ayudar a la fuerza. Ahora, si incluyo eso
dentro de cualquier lado, cualquiera que sea el comando que quiera, entonces se va a
mostrar en esa lista. Y si no, entonces
no se va a mostrar. Vamos a hacer eso de una
manera muy inteligente. En primer lugar, vamos a crear
una ayuda con ese archivo ts. Y lo que vamos a hacer aquí va a ser
un poco diferente. Lo vamos a hacer aquí es crear la función que va a recibir una ayuda airear argumento. Y vamos a
ver ese tipo de esta cosa en un momento. Y estas función va
a devolver un comando slash. Entonces empecemos a hacer eso. Digamos exportar
const, comando de ayuda. Esto va a
recibir un ayudante Y vamos a ver
qué tipo de esfínteres. Y esto va a
devolver un comando de barra. El ayudante a.
definamos ese tipo aquí. Tipo de exportación, Ayuda. Esto va a ser una matriz. Esta matriz va a ser
una matriz de objetos que tienen el nombre del subcomando, que va a ser una cadena. Descripción del subcomando,
que va a ser cadena. Y una ayuda de subcomando de ayuda, que también va a ser
una cadena. De acuerdo, entonces ahora vamos a
usar este tipo de raid ayudante. Y básicamente ahora lo
que vamos a hacer, facilidad en el archivo index.js. Vamos a hacer un
pequeño cambio aquí. En primer lugar, no vamos a
exportar esto de inmediato. Primero queremos
conseguir estos ayudantes re haciendo alguna transformación
a los comandos de barra. Entonces vamos a llamar a
esta función de comando de ayuda. Y vamos a empujarlo
a estos comandos de barra. Y vamos a
exportar eso al final. Entonces el último paso, podemos hacerlo ahora mismo. Se va a exportar
estos comandos de barra inclinada. Ahora definamos
la ayuda o el objetivo. Estos ayudantes a va
a ser una barra de comandos. Vamos a filtrar
primero aquellos comandos que no tienen propiedad de
salud. Vamos a decir comando. Esta cosa me va a dar sólo los comandos que
tienen la ayuda de la propiedad. Por eso estoy usando estos dos operador bancario va a explotar operador para
filtrar esas cosas hacia fuera. Entonces voy a decir mapa de puntos. Y voy a
conseguir el comando. Y la ayuda. Voy a devolver un objeto. Y este objeto va a
tener el nombre del subcomando, que va a ser el nombre del conducto de
comando. El subcomando descripción, que va a ser el
comando esa descripción. De hecho, déjame escribir aquí
esta cosa. El submando ayuda, que
va a ser esta
ayuda a Roberta aquí. Greg, ahora se está quejando ¿por qué? Porque recuerda estas cosas, un acero me dejó ver el
tipo de esta cosa. Se puede ver que el tipo de esta cosa es cadena de
subcomando, descripción del
subcomando del
subcomando string sostuvo la
cadena o en el Find. En nuestro ayudante un tipo. Recuerda que esto no
es indefinido. Con el fin de arreglar
eso en el filtro. Aquí podemos decir comando
requerido comando slash. Lo que estoy haciendo
con estos requeridos requieren básicamente dice que cada inmueble del tipo
que pasamos es obligatorio. Va a convertir estas cosas aquí a algo
así como lo mismo, pero sin esta
propiedad para ser opcional. Eso es lo que el
polvo requerido en TypeScript. Ahora que tenemos esto, necesitamos conseguir el comando de ayuda. Voy a decir que el comando de Ayuda
va a ser comando de ayuda. Pasamos una lluvia ayudante. Por último, vamos a decir comandos de
barra inclinada que
empujar ayudaron a entrar. Entonces vamos a
exportarlo como último paso. Ahora que tenemos un filtro
a cabo esos comandos sin la propiedad de ayuda que
hemos pasado con éxito estas tasa de ayudantes
al comando help. Empecemos a construir
nuestro comando de ayuda. Entonces recuerda estas necesidades para
devolver un comando de barra inclinada. Pero antes de hacer eso, vamos a hacer
algo muy inteligente, que es construir un mapa de ayuda. Hicimos algo parecido
en el comando sondeo donde construimos algún mapa de emoji
o algo así. Bueno, aquí vamos a hacer
básicamente lo mismo. Vamos a construir un mapa donde las claves son
el nombre del subcomando. El valor es ayuda, es la ayuda a fortalecer
la ayuda del submando. Voy a tomar
la matriz de ayuda. Voy a reducirla. Y el tipo, el resultado de esta cosa va
a ser un objeto donde la clave es una cadena y
el valor también es extraño. Ahora voy a
pasar una devolución de llamadas. Y el segundo argumento
es el valor inicial, que va a
ser una matriz vacía. Mapa será esta matriz aquí. Y luego el segundo argumento es el valor actual que se puede ver tiene el nombre del subcomando, descripción del
subcomando,
y la ayuda del subcomando. Voy a deconstruir esta
cosa y voy a conseguir el nombre del submando y
la ayuda del submando. Y yo voy a hacer
aquí es básicamente decir mapa del nombre del submando es
igual a la salud del submando. Y devolverlos arriba. Ahora que hemos construido, construido este mapa, necesitamos devolver este comando
slash, ¿verdad? Entonces voy a
devolver un comando. Este mando
va a ser un IIFE. Si no recuerdas
lo que es eso. Es una expresión de
función inmediatamente invocada. Entonces algo como esto,
algo como esto. Se trata de un IIFE. Estas necesidades de IIFE para regresar
es constructor de comandos de Lash. Voy a declarar comando
slash igual a nu es constructor de
comandos de barra inclinada. Voy a poner el
nombre para que sea ayuda. Voy a establecer
la descripción para obtener ayuda para un comando específico. Ahora, voy a conseguir
esa información. Cada matriz de la matriz. Voy a decir por cada uno, voy a conseguir el
nombre, la descripción. Lo que voy a hacer con
esta información Ysaye es comando
slash, ese subcomando. Necesito construir el submando. Y para construir el subcomando, solo
voy a decir
subcomando ese setName. Y luego voy a establecer el nombre
a estas variables aquí,
nombre, que liberan el nombre del
subcomando. Y esto será Soy subcomando descripción
sub comando name, y luego establecer la descripción para que sea descripción del subcomando. Ese consejo, hemos agregado subcomandos para todos esos comandos que
tienen la ayuda a prepararlo. Por último, sólo devuelva
este último comando. Ahora ochenta quejándose porque apropiado para correr al este no aquí. Entonces solo vamos a
agregar la función run, que va a
recibir una interacción. Y entonces voy a decir, ayudarnos a entrenar
va a ser igual para
ayudar a mapear adopciones de interacción. Eso consigue sub comandos. Y eso es todo. Sólo tenemos que
responder ahora dirección que responda con el contenido. El contenido va a
ser que nos ayude a soñar. Eso es todo. Eso es todo lo que tenemos que hacer. Con el fin de agregar
dinámicamente estos comando
help para los comandos
que tienen esta propiedad. Por ejemplo, permítanme añadir algún inmueble escuchando la encuesta porque puede ser más compleja. En la ayuda que, vamos a añadir algún
texto como comando. Por crear una encuesta que tenga un tiempo entre 160
segundos, minutos, horas. tanto que un hasta diez opciones. También puede opcionalmente, también
puede agregar un título,
una descripción del título, descripción del título, y
si desea o no que se le notifique VIA DM
cuando finalice el polo. Creo que ese es un texto
bastante razonable para nuestro comando pull, ¿verdad? Ahora que esta cosa
tiene un comando de Ayuda, nosotros, lo sentimos, una propiedad de salud. Podemos correr sordos. Yo soy, veamos qué pasa.
Compré estos en línea. Entonces vamos a teclear ayuda. Ahora se puede ver que
tenemos encuesta de ayuda. Ahora dice comando para la
calificación que saqué que puede tener un tiempo entre todos los textos que
acabamos de definir. Agreguemos uno para el hola. Tal vez agreguemos uno para userinfo porque el
amarillo es demasiado simple. La ayuda va a ser. Este comando devuelve
la información del usuario. El momento en que él o ella se unió al servidor para
Discord su perfil, imagen, los roles, etc. Ahora vamos a correr dev. Una vez más.
Vamos a nuestro servidor. Ahora se puede ver que tengo ayuda para tirar y
también me he aferrado a userinfo. Si escribo ayuda, lo siento, OVNI. Está diciendo que estos
comandos devuelve el OVNI del usuario como el
momento en que él, ella se unió. Toda esta
información que puede ser muy útil para el usuario. Se puede ver que esto
es sólo las opciones son sólo para aquellos comandos que
tienen estas propiedades de ayuda. Para aquellos que no tienen la propiedad que son
y eso se muestra. Y por qué decidí
hacerlo de esta manera. Lo hice de esta manera porque
no quiero agregar información
innecesaria. Eso es, eso es todo. Espero que te haya gustado este video
y nos vemos en el siguiente.
35. Añadir Config.: Hola y bienvenidos de vuelta. En esta sección les
voy a mostrar cómo
agregar pruebas a nuestros comandos. Esto es algo que no he visto hecho muy bien porque es un tema complejo en el
sentido de que no son ninguna biblioteca por
ahí que tratara marcar cosas como
la interacción, que es un tema muy complejo. Por lo que podemos pasar horas tratando investigar sobre cómo
ordeñar objeto neto. Eso es totalmente posible,
pero va a ser muy, mucho tiempo. Entonces descargo de responsabilidad aquí fácilmente, vamos a probar, vamos a sumar pruebas. Un comando para
mostrarte cómo se hace. Pero probablemente
no sea la mejor manera. Pero de nuevo, no veo ninguna
otra mejor manera de hacerlo. En primer lugar, necesitamos toda
esa calderilla para configurar nuestra configuración porque
vamos a usar Sí. Así que primero agreguemos como
dependencia sorda, broma y tipos solo porque dónde ves
en TypeScript entonces incluso si no estamos
usando TypeScript, necesitamos esta biblioteca
para JavaScript
para ayúdanos con la autorealización de
los métodos en su interior. Sólo vamos a esta cosa. Y esperemos un momento
para que esto se complete. Ahora, agreguemos barra
o Biblia o sin embargo, no
sé cómo eso es
pronombres realmente. Pero estos 0s, estas van
a ser tres palancas que nos
van a ayudar a transferir código de archivo
escrito en JavaScript. Entonces las pruebas que están escritas
en TypeScript, JavaScript. Por lo que es un preset que
va a ser utilizado por digest para que usted pueda entender
nuestras pruebas TypeScript. Vamos a agregarlos
así, pero Bellcore, preset
Bell, Preset TypeScript. El archivo que voy a añadir, también lo
puedes
encontrar, encuéntralo en la documentación
de solo para que
no sea fácil encontrar
esa documentación. Pero antes que nada, ejecutemos este comando para inicializar nuestro archivo de
configuración justo. Así que maldita TSC, dash, dash en ella. No TAC, lo siento, Darn
acaba de salpicar, salpicar en ella. Se va a hacer
algunas preguntas, así que intentemos responderlas. Nos gustará usar el ESC. Estamos ejecutando pruebas de
raspado paquete JSON. Responderé sí. Nos gustará usar TypeScript para el archivo de configuración. Diré que sí otra vez. Y me va a decir elegir el entorno de prueba que se
utilizará para las pruebas. Si fuéramos reaccionar por ejemplo, vamos a vincular JS DOM, pero estamos usando un revés. Vamos a decir nodo. ¿ Quieres solo agregar informes de
cobertura por ahora? Voy a cantar no, porque su cobertura no
va a ser buena porque sólo
vamos a escribir una prueba. Que de cualquiera
se debe utilizar para instrumento
para la cobertura del código. Y de nuevo, no vamos
a tener cuidado con la cobertura del
código. Para que puedas seleccionar lo que
aquí voy a seleccionar V8. Se lo puede decir por Bill, borrar
automáticamente llamadas simuladas, instancias y resultados
antes de cada prueba. Voy a decir que sí. Te voy a explicar
qué
es esto , qué generaron estos. Por lo que generó estos archivos. Y la última pregunta que dijo, borrar
automáticamente
las instancias y resultados de Michael antes de que cada prueba una vez fuera traducida a
esta propiedad aquí, claro MCS igual a verdadero. El proveedor de cobertura. Y lo que es todo, todo lo demás está mandado para que podamos dejarlo así. El proyecto crece probablemente. Tendrás que ver
las opciones aquí, justo entonces ver qué es
cada opción aquí así, y llorar para usarlas. Ahora que tenemos ese archivo apenas
dot config dot txt, necesitamos crear otro
archivo que se va a llamar bible dot dot js. Esto nos va a ayudar
para nuestros archivos de script tipo. Sólo voy a usar
módulo que exporta. Y vamos a decir presets. Vamos a poner primero una
matriz, el primer elemento, que va a tener
balbucear barra preestablecida EMF, luego apunta sin corriente. El segundo elemento sólo
va a ser barra preestablecida tipo
de script. Eso es todo. Este archivo de configuración
para biblia nos va a permitir escribir
pruebas con TypeScript, cual es genial porque
queremos que todo se
escriba en TypeScript. Creo que TypeScript
se está quejando porque está diciendo archivo sólo un conflicto que TS No está suscrito ciervo, que es la carpeta fuente. Entonces creo que lo especificado
algo así aquí. Entonces fuente de corzos, está diciendo, Hey, esto sólo ese archivo
copy.txt no está
dentro de la fuente. Entonces me quejo,
esto es fácil de arreglar. Simplemente decimos aquí excluye
obviamente módulos de nodo por si
acaso y apenas dot dot
ds. Entonces eso es todo. Ahora el problema es la sal y
creo que los módulos de Nodo ni
siquiera es necesario. Pero sólo
lo estoy poniendo aquí, por si acaso. Pero creo que no es
necesario ponerlo aquí. Pero es mejor ser
explícito que tener errores, errores impredecibles e impredecibles
. Eso es todo. Ahora en el siguiente video, lo que vamos a hacer es intentar agregar una prueba para un comando. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
36. Prueba Para Añadir Comando: Hola y bienvenidos de vuelta. En este video, realmente vamos
a crear la prueba. Recuerda, en nuestro comando add, que es el comando que
vamos a probar. Tenemos obviamente
la propiedad de comando y la propiedad que
es una función asíncrona. Entonces vamos a probar la propiedad equivocada solo porque esta es la lógica
empresarial real. El comando es sólo una forma
declarativa de crear. Yo lo recomiendo. Puedes intentar
construir una tasa de prueba, pero no agrega demasiados valor como probar
la lógica empresarial real. De acuerdo, así que vamos
a agregar una carpeta dentro es menos
comando llamado tareas. El interior de las pruebas,
vamos a agregar un nuevo archivo llamado agregar tareas dot ts. Aquí vamos a
importar obviamente el comando
at desde ese archivo. Y en la prueba, vamos a decir que
responde con la
suma de dos números. Vamos a ejecutar
estas función de ejecución. Y esta función de ejecución
no es un solo método. Tenemos que transmitir
su devolución de llamada de pensar. Entonces ahora lo que vamos a
hacer es tratar de marcar estos obtener número porque necesitamos que este buen número responda
o devuelva un valor. Por lo que también se define ese número uno es
encontrar un número dos. Para hacer eso, vamos crear una variable llamada número. Vamos a decir sólo punto Fn. Esta es una
marca real y podemos hacer estas cuadrículas y función MAC opcionalmente textos y
simulacro de implementación. Entonces podemos hacer básicamente un montón de cosas con esta función
solo MAC. Vamos a llamar a este
simulacro o el valor de giro. Una vez. Vamos a decir uno y
lo vamos a hacer de nuevo. Devolver valor una vez, retorno MOG, pero otros pero con cinco. Lo que esta cosa está haciendo
es básicamente decir, Oye, la primera vez que me llamas,
devuelves uno, el número uno
va a hacer uno. Y la segunda vez que me
llames, regresa cinco. Entonces el número dos
va a estar bien. Bien, ahora vamos a crear el objeto de interacción
real. Y es aquí donde no
he encontrado la
mejor manera de hacer esto. Porque
no hay bibliotecas para tratar de marcar estos objeto de
interacción, que es bastante, bastante complejo. Obviamente estábamos
usando JavaScript, estos no serán un problema, pero como estamos usando TypeScript, no
hay una buena
manera de hacerlo. Opciones interiores. Vamos a sumar
esto get number thing. Ahora, cuando se ejecute la prueba, vamos a
deconstruir opciones, que va a ser
el tema aquí. Y luego a partir de esas
opciones vamos a conseguir estos obtener la cosa
número aquí. Número. Eso es lo primero que
necesitamos para chocar. Y lo segundo que
necesitamos para marcar estas respuesta, que va a
ser de nuevo ajustar. Esta cosa no necesita ninguna limitación porque
no devuelve nada. Pero en
realidad vamos a esperar que estas respuestas se llamara
con estos contenidos. Aquí mismo. Vamos a esperar que se llamara
con este objeto aquí, con este contenido y
con los valores correctos. Lo siento, esto es MC,
devuelva los de valor. De acuerdo, así que ahora vamos a
tratar de ejecutar los métodos de ejecución. Entonces vamos a
decir Agregar comando que se ejecute dentro del peso. Vamos a pasar
la interacción. Y se va a quejar porque interacción Este ninguno de tipo manda la interacción. Podemos tratar de hacer
estas interacciones como interacción comandos
desde estos anotados JS. Y todavía va a quejarse porque necesita mucho, de, de otras cosas aquí
para ser considerado una interacción. Esta es la parte donde no
me gusta, pero no veo ninguna
otra alternativa. Primero lo echamos como desconocido y luego
les preguntamos en interacción. Nuevamente, esto no es algo bueno, pero es lo único
que he descubierto
al intentar probar estas cosas aquí. Se atreven, ella será bibliotecas para
tratar de cosa de monos. Eso sucede cuando se tiene una biblioteca de código abierto
como esta al cuadrado, sí, creo que no
están terminadas. No tienen una interacción. Así que espero para marcar
este tipo de cosas, pero no tienen una. En realidad hay un paquete, pero es como muy viejo
y no es compatible. Y tiene muy pocas descargas. Por lo que quiero usar
eso en este curso. Sólo voy a usar
estos lanzamientos, echando aquí. Ahora podemos decir Esperar obtener número dos han sido
llamados dos veces, han sido llamados a veces. También podemos esperar que la
interacción no responda. Se han llamado ancho, para haber sido llamado con. Y vamos a pasar
el contenido del objeto. Uno, los cinco últimos es igual a seis. Esta es básicamente nuestra prueba. Ahora, cuando creamos toda
esta configuración, pensando que había una
pregunta diciendo: Oye, querías raspar para probar tus archivos,
tus archivos de prueba. Y dijimos que sí, podemos ejecutar estos test de hilo
va a correr invitado
detrás de escena. Y como pueden ver, hemos pasado estas pruebas.
Estas pruebas, su patrón. De acuerdo, así que eso es, eso es todo. Agregamos una prueba. Y
lo importante que quería mostrarles aquí es
que estas cosas aquí,
como lo conoceré como dirección
encomiada, esta no es la mejor
manera de escribir pruebas. Queremos y objeto de
interacción totalmente burlada. Pero en este momento no lo son. Bueno, es posible,
pero va a ser
muy, mucho tiempo tratar construir nuestros propios laboratorios para esto. Así que acabo de hacer este casting
aquí, correcto, la prueba. Entonces ahora que ya sabes
cómo agregar una prueba como esta, será muy fácil
hacerlo para otros comandos. Te recomiendo encarecidamente que lo hagas por todos los comandos como ejercicio. Espero que te haya gustado este video. Nos vemos en la próxima conferencia. Adiós adiós.
37. Parte 1 de los roles individuales: Hola y bienvenidos de vuelta. Ahora vamos a crear
un comando para
asignarte algunos roles con
algunos emojis personalizados. El primer paso será ir a tu servidor e ir a la
configuración del servidor e ir a emoji. Aquí puedes añadir
tus emojis personalizados. Vamos a sumar a. El primero va a ser un JavaScript emoji JavaScript. Y el segundo va
a estar en TypeScript image. Ahora que tenemos estas
dos imágenes Q-star, podemos obtener los ID y los nombres de estos emojis
escribiendo columna barra invertida,
JavaScript, columna de barra invertida
, TypeScript. Esta es la versión
que tenemos que establecer en nuestro código para poder
utilizar estos emojis. Esto es lo que tenemos
que hacer en el código. Vamos y en nuestro código, vamos a ir aquí a fuente. Y agreguemos un archivo
llamado autoroles. Esto va a
ser sólo una matriz. Nuevamente. Esta matriz va a
tener la mayor cantidad de información, el nombre del
rol, y su color. Llamemos a esta
cosa vender roles. Y esto va
a ser una matriz. Y el tipo de esta matriz
va a ser emoji, que va a ser un objeto con el nombre del módulo. La idea del momento. Eso es lo primero. Ese nombre del rol, que va a ser una cadena, y el color que
va a ser de tipo color resolvible desde el cuadrado
solo para que podamos seleccionar los colores disponibles. Ahora, esto va
a ser una matriz, y aquí vamos a codificar duro los roles
que queremos crear. Esto va a ser un
poco diferente, nos
va a permitir
hacer nuestra vida más fácil. Vamos a codificar duro
esta información. No vamos a pasar a nuestro,
a nuestro comando Add Roles slash la información. De acuerdo, entonces el emoji
va a ser nombre. Javascript. Id va a ser esta cosa
aquí, este número aquí. El nombre va a ser
el rol de amante de JavaScript. No sé lo que
quieras poner aquí, el color, tenemos todas estas opciones
porque estos colores
resolvibles apretados. Ahora vamos a copiar esto
pero con TypeScript. Entonces vamos a decir
TypeScript Lebur. Vamos a decir tipo de raspado y el ID
va a ser estos. Por supuesto, seamos realistas aquí. Y pongamos el azul aquí porque TypeScript, es azul. Ahora que tenemos y
estos auto o roles, agreguemos los Agregar Roles, roles comando, dot ts. Y de nuevo, vamos a copiar y pegar. Y intentemos construir primero
el comando. Obviamente vamos
primero reglas mando. Este comando
va a ser muy, muy sencillo de realmente no
va a tener demasiado. Va a tener un
nombre fijo con las reglas. Establecer descripción para ser, crea un mensaje de que las personas
pueden obtener sus propios roles. Lo importante aquí
es que vamos a decir establecer
permisos predeterminados a false porque no queríamos que nadie
ejecutara estos comandos,
para ejecutar este comando
en el método run. También va a ser, bueno, va a
tener su complejidad. Pero lo primero
que queremos hacer Oriente que estos aliviando
un rendimiento en caché. ¿ Recuerdas eso con él? Esto, creo que
fue en la encuesta. Veamos. Sí,
creo que dijimos en culpa. Ahora vamos a ver, decir que queremos que estos
estén en un rendimiento en efectivo. La diferencia es que la
culpa que están en el caché son las que el
bot sabe cuándo, el libro, cuando corremos
sordos Yarn o algo así. Ok. Pero estos incrustados, ya
sabes, a algunos servidores. En mi caso, está
invitado a mi servidor. Y esos van a
ser los rendimientos en caché. Verás por qué
hice esto en un momento. Interacción que responden contenido. No se puede utilizar este comando
fuera de la culpa en caché. Regreso. Volvamos después de eso. Entonces vamos a crear una
función para construir el M ben, llamémoslo built embed. Función estrecha. Vamos a decir que la
descripción de plomo es igual a
darse flecha.
Y dos nuevas líneas. Vamos a
iterar a través
de toda esa matriz de roles de auto. Entonces vamos a
decir cuatro columnas. Papel de los roles de uno mismo. Importamos eso. Vamos a concatenar
esta cadena así. Vamos a decir que
recuerda esa sintaxis. Te dije que pusieras
emojis así. Roll dot emoji, un nombre. Entonces roll dot emoji DIÓ
va a decir nombre de rol. Dos nuevas líneas. Entonces devolvemos la apuesta Embebido como este nuevo mensaje
M, así. Establezca el título igual a los roles y establezca la descripción igual a la descripción
y el color. Puedes poner el color que quieras. Escogeré cualquier color
aquí, color aleatorio. Ahora que tenemos esta función
para construir la apuesta final, vamos a crear aquí en
el cuerpo de interacción. Eso es genial. El embed, incrustaciones iguales a construir y Beth y dejar responder
con un mensaje. Vamos a decir que una
interacción de peso dot reply incrusta y pasamos el MDF. Y ahora si ves en el
tipo de mensaje es nulo, si queremos buscar la respuesta, necesitamos pasar estas
opción buscar respuesta. Ya verás, ya verás que el
tipo de mensaje es mensaje. Si fuera a tomar estos
y poner en rendimiento, el tipo de esta
cosa será API, mensaje o mensaje Boolean. Lo que quiero hacer a
continuación es reaccionar
a este mensaje con
un emojis personalizados. Y no podemos hacer eso si el tipo de esta
cosa es mensaje API. Para eso, digo en rendimiento en efectivo. Ahora el tipo
será sólo mensaje. Ahora que estoy
hablando de reaccionar, va a ser muy
fácil reaccionar. Simplemente, construyamos esta función. Reaccionar para incrustar una función
asíncrona. Nuevamente, vamos a iterar a
través de todos los roles de uno mismo. Entonces para CMS, papel de auto rollos. Oh espera, mensaje punto reaccionar. Y vamos a pasar la cuerda que
acabamos de crear aquí. Considerando que éste, de hecho, haremos
función de utilidad para construir esto. Pero de todos modos, se puede hacer eso. Y ahora solo tenemos que esperar
a reaccionar a impactar en Jahren
sordos en este momento. Vayamos aquí. Vayamos y esperemos esto. Vale, ahora, o compré esta línea. Veamos. Ah, y tenemos que hacerlo, obviamente tenemos que ponerlo en esta matriz aquí desde
los comandos de latigazos. Hagamos eso. Agreguemos el comando de otros
roles. Vamos a correr maldita. Una vez más. Veamos ahora, si tenemos el add, ahora tenemos los Agregar Roles aquí. Pero mira esto, no
puedo usarlo. ¿ Y por qué es eso? Bueno, recuerda que establecemos los permisos
predeterminados a false. Entonces lo que tenemos que
hacer es permitirnos,
permitirnos o permitir un rol, lo que sea para ejecutar
este comando. Y eso es lo que vamos
a hacer en el siguiente video. Ojalá te haya gustado
este. Nos vemos en el siguiente video. Adiós.
38. Parte 2 de los roles individuales: Hola y bienvenidos de vuelta. Ahora que sabemos que no podemos
usar nuestro propio comando slash, hagamos algo y creemos el nuevo archivo
llamado permisos. Permisos dot ts. Vamos a crear una matriz. Y esta matriz va a tener estas tres
piezas de información. El primero, el comando, nombre, el que comando que queremos
agregar algunos permisos, el ID de gremio y el ID de gremio
es importante porque necesitamos establecer los
comandos de aplicación, permisos. Y aunque la
documentación diga, permítanme mostrarles el
hecho de la documentación, Think se mantiene caliente. Déjame mostrarte un
comando slash permisos. Se puede decir que así es como se agregan permisos para los comandos de Gremio. Y también puedes hacerlo
por comandos de aplicación. Pero esto aquí no es cierto. Quieres, no me creas, pero le pregunté en su servidor
porque esto no es cierto. Si intentas hacerlo así, TypeScript se va a quejar
porque va a decir, hey, necesito una identificación de gremio. No puedo establecer permisos desde
el comando de la aplicación
sin una guillotina, cual es un extraño, lo
cual es un extraño,es raro porque si
estás diciendo, Hey, quiero establecer permisos para un global o aplicación
mando y no
debería necesitar la idea del gremio. Pero les pregunté sus
servidores y dicen, Hey, esto es un error tipográfico,
esto es incorrecto. En realidad necesitas
pasar una identificación, un AD gremio. Entonces es por eso que la documentación necesita estar actualizada
porque éstas están equivocadas. Con esa cosa en mente. Vamos a crear estos permisos const de
exportación array. Esto va a
ser de tipo array. Va a ser una matriz de
objetos con nombre de comando, cadena, ID de gremio, que
va a ser cadena. Y la matriz de permisos, que va a ser
de tipo aplicaciones, permiso de
comando Theta,
y la tasa de eso. De acuerdo, así que veamos
qué podemos hacer aquí. Eso es genial. Y la lluvia. El nombre del comando va
a ser nuestro mando de roles. El ID de gremio va a ser nuestra variable de
entorno de ID de gremio. El señor permisos va
a ser así, una identificación. Y puedes configurar estos para que
sean un ID de rol o un ID de usuario. En mi caso, voy
a usar un ID de usuario. Puedo hacer click en mi
avatar y copiar el DNI. Recuerda que necesitas tener habilitado
el modo desarrollador. Y el tipo puede ser
un usuario o una URL. Si tienes un
rol existente como mod, envíame Illustrator lo que sea, puedes usar esa idea también. Pero
sólo voy a guiarme usa comando y el
permiso que es un booleano. En este caso, voy a decir, Hey, quiero que esto sea cierto. Quiero que estos ID, estos ID de usuario,
usen estos comandos. De acuerdo, así que ahora que tenemos eso, vamos a
crear aquí dentro estos on ready callback
se establece la
función de permisos que va a
establecer los permisos
tanto para los comandos
de la aplicación como para la culpa comandos. Así que recuerda, manda
obligación, lo que sea que les hagas. Puede ser inmediato como
hemos visto en este curso, pero puede ser, puede tardar una hora en
reflejar los cambios. Entonces por eso lo
vamos a hacer aquí
tanto por los comandos de obligación como por los comandos de culpabilidad. Creo que no hay
manera de que sean 0s, pero no sé de
una forma de hacerlo, escuchar los comandos de
culpabilidad registrados. Entonces creo que es más
fácil hacerlo aquí. En primer lugar, vamos a
hacer que esta función sea asíncrona. Aquí. Voy a configurar
esto para que se establezca comandos. Déjame ver, tal vez
llamémoslo comandos de aplicación. Ahora vamos a crear
la función aquí, una función interna
llamada establecer permisos. Nuevamente, va a
estar en una función sinc. Dentro de estas función asíncrona, vamos a iterar primero a través
de todos los permisos de la matriz de permisos para una constante, permiso
de permisos. Primero vamos a buscar el comando global que nos estamos refiriendo dentro de
este objeto de permiso. Vamos a llamarlo así. Comando global igual a los comandos de
aplicación. Son iguales,
son sinónimos. Encuentra. En realidad, déjame. Espera esta cosa aquí. Buscar comando, donde
comando dot name, EC igual a permisos nombre de comando
dot. Ahora estos comandos pueden
ser o bien un comando o vamos a añadir aquí el separador. Entonces esta cosa puede ser ya sea
un comando o en la final. Entonces si
existe el comando global, esta cosa existe. Tal vez ni siquiera necesitamos eso. Vamos a utilizar el operador
de cadena opcional. Entonces si ejes de comando globales, vamos a establecer
los permisos, permisos set de puntos es igual a, y necesitamos pasar
un ID de culpa de culpa. Y los permisos, obviamente, este permiso, los
permisos de permiso como este. De hecho, déjame simplemente
deconstruir del permiso. Déjame deconstruir el ID del gremio. Y los permisos. Sólo hazlo así. Así. Veamos. Culpa. Ok. Ahora que los hemos puesto
para el comando global, hagámoslo ahora por
los comandos del gremio. Entonces, antes que nada, necesitamos conseguir el rendimiento. Y íbamos a buscar la culpa client.read
rinde ese lote. Sólo para estar seguros. Recuerda que solo
podemos conseguirlo primero desde
el caché que podrías existir. Entonces Cliente, Déjame hacer esto. Déjame hacerlo así. Cliente dot, dot cash get
y pasamos una identificación de gremio. Y estas pueden ser cualquiera de las
ofertas son indefinidas. Entonces podemos buscarlo
si no existe. Client.write rendimientos
que fetch, yield ID. Ahora esta cosa siempre se
va a definir. Ahora que tenemos la culpa, vamos a sacar los comandos
de esos campos. Comandos de rendimiento, peso,
culpa, que manda. Y esto es importante, vamos a buscarlo. Si tratamos de
sacarlo de los cachés, no va a funcionar. Vamos a buscarlo siempre. Y luego vamos a buscar el,
el comando de campo en particular. Así. Ahora si esto existe, establecemos los permisos, pero esta vez
no necesitamos pasar un comando de rendimiento VIP que se establecen
permisos,
permisos. Eso es todo. Ahora que tenemos esta función, obviamente
necesitamos
llamarla después de los comandos de la
aplicación. Así que vamos a la información
y esperemos eso. Y ahora podemos ir a nuestro servidor. Y vamos a tipo de roles. Vamos a escribir esta cosa. Y ahora se puede ver
que nuestro embed es enviado. Podemos usarlo y podemos
reaccionar ante esta cosa. Y no va a
pasar nada porque obviamente no
hemos agregado ese código
para crear roles. Entonces eso es lo que vamos
a hacer en el siguiente video. Crea el código,
calificación, el rol, Lo sentimos, En nuestro último comando. Comando roles. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
39. ¡No olvides añadir el id de gremio a tus variables de entorno!: Hola y bienvenidos de vuelta. Bueno, esto es sólo un recordatorio que ahora que estamos
usando el ID de gremio, necesitamos especificarlo. Lo siento. Tenemos que
especificarlo aquí. En el entorno
variables o barras de conflicto. La heroína, Heroku. Así que solo escribe ID de gremio
y consigue dibujó la identificación de la culpa. Recuerda cómo
conseguirlo así. Entonces acaba de empezar. Eso es todo. Ahora, no tendrás ningún
error en tu cinturón. O cuando inicias la
aplicación en lugar de reconstruirlo. Eso es todo. Yo seré así. Nos vemos
en la próxima conferencia. Adiós.
40. Parte 3 de los roles individuales: Hola y bienvenidos de vuelta. Ahora que sabemos
usar nuestro propio comando slash, vamos a crear la función. Para crear los
roles IV, existen. Vamos a tomar los roles
de la matriz de autoroles. Y los vamos
a crear sólo si existen. Así que vamos a crear aquí en el comando
Agregar roles una slash, esa función va genial, roles. Si Xist va a ser asíncrono. Vamos a conseguir los roles existentes. Al hacer una interacción de peso ese gremio que rueda punto fetch. Esta vez culpa,
estos solidificando porque hicimos esto
en culpa en caché. Ahora construyamos el mapa. Esto va a ser, digamos que el tipo va
a ser una colección o un mapa, donde las claves son los identificadores de los roles y los valores
son los roles mismos. Queremos convertir estos a algo como este mapa donde un
objeto donde las claves son ahora los nombres de sus roles
como amante de JavaScript. Y el volumen sólo
va a ser un booleano. Di, diciendo, Hey, estos
rodando existencia real. Llamemos a esto roles
existentes de mapa. Y esto va a ser roles
existentes que disminuyan. Aquí vamos a utilizar
la reducción. La coma de cuerda Boolean. Eso va a ser
el resultado de esto. Entonces obtenemos el resultado
que es el valor inicial. Entonces vamos a añadir el valor inicial. El resultado va a
ser estas matriz vacía y se van a agregar algunas propiedades a medida
que negociamos las más amplias. Y el segundo va a
ser cada uno de estos valores. Y cada uno de estos
órganos de rol tiene un nombre. Lo que vamos a hacer, un resultado del nombre es igual a
verdadero y devolver el resultado. tanto que eso, lo siento,
creo que esto no es correcto. Creo que estos deberían
estar aquí así. Entonces ahora que tenemos el mapa de roles
existentes, vamos a iterar a través de
cada uno de los roles de uno mismo y verificamos si el rol ya
existe, entonces continuamos. De lo contrario creamos
la fila como esta para el rol constante de roles de uno mismo. Vamos a decir si el mapa de
roles
existentes de nombre enrollado es cierto,
entonces continuamos. De lo contrario, esperamos
interacción dot, dot, roles, dot create. Y podemos pasar aquí
las muchas, muchas opciones. El primero obviamente
es el nombre del rol, que es lo más importante. Podemos pasar un color. Va a pasar el color
enrollado. Podemos pasarlo. Es mencionable o no.
Voy a decir que no. También podemos pasar como
Emoji Unicode o emojis personalizados. Pero en realidad esa
característica está reservada para servidores que han nivelado dos de nitro o
algo así. Entonces necesito muchas necesidades
de usuarios en el
servidor con nitro, donde necesito comprar
mucho nitro,
boost, como sea que se llamen. No puedo hacer eso. Puedo poner un
emoji personalizado ahora mismo. Por lo que sólo voy a
especificar estas opciones aquí. Si quieres ver más opciones, puedes ir a la
documentación o puedes ir aquí a la
definición de TypeScript y ver, oye, puedes pasar una razón. Tú vas aquí, puedes
nombrar polipasto de cólera, la posición del papel también. Tal vez eso sea importante. No voy a especificar
aquí los permisos también que bueno es opcional, pero también puedes hacerlo. El icono
Emoji Unicode que no podemos poner tristemente porque
no tenemos suficientes impulsos. Y eso es todo. Sólo tenemos que llamarlos ahora. Se llamaba, ¿Cómo lo llamé crear relativa existe función. De acuerdo, así que ahora si vamos a nuestro
servidor y escribimos de nuevo roles, vamos a ver, sólo tengo
este rol dueño frío. Y si hago clic en esta
cosa, vamos a ver. Todavía no lo tenía. Veamos, vamos a hacer clic aquí. No lo tenía porque
obviamente no estoy probando este momento que el Raleigh
lo triste pero solo quería ver
que se creó el papel. Lo siento, entré en el
futuro y eso no está bien. Vamos a la
configuración del servidor, Los roles, y ya puedes ver que
tenemos estos JavaScript bajar este amante de TypeScript. Por lo que ahora hemos creado
nuestros, nuestros roles. Si vuelvo a ejecutar este comando en las reglas y voy a los roles de configuración
del servidor, vas a ver que
son iguales. No han cambiado. Si yo, si no hago
esta condición aquí, tendré muchos
roles repetidos. Ese no es el caso aquí. Por lo que ahora en el siguiente video
vamos a empezar a intentar, cuando reaccionemos ante esta cosa, vamos a
sumarnos esos roles. Solo piénsalo
antes de ir al siguiente video. Reacciones coleccionista,
como hicimos en la encuesta no va a
funcionar en este caso. ¿ Por qué? Porque tiene una carne magra de reacciones y van a
limitar el tiempo. Y no queríamos
el cojo, ¿verdad? Queremos que ese mensaje esté
ahí para siempre y la gente simplemente haga clic en esa cosa y se
den a sí mismos en roles. En realidad vamos a agregar otro oyente para ver si
podemos recibir reacciones de mensajes. Espero que te haya gustado este video. Nos vemos en la siguiente. Adiós.
41. Parte 4 de los roles de uno mismo: Hola y bienvenidos de vuelta. Entonces ahora tenemos nuestra cama M, que tiene estas reacciones
como en nuestra encuesta. Ahora necesitamos
realmente conseguir un anuncio, los roles para el usuario que
reaccionó ante ellos hasta el final. Vamos a crear
un nuevo oyente llamado a la reacción del mensaje. Hagámoslo así. Costos de exportación en reacción de
mensajes. Vamos a pasar a un cliente. Este curso va
a volver nulo. Vamos a decir cliente, y tenemos todas
estas opciones. Queremos que la reacción del mensaje en el Kohlberg va
a ser una devolución de llamada asíncrona. Y esta devolución de llamada asíncrona
va a tener la reacción y el
usuario que reaccionó. Entonces la reacción es de tipo, reacción
nasa y
el usuario es de tipo, usuario o usuario polaco o parcial, métodos
parciales reacción
o usuario parcial. Creo que no lo hemos hecho, aún no hemos
especificado los parciales, pero vamos a hacer eso a continuación. Primero, vamos a la derecha. La lógica. Lo que queremos
hacer aquí es primero comprobar si el mensaje de reacción
interacción punto, nombre de punto. Si esto existe, queremos que estos sean
de tipo roles de AD. Queremos primero comprobar si es
la interacción Agregar Roles. Entonces queremos encontrar los papeles
de uno mismo. Voy a encontrar el papel. Sí, de hecho,
hagamos esto afuera. Llamemos a este papel de reacción. Hacerlo fuera de esto si declaración. Vamos a encontrar
que el auto roll, roll dot emoji que no
lo hice, es para ser igual, déjame cerrar esta reacción. Este rol de reacción existe. Reacción rho. Esto va a ser parte
de nuestra condición si. También queremos revisar su
mensaje no es una culpa, reaccionar mensaje, mensaje de reacción
en culpa. Y también queremos comprobar
si el usuario va a enviar. Esto no está arriba
porque recuerda, nuestro barco es el
encargado de reaccionar, pero no queremos agregar
roles a nuestra tienda comprada. Ahora vamos a conseguir la culpa
con el punto del mensaje de reacción. Ahora que tengo el ID de culpa, voy a decir que el
rendimiento es igual a, nuevo client.read gremios
que dinero en efectivo que reciben identificación de
gremio se debe repartir ID. Si esta cosa no existe, entonces sea culpa o indefinida, entonces esperamos rendimientos ese lote. La culpa. La culpa siempre está definida. Ahora queremos conseguir
un rol existente. Los roles existentes son
iguales a la culpa. Que los roles que dinero en efectivo. Esta va a ser una
colección donde las claves son los identificadores de las
reglas y los valores
son los propios
sujetos de rol. Ahora vamos a
conseguir el papel para sumar. El rol a agregar
va a ser igual,
lo siento, a las reglas existentes. Vamos a encontrar,
vamos a encontrar un rol
existente donde el nombre de
punto de rol existente sea igual a
nuestro nombre de punto de rollo de reacción. Vale, lo siento. Ahora que tenemos el
papel que añadir, de nuevo, estos pueden ser un rol o
indefinido si se gira para encontrar no solo devuelto
y no hacer nada. Pero si esta cosa
e es de tipo rol, entonces vamos a decir const, usuario es igual al ID de punto de usuario. Vamos a conseguir al
miembro del gremio. Rendir de nuevo, tratar a los miembros que cobran ese Gad, el ID de usuario. O si esta cosa no existe, recuerda, puede ser así. Si lo hago así, va a ser
miembro del gremio o en la multa. Entonces si no está definido,
voy a esperar. Miembros del gremio que
obtienen el ID de usuario. Ahora, el miembro siempre
es miembro del gremio. Y aquí hay que tener
cuidado si los
roles de miembro que cash tiene el
rol de agregar ID de punto. El miembro ya tiene el papel. Entonces no queríamos
hacer nada. Sólo regresas. De lo contrario
acabaríamos en los papeles. Los roles son la segunda fila. Esta es nuestra lógica que se
ejecuta profundidad discortante aquí. Veamos si funciona. Ahora el cuerpo está
en línea, eso son roles. Y ya se puede ver que los comandos de la
aplicación funcionando no funcionaban porque
tuvimos que esperar algún
tiempo para que funcionara. Ok. Así que ahora mira mis roles. Sólo tengo dueño si yo, si reacciono a estos ahora, todavía no tenía el neural. Veamos por qué. Hagamos algo de depuración.
Vamos a intentarlo de nuevo. Tal vez, tal vez, quizá
hagámoslo de nuevo. A lo mejor creo que
lo que está pasando? Nos olvidamos de hacer algo. Nos olvidamos de ponerlo dentro
del main.js, ¿recuerdas? Así que en reacción de mensaje, ese cliente estúpido error para mí. Hagámoslo de nuevo. Si digo, si reacciono ante esto, voy a conseguir el amante de
TypeScript. Y si reacciono ante estos, voy a conseguir el
amante de JavaScript. Ahora está funcionando. Ahora está funcionando. En el siguiente video, lo que vamos
a hacer es lo mismo, pero cuando eliminemos la reacción. Nos vemos en el siguiente video. Adiós.
42. Parte 5 de los roles individuales: Hola y bienvenidos de vuelta. Tenemos la capacidad de agregar
roles al reaccionar ante emoji. Hagamos lo mismo. Pero cuando
sacamos la reacción, queremos sacar el papel en la lógica
es muy similar. Vamos a copiar y pegar esto. Pero en lugar de una reacción al, llamémoslo una
reacción, quitar. Cambie el nombre de esto obviamente en la reacción del
mensaje, elimine. El evento serán estos. Reacción de mensaje eliminar. La lógica es casi la misma. Lo que necesitamos cambiar. Este no es el papel que hay que añadir. Esto será enrollado para quitar. Y en realidad no
necesitamos esta condición porque no vamos a
enviar su no es posible enviar. Al igual que soy una incrustación con una reacción y saco la reacción porque no
has reaccionado a ella. Por lo que esto no es necesario
y esto debe eliminarse. Creo que eso es todo. No necesitamos nada
más para esto. Sólo necesitamos una cosa más. Sólo tenemos que enviar mensajes de
reacción eliminar. Observe que ponemos
estas dos cosas. Lo pondremos en
el expediente de índice. Entonces hagamos eso. Exportar en mensaje, De
en la reacción del mensaje, en la reacción del mensaje, eliminar. Vamos a ponerlos aquí. En lugar de ponerlos aquí. Pongámoslo así. Eso es todo. Ahora
tenemos el mensaje, reacción, remover, todo configurado. Así que vamos a
probarlo aquí. Los roles. Déjame ver primero, átomo tiene algún papel. Así que vamos a reaccionar
a estas dos cosas. Por lo que ahora tengo que JavaScript
y el amante de TypeScript. Ahora si saco éste, ahora no tenía
el TypeScript. Y si saco éste, ahora no tenía que
JavaScript, genial. Y si lo hago, una
vez más, me dan los papeles. Si saco las reacciones, ya no
tengo los papeles. Ok. Entonces eso es todo.
Así es como lo haces. Espero que les guste
verte en la próxima conferencia. Adiós.
43. IMPORTANTE: Permisos V2 actualización: Hola y bienvenidos de vuelta. Tengo una actualización. Si estás
tratando de correr profundidad malvada. Ahora mismo, vas
a ver que la
aplicación se bloquea. Esto se debe a que estos tribunales introdujeron permisos
versión dos. Eso significa que ahora no
podemos hacer esto. Vamos a los oyentes
en el mensaje listo. Lo siento, no está listo, lo siento. Ya no podemos hacer esto. Lo que hicimos aquí
estableció permisos. Sin embargo, no podemos hacerlo más. Tenemos que eliminar esto. Desafortunadamente,
no va a funcionar. Todavía podemos hacer esto. Y el labio esto. Eso es todo. Esos permisos, ya no
va a funcionar porque ahora se van a
sumar los permisos dentro del propio marcador. Ahora el servidor está reiniciando
ambos cursos Debbie's en línea. Vayamos al anotado
y ahí vas. Pero el personal del curso Oriente propia línea. Entonces, ¿cómo gestionamos los permisos? Bueno, vamos aquí, vamos a la configuración del servidor, vamos a integraciones
e integraciones. Vamos a brote curso sordo. Obviamente se puede hacer lo
mismo con qué curso amplio. Y puedes administrar
permisos desde aquí. En este momento dice que
los roles de AD, no está diciendo. Podemos hacer click aquí y
poner fregadero ahora y guardar. Lo mismo para éste,
advertencias por fraude. Y el otro
es para ambos sordos. Y es aquí donde
podrás administrar
todos esos permisos
para cada uno de ese comando. Eso es una pequeña actualización. Eso es un
cambio de ruptura con el anotado. Espero que te guste. Nos vemos en la próxima conferencia. Adiós.
44. 500 Conclusión: Enhorabuena, logras terminar este
curso con éxito y aprenderás algunas habilidades
valiosas que puedes aplicar para ser mejor ingeniero de
software. Usted aprende aquí
se puede aplicar también, el frente y
back-end, lo que sea. ¿ Qué aprendes? Este es un resumen de
lo que aprendiste. Vuelva a planificar a los mensajes creando una slash comandos slinks inferiores, los colectores de
mensajes
infunden reacciones. Subcomandos de coleccionistas, obtener
información sobre un usuario, como obtener el gremio, obtener
información de los miembros en opciones
a comandos en tareas simples, desplegar a Heroku, mejores
prácticas y etc, etc., La cosa, la habilidad más valiosa
aquí son las mejores prácticas, creo, porque
hay que escribir buen código. Escribir un buen código es sólo cuestión de
seguir las mejores prácticas. Espero que hayan disfrutado de este curso y nos vean en mi próximo curso. Adiós.