Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import discord | |
import threading | |
import os | |
import gradio as gr | |
import time | |
from discord.ext import commands | |
from slack_sdk import WebClient | |
from slack_sdk.errors import SlackApiError | |
import aiojobs | |
import asyncio | |
import re | |
from datetime import datetime, timedelta | |
from apscheduler.executors.pool import ThreadPoolExecutor | |
from apscheduler.schedulers.background import BackgroundScheduler | |
DISCORD_TOKEN = os.environ.get("DISCORD_TOKEN", None) | |
intents = discord.Intents.all() | |
bot = commands.Bot(command_prefix='!', intents=intents) | |
global_df = pd.DataFrame() | |
test_merge = pd.read_csv("https://docs.google.com/spreadsheets/d/1C8aLqgCqLYcMiIFf-P_Aosaa03C_WLIB_UyqvjSdWg8/export?format=csv&gid=0") | |
async def on_ready(): | |
global global_df | |
"""import data from google sheets -> HF Space df (doesn't make API call this way, as it's read-only)""" | |
global_df = test_merge | |
print(f"csv successfully retrieved: \n {global_df}") | |
async def give_verified_roles(): | |
try: | |
global global_df | |
guild = bot.get_guild(879548962464493619) | |
role = guild.get_role(900063512829755413) | |
org_link = "https://huggingface.co/organizations/discord-community/share/wPKRAHYbAlaEaCxUxcqVyaaaeZcYagDvqc" | |
invite_message = "Click to join our community org on the HF Hub!" | |
await guild.chunk() | |
for index, row in global_df.iterrows(): | |
hf_user_name = row['hf_user_name'] | |
if pd.notna(hf_user_name) and hf_user_name.lower() != 'n/a': | |
discord_id = row['discord_user_id'].strip('L') | |
member = guild.get_member(int(discord_id)) | |
if not member: | |
continue | |
if role not in member.roles: | |
await member.add_roles(role) | |
lunar = bot.get_user(811235357663297546) | |
await lunar.send(f"Verified role given to {member}!") | |
await member.send(f"Verification successful! [{member} <---> {row['discord_user_name']}] \n🤗 {org_link} {invite_message}") | |
except Exception as e: | |
print(f"Error: {e}") | |
# runs discord bot in thread = helps avoid blocking calls | |
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() |