import discord import aiohttp import lxml.html from lxml import html from discord import reaction from discord.ext.commands import bot from discord.ext import commands, tasks intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) bot = commands.Bot(command_prefix='!', intents=intents) @client.event async def on_ready() -> None: print(f'{client.user} is now running!') @client.event async def on_message(message): if str(message.channel) == "💵-bank-robber-nemesis": if '<@&1218616329775616090>' not in message.content: await message.delete() if str(message.channel) == "🍯-hive-outpost-nemesis": if '<@&1218616489268084846>' not in message.content: await message.delete() if str(message.channel) == "🔴-nemesis-reports": if "<@&1218617131176955904>" not in message.content: if "<@&1246779271230521355>" not in message.content: await message.delete() if str(message.channel) == "🟡-archfoe-reports": if '<@&1218617209807573063>' not in message.content: await message.delete() if str(message.channel) == "🟢-bane-reports": if '<@&1218617277692383303>' not in message.content: await message.delete() if str(message.channel) == "🐴-rare-bestiary": if '<@&1245487719207927871>' not in message.content: await message.delete() if str(message.channel) == "🧙-ferumbras": if '<@&1220310657413550150>' not in message.content: await message.delete() if str(message.channel) == "🔥-morgaroth": if '<@&1220310824485126186>' not in message.content: await message.delete() if str(message.channel) == "💙-ghazbaran": if '<@&1220310734173634621>' not in message.content: await message.delete() if str(message.channel) == "💔-orshabaal": if '<@&1220310886825332776>' not in message.content: await message.delete() if str(message.channel) == "💜-morshabaal": if '<@&1220310940080279622>' not in message.content: await message.delete() if str(message.channel) == "💚-abomination": if '<@&1220311008653082696>' not in message.content: await message.delete() if (message.content.startswith('<@&1218617131176955904>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1246779271230521355>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1218616329775616090>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1218616489268084846>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1218617209807573063>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1218617277692383303>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1245487719207927871>')): await message.add_reaction('🦵') await message.add_reaction('👍') if (message.content.startswith('<@&1220311008653082696>')): await message.add_reaction('🦵') await message.add_reaction('👍') await message.add_reaction('🌐') if (message.content.startswith('<@&1220310940080279622>')): await message.add_reaction('🦵') await message.add_reaction('👍') await message.add_reaction('🌐') if (message.content.startswith('<@&1220310886825332776>')): await message.add_reaction('🦵') await message.add_reaction('👍') await message.add_reaction('🌐') if (message.content.startswith('<@&1220310734173634621>')): await message.add_reaction('🦵') await message.add_reaction('👍') await message.add_reaction('🌐') if (message.content.startswith('<@&1220310824485126186>')): await message.add_reaction('🦵') await message.add_reaction('👍') await message.add_reaction('🌐') if (message.content.startswith('<@&1220310657413550150>')): await message.add_reaction('🦵') await message.add_reaction('👍') await message.add_reaction('🌐') if (message.content.startswith('!today')): async with aiohttp.ClientSession() as session: async with session.get(f'some site here') as r: channel = client.get_channel(1245022140156088421) # replace with channel_id if r.status == 200: text = await r.text() tr = html.fromstring(text) # buyers = tr.xpath("tbody/tr/td/a/text()") tables = tr.xpath("//table") table = tr.xpath("//table")[0] answer = "**TEXT**\n" if len(tables) >=2 else "TEXT\n" for row in table.xpath(".//tbody//tr"): cells = [cell.text_content() for cell in row.xpath(".//td")] answer += f"{cells[0]}: {cells[1]}\n" if len(tables) > 1: table2 = tr.xpath("//table")[1] answer += "TEXT\n" for row in table2.xpath(".//tbody//tr"): cells = [cell.text_content() for cell in row.xpath(".//td")] answer += f"{cells[0]}: {cells[1]}\n" await channel.send(answer) else: await channel.send("failed") @client.event async def on_reaction_add(reaction, user): if client.user == user: return # Ignore whatever the bot reacts to ; this event is triggered when the bot reacts as well if user != reaction.message.author and reaction.emoji not in ('🦵','👍'): await reaction.remove(user) # remove emoji if the reactor is not the author and emoji not in whitelisted emojis if user == reaction.message.author: await reaction.message.add_reaction(reaction.emoji) # bot reacts with same emoji that the author reacts with if user == reaction.message.author and reaction.emoji in ('☠'): await reaction.message.channel.create_thread(reaction.message.channel)