commit 0a471647e52c5a01750a83495f9fa10b2d306e50 Author: PaolaSilvestre21 Date: Mon Dec 11 15:53:52 2023 -0300 First Version diff --git a/config.py b/config.py new file mode 100644 index 0000000..be9f62a --- /dev/null +++ b/config.py @@ -0,0 +1 @@ +TOKEN = 'XD' \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..b0de03b --- /dev/null +++ b/main.py @@ -0,0 +1,94 @@ +from urllib import response +from discord.interactions import Interaction +from discord.ext import commands +from discord import app_commands +import discord +import config +import asyncio +import requests +import logging + + +intents = discord.Intents.all() +intents.message_content = True +bot = commands.Bot(command_prefix= '/',intents=intents) +logging.basicConfig(level=logging.INFO) + + + +@bot.event +async def on_ready(): + print("-------Bot-Activo-------") + try: + synced = await bot.tree.sync() + print(f"Sincronizados {len(synced)} comandos") + except Exception as i: + print(i) + + +class Solicitud(discord.ui.Modal, title="Solicitud de Requerimientos"): + + user = discord.ui.TextInput (label="Nombre Completo", placeholder= "ej: Pepito Corp Corp", required=True, max_length=40,style=discord.TextStyle.short) + #correo = discord.ui.TextInput (label="Correo Institucional", placeholder= "ej: example@usm.cl", required=True, max_length=100,style=discord.TextStyle.short) + #departamento = discord.ui.TextInput (label="Departamento al que pertenece", placeholder= "ej: Electronica e Informatica", required=True, max_length=100,style=discord.TextStyle.short) + #cuenta = discord.ui.TextInput (label="Posee Cuenta de ilab ?", placeholder= "Si / No", required=True,max_length=10,style=discord.TextStyle.paragraph) + re = discord.ui.TextInput (label="Cuales son sus intereses para la solicitud", placeholder= "ej:Iniciativa Estudiantil, Clases, etc..", required=True, max_length=200,style=discord.TextStyle.paragraph) + se = discord.ui.TextInput (label="Duracion estimada de los recursos solicitados", placeholder= "ej: 1 semestre , 2 semestres , etc..", required=True, max_length=40,style=discord.TextStyle.short) + soli = discord.ui.TextInput (label="¿Cuáles son los requisitos necesarios?", placeholder= "En términos de CPU,RAM ,etc.. ", required=True,min_length=10 ,max_length=200,style=discord.TextStyle.paragraph) + sol2 = discord.ui.TextInput (label="¿Cuáles son los requisitos necesarios?", placeholder= "En términos de Software ", required=True, min_length=10,max_length=100,style=discord.TextStyle.paragraph) + #pref = discord.ui.TextInput (label="¿Tienes preferencias en cuanto al sistemas operativos que tendra ?", placeholder= "ej: Linux, Windows, etc..", required=True, max_length=100,style=discord.TextStyle.short) + #suport = discord.ui.TextInput (label="En caso de requerir soporte seria a nivel de hardware o software", placeholder= "ej: Instalacion de Software", required=True, max_length=100,style=discord.TextStyle.paragraph) + + async def on_submit(self, interaction: Interaction): + await interaction.response.send_message(f"{interaction.user.mention} Gracias por rellenar la solicitud") + + channel = discord.utils.get(interaction.guild.channels, name = "sysadmin") + + await channel.send(f"Nueva solicitud de requerimientos hecha por {interaction.user.name} \n Interesado en {self.re}") + +@bot.tree.command(name="solicitud", description="Formulario para levantar una solicitud de requerimientos") +async def solicitud(interaction: discord.Interaction): + await interaction.response.send_modal(Solicitud()) + + +@bot.tree.command(name="requerimiento", description="Formulario para levantar una solicitud de requerimientos") + +@app_commands.describe(nombre_apellido = "Nombre Completo") +@app_commands.describe(correo = "Correo Institucional") +@app_commands.describe(departamento = "Departamento al que pertenece") +@app_commands.describe(cuenta_ilab = "Cuenta de ilab: Si / No") +@app_commands.describe(interes = "Cual es el interes en solicitar los recursos") +@app_commands.describe(experiencia_en_tecnologias = "Nivel de Experinecia en Tecnologias Hardaware /Software") +@app_commands.describe(duracion_recursos = "Duracion estimada de los recursos") +@app_commands.describe(requisitos_hardware = "¿Cuáles son los requisitos necesarios en términos de CPU, RAM ,etc..") +@app_commands.describe(requisitos_software = "¿Cuáles son los requisitos necesarios en términos de Software?") +@app_commands.describe(sistema_operativo = "¿Tienes preferencias en cuanto al sistemas operativos que tendra ?") +@app_commands.describe(soporte = "En caso de requerir soporte seria en :") + +async def re(ctx, nombre_apellido: str, correo: str, departamento: str, cuenta_ilab: str, interes: str, experiencia_en_tecnologias: str, + duracion_recursos: str, requisitos_hardware: str, requisitos_software: str, sistema_operativo: str, soporte: str): + channel = discord.utils.get(ctx.guild.channels, name="sysadmin") + await channel.send(f"Nueva solicitud de requerimientos hecha por {ctx.user.name} \n Interesado en realizar una solicitud en: {interes}") + + + url = 'XD' + data = {'Nombre_Completo': nombre_apellido, 'Correo': correo, 'Departamento': departamento, 'Cuenta_ilab': cuenta_ilab, + 'Interes': interes, 'Experiencia_en_Tecnologias': experiencia_en_tecnologias, 'Duracion_de_recursos': duracion_recursos, + 'Requisitos_Hardware': requisitos_hardware, 'Requisitos_Software': requisitos_software, + 'Sistema_Operativo': sistema_operativo, 'Soporte': soporte} + + await ctx.response.send_message(f"Solicitud registrada correctamente, muchas gracias! :D{ctx.user.mention}") + response = requests.post(url, json=data) + + if response.status_code == 200: + print('Solicitud exitosa') + else: + print(f'Error en la solicitud: {response.status_code}') + + + +async def main(): + + await bot.start(config.TOKEN) + +asyncio.run(main()) \ No newline at end of file