LevelBot / app.py
lunarflu's picture
lunarflu HF staff
Update app.py
79a1edd
raw
history blame
2.52 kB
import discord
import os
import threading
from discord.ext import commands
import json
import time
import matplotlib.pyplot as plt
from io import BytesIO
import gradio_client
import gradio as gr
from gradio_client import Client
DISCORD_TOKEN = os.environ.get("DISCORD_TOKEN", None)
intents = discord.Intents.all()
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.command()
async def save_messages(ctx, channel_id: int):
if ctx.author.id == 811235357663297546:
channel = bot.get_channel(channel_id)
if not channel:
await ctx.send("Channel not found.")
return
messages = []
async for message in channel.history(limit=None):
messages.append(message)
with open("gradio-questions.json", 'w', encoding='utf-8') as file:
for message in messages:
file.write(f"{message.content}\n")
await ctx.send(f"Messages from {channel.name} saved to gradio-questions.json")
with open("gradio-questions.json", 'rb') as file:
discord_file = discord.File(file)
await ctx.send(file=discord_file)
@bot.command()
async def save_forum(ctx, channel_id: int, file_name: str):
channel = bot.get_channel(channel_id)
if not channel:
await ctx.send("Channel not found.")
return
threads = {} # Dictionary to store messages by thread ID
async for message in channel.history(limit=None):
thread_id = message.reference.channel_id if message.reference else message.id
if thread_id not in threads:
threads[thread_id] = []
threads[thread_id].append(message)
with open(file_name, 'w', encoding='utf-8') as file:
for thread_id, messages in threads.items():
file.write(f"Thread ID: {thread_id}\n")
for message in messages:
file.write(f"{message.content}\n")
file.write("\n")
await ctx.send(f"Forum messages from {channel.name} saved to file")
with open(file_name, 'rb') as file:
discord_file = discord.File(file)
await ctx.send(file=discord_file)
""""""
DISCORD_TOKEN = os.environ.get("DISCORD_TOKEN", None)
def run_bot():
bot.run(DISCORD_TOKEN)
threading.Thread(target=run_bot).start()
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()