|
|
import os |
|
|
import random |
|
|
import threading |
|
|
|
|
|
import discord |
|
|
import gradio as gr |
|
|
from discord import app_commands |
|
|
from discord.ext import commands |
|
|
|
|
|
|
|
|
|
|
|
MY_GUILD_ID = 1077674588122648679 if os.getenv("TEST_ENV", False) else 879548962464493619 |
|
|
MY_GUILD = discord.Object(id=MY_GUILD_ID) |
|
|
DISCORD_TOKEN = os.environ.get("DISCORD_TOKEN", None) |
|
|
|
|
|
|
|
|
class Bot(commands.Bot): |
|
|
"""This structure allows slash commands to work instantly.""" |
|
|
|
|
|
def __init__(self): |
|
|
super().__init__(command_prefix="/", intents=discord.Intents.all()) |
|
|
|
|
|
async def setup_hook(self): |
|
|
await self.tree.sync(guild=discord.Object(MY_GUILD_ID)) |
|
|
print(f"Synced slash commands for {self.user}.") |
|
|
|
|
|
|
|
|
client = Bot() |
|
|
|
|
|
|
|
|
@client.event |
|
|
async def on_ready(): |
|
|
print(f"Logged in as {client.user} (ID: {client.user.id})") |
|
|
print("------") |
|
|
|
|
|
|
|
|
def run_bot(): |
|
|
client.run(DISCORD_TOKEN) |
|
|
|
|
|
|
|
|
threading.Thread(target=run_bot).start() |
|
|
"""This allows us to run the Discord bot in a Python thread""" |
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown(""" |
|
|
# Huggingbots Server |
|
|
This space hosts the huggingbots discord bot. |
|
|
Currently supported models are Falcon and DeepfloydIF |
|
|
""") |
|
|
demo.queue(concurrency_count=100) |
|
|
demo.queue(max_size=100) |
|
|
demo.launch() |
|
|
|