diff --git a/.env b/.env deleted file mode 100644 index 9c40ade..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -DISCORD_TOKEN=MTQ4MDkxODI5Mzk5MTc4ODYzNQ.GQ4P7l.uqYM-awr8zAp6eun9iJr0ziDhscv3XiByqSMpw \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8833475..eef836e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ +.env +/__pycache__ +/calendar +/dvenv copies.txt diff --git a/README.md b/README.md index fcae0b0..11b06b5 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -Dask Bot +# Dask bot \ No newline at end of file diff --git a/__pycache__/weather.cpython-313.pyc b/__pycache__/weather.cpython-313.pyc deleted file mode 100644 index 7acdcaf..0000000 Binary files a/__pycache__/weather.cpython-313.pyc and /dev/null differ diff --git a/calendar/credentials.json b/calendar/credentials.json deleted file mode 100644 index 620c140..0000000 --- a/calendar/credentials.json +++ /dev/null @@ -1 +0,0 @@ -{"installed":{"client_id":"880804761661-24ss22kt313h0p8godha5po7cmogsdah.apps.googleusercontent.com","project_id":"dask-bot","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["http://localhost"]}} \ No newline at end of file diff --git a/testfile.py b/testfile.py deleted file mode 100644 index 5a1dd41..0000000 --- a/testfile.py +++ /dev/null @@ -1,139 +0,0 @@ -import os -import discord -import datetime -import google_auth_oauthlib.flow -from weather import OpenWeatherMapAPIClient -from googleapiclient.discovery import build -from discord.ext import commands -from dotenv import load_dotenv - -global service -service = None - -SCOPES = ['https://www.googleapis.com/auth/calendar.readonly'] -service = None - -load_dotenv() -DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") -WEATHER_TOKEN = os.getenv("WEATHER_TOKEN") - -weather_client = OpenWeatherMapAPIClient(WEATHER_TOKEN, "MyDiscordWeatherBot") -intents = discord.Intents(messages=True, guilds=True) -intents.message_content = True -bot = commands.Bot(command_prefix='!', intents=intents) - - - -#Calendar authentification -@bot.tree.command() -async def authenticate(interaction: discord.Interaction): - await interaction.response.defer(thinking=True) - global service - try: - if service: - await interaction.response.send_message('Already authenticated with Google Calendar.') - return - - flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file('./calendar/credentials.json', SCOPES) - credentials = flow.run_local_server(port=0) - service = build('calendar', 'v3', credentials=credentials) - await interaction.followup.send('Successfully authenticated with Google Calendar !') - except Exception as e: - await interaction.followup.send(f'An error occurred: {e}') - - -@bot.tree.command(name='weekly_events') -async def events(interaction: discord.Interaction): - await interaction.response.defer(thinking=True) - - if service is None: - await interaction.followup.send('Please authenticate first using /authenticate.') - return - - now = datetime.datetime.utcnow() - current_weekday = now.weekday() - - start_of_week = now - datetime.timedelta(days=current_weekday) - start_of_week = start_of_week.replace(hour=0, minute=0, second=0, microsecond=0).isoformat() + 'Z' - - end_of_week = start_of_week + datetime.timedelta(days=6) - end_of_week= end_of_week.replace(hour=23, minute=59, second=59, microsecond=999999).isoformat() + 'Z' - try: - events_result = service.events().list( - calendarId='primary', - timeMin=start_of_week, - timeMax=end_of_week, - singleEvents=True, - orderBy='startTime' - ).execute() - - events = events_result.get('items',[]) - - if not events: - await interaction.response.send_message('No tasks for today !') - else: - tasks = [] - for event in events: - task= f"{event['summary']} at {event['start'].get('dateTime', event['start'].get('date'))}" - tasks.append(task) - - await interaction.followup.send('\n'.join(tasks)) - - except Exception as e: - await interaction.followup.send(f'An error occurred: {e}') - - -#Weather commad tree -@bot.tree.command(name="weather") -async def current_weather(interaction: discord.Interaction, location: str): - - print(f"Received weather command from {interaction.user.display_name}") # Log intéraction - - current_weather = weather_client.get_current_weather(location) - - print(f"JSON API {current_weather}") - - # Check that current_weather is a dictionary and contains necessary keys - if not isinstance(current_weather, dict) or 'main' not in current_weather or 'weather' not in current_weather: - await interaction.response.send_message("Could not retrieve weather data. Please check the location.") - return - - weather_list = current_weather['weather'] - if len(weather_list) == 0: - await interaction.response.send_message("Weather information is not available.") - return - - weather_condition = weather_list[0]['main'] - - temp = current_weather['main']['temp'] - - icon = current_weather['weather']['icon'] - embed = discord.Embed( - title=f"Current weather in {location}", - description=f"Temperature: {temp}°C\nSky: {weather_condition}", - ) - embed.set_thumbnail(url=f"https://openweathermap.org/img/wn/{icon}.png") - - await interaction.response.send_message(embed=embed) - - -@bot.tree.command(name='hello') -async def hello_command(interaction: discord.Interaction): - - print(f"Received hello command from {interaction.user.display_name}") # Log intéraction - - user_nick = interaction.user.display_name - await interaction.response.send_message(f'Hello {user_nick}!') - -@bot.event -async def on_ready(): - print(f'Logged in as {bot.user}') - await bot.tree.sync() - -#Liste commandes enregistré - commands = await bot.tree.fetch_commands() - print("Registered Commands:") - for command in commands: - print(f"- {command.name}") - -bot.run(DISCORD_TOKEN)