diff --git a/bot.py b/bot.py index 20e7b97..c4e0f02 100644 --- a/bot.py +++ b/bot.py @@ -21,6 +21,7 @@ import shutil from bs4 import BeautifulSoup from dotenv import load_dotenv import random +import time load_dotenv() @@ -362,10 +363,11 @@ async def startgiveaway(ctx, platform: str, prize: str, num_winners: int, title: button = Button(label="Participate", style=discord.ButtonStyle.green, custom_id=f"giveaway_{giveaway_id}") view = View() view.add_item(button) + unix_end_time = int(time.mktime(end_time.timetuple())) embed = discord.Embed( title=title, - description=f"{subtitle}\n\nPrize: {prize}\nPlatform: {platform}\nNumber of winners: {num_winners}\nEnds in: {duration}", + description=f"{subtitle}\n\nPrize: {prize}\nPlatform: {platform}\nNumber of winners: {num_winners}\nEnds in: ", color=0x00ff00 ) embed.set_footer(text=f"Giveaway endet at {end_time.strftime('%Y-%m-%d %H:%M:%S')}") @@ -378,34 +380,25 @@ async def check_giveaway(giveaway_id): """Checks every 1 minute to see if the giveaway has ended.""" giveaway = giveaways.get(giveaway_id) - if giveaway: - if giveaway.is_finished(): - check_giveaway.stop() + if giveaway and giveaway.is_finished(): + check_giveaway.stop() - winners = giveaway.pick_winners() - if winners: - winner_mentions = ", ".join([winner.mention for winner in winners]) - await giveaway.ctx.send(f"🎉 Congratulations to the winners of the giveaway '{giveaway.title}'! The winners are: {winner_mentions}") + winners = giveaway.pick_winners() + if winners: + winner_mentions = ", ".join([winner.mention for winner in winners]) + await giveaway.ctx.send(f"🎉 Congratulations to the winners of the giveaway '{giveaway.title}'! The winners are: {winner_mentions}") - # Jeden Gewinner benachrichtigen und zur Webseite schicken - for winner in winners: - # Gewinner in der Datenbank speichern (winner_dc_id) - update_winner_in_db(giveaway.prize_uuid, winner.id) - # Nachricht an den Gewinner senden - await winner.send(f"🎁 Congratulations! You won the giveaway '{giveaway.title}'!\n" - f"Please claim your prize using the following link: {GIVEAWAY_WEBSITE_URL}{giveaway.prize_uuid}") - else: - await giveaway.ctx.send(f"The giveaway '{giveaway.title}' has ended, but there were no participants.") - - del giveaways[giveaway_id] + # Jeden Gewinner benachrichtigen und zur Webseite schicken + for winner in winners: + # Gewinner in der Datenbank speichern (winner_dc_id) + update_winner_in_db(giveaway.prize_uuid, winner.id) + # Nachricht an den Gewinner senden + await winner.send(f"🎁 Congratulations! You won the giveaway '{giveaway.title}'!\n" + f"Please claim your prize using the following link: {GIVEAWAY_WEBSITE_URL}{giveaway.prize_uuid}") else: - # Berechne die verbleibende Zeit - remaining_time = giveaway.remaining_time() + await giveaway.ctx.send(f"The giveaway '{giveaway.title}' has ended, but there were no participants.") - # Aktualisiere die Embed-Nachricht mit der verbleibenden Zeit - embed = giveaway.message.embeds[0] - embed.set_footer(text=f"Giveaway ends in: {str(remaining_time).split('.')[0]}") - await giveaway.message.edit(embed=embed) + del giveaways[giveaway_id] @client.event async def on_interaction(interaction):