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())