BOT/main.py

94 lines
5.4 KiB
Python
Raw Normal View History

2023-12-11 15:53:52 -03:00
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())