Spaces:
Paused
Paused
| import discord | |
| from discord.ext import commands | |
| from slack_sdk import WebClient | |
| from slack_sdk.errors import SlackApiError | |
| DISCORD_TOKEN = os.getenv('DISCORD_TOKEN') | |
| SLACK_TOKEN = os.getenv('SIGNING_SECRET') | |
| SLACK_CHANNEL_ID = os.getenv('CHANNEL_ID') | |
| TRIGGERS = { | |
| "urgent": "<@U12345678>", | |
| "help": "<@U87654321>", | |
| } | |
| intents = discord.Intents.all() | |
| intents.messages = True | |
| bot = commands.Bot(command_prefix='!', intents=intents) | |
| # Set up the Slack client | |
| slack_client = WebClient(token=SLACK_TOKEN) | |
| async def on_ready(): | |
| print(f'Logged in as {bot.user}') | |
| 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.content, slack_mention) | |
| break | |
| async def post_to_slack(content, slack_mention): | |
| try: | |
| response = slack_client.chat_postMessage( | |
| channel=SLACK_CHANNEL_ID, | |
| text=f"{slack_mention} New message in Discord: {content}" | |
| ) | |
| except SlackApiError as e: | |
| print(f"Error posting to Slack: {e.response['error']}") | |
| bot.run(DISCORD_TOKEN) | |