lunarflu's picture
lunarflu HF staff
slack channel -> hf
56509cf verified
raw
history blame
1.64 kB
import discord
import threading
import os
import gradio as gr
from discord.ext import commands
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
DISCORD_TOKEN = os.getenv('DISCORD_TOKEN')
SLACK_BOT_TOKEN = os.getenv('BOT_USER_OAUTH_TOKEN_HF')
SLACK_CHANNEL_ID = os.getenv('SLACK_CHANNEL_ID_HF')
TRIGGERS = {
"discord bot": "<@U061W3NRFFA>",
"setfit": "tom aarsen",
"cv": "merve",
}
intents = discord.Intents.all()
intents.messages = True
bot = commands.Bot(command_prefix='!', intents=intents)
slack_client = WebClient(token=SLACK_BOT_TOKEN)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user}')
@bot.event
async def on_message(message):
if message.author == bot.user:
return
content = message.content.lower()
for trigger, slack_mention in TRIGGERS.items():
if trigger in content:
await post_to_slack(message.author, message.content, message.channel, message.jump_url, slack_mention)
break
async def post_to_slack(author, content, channel, url, slack_mention):
try:
response = slack_client.chat_postMessage(
channel=SLACK_CHANNEL_ID,
text=f"{slack_mention} Discord message by {author} in {channel}:{content}\n{url}"
)
except SlackApiError as e:
print(f"Error posting to Slack: {e.response['error']}")
# 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()