From 29059e71d38570a62fc0db4811a99f9a9458b24c Mon Sep 17 00:00:00 2001 From: rintyuu Date: Thu, 11 Jul 2024 14:52:25 -0700 Subject: [PATCH] add visit source link --- main.py | 137 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 69 insertions(+), 68 deletions(-) diff --git a/main.py b/main.py index 02d3cfb..9c8433a 100644 --- a/main.py +++ b/main.py @@ -1,68 +1,69 @@ -import os -import requests -import spotipy -from spotipy.oauth2 import SpotifyOAuth -from dotenv import load_dotenv - -# Load environment variables from .env file -load_dotenv() - -# Set up Spotipy with authentication -scope = "user-read-currently-playing user-read-playback-state" -sp = spotipy.Spotify(auth_manager=SpotifyOAuth( - client_id=os.getenv('SPOTIPY_CLIENT_ID'), - client_secret=os.getenv('SPOTIPY_CLIENT_SECRET'), - redirect_uri=os.getenv('SPOTIPY_REDIRECT_URI'), - scope=scope -)) - -# Get the currently playing track information -response = sp.current_playback() - -# Discord webhook URL -discord_webhook_url = os.getenv('DISCORD_WEBHOOK_URL') - -# Check if a track is currently playing -if response is not None and response.get('is_playing', False): - track = response['item'] - track_name = track['name'] - album_name = track['album']['name'] - artists = ', '.join([artist['name'] for artist in track['artists']]) - album_art_url = track['album']['images'][0]['url'] - track_url = track['external_urls']['spotify'] - - # Initialize playlist_url - playlist_url = None - - # Check if the track is from a context (playlist) - if response.get('context') and response['context'].get('type') == 'playlist': - playlist_uri = response['context']['uri'] - playlist_id = playlist_uri.split(':')[-1] - playlist = sp.playlist(playlist_id) - playlist_name = playlist['name'] - playlist_url = playlist['external_urls']['spotify'] - - # Format the message - description = f"**Artists**\n{artists}\n**Album**\n{album_name}\n\n[Listen on Spotify]({track_url})" - if playlist_name and playlist_url: - description += f" | [{playlist_name}]({playlist_url})" - - message = { - "embeds": [ - { - "title": track_name, - "description": description, - "thumbnail": {"url": album_art_url} - } - ] - } - - # Send the message to the Discord webhook - response = requests.post(discord_webhook_url, json=message) - - if response.status_code == 204: - print("Message sent to Discord successfully.") - else: - print(f"Failed to send message to Discord. Status code: {response.status_code}") -else: - print("No track is currently playing.") +import os +import requests +import spotipy +from spotipy.oauth2 import SpotifyOAuth +from dotenv import load_dotenv + +# Load environment variables from .env file +load_dotenv() + +# Set up Spotipy with authentication +scope = "user-read-currently-playing user-read-playback-state" +sp = spotipy.Spotify(auth_manager=SpotifyOAuth( + client_id=os.getenv('SPOTIPY_CLIENT_ID'), + client_secret=os.getenv('SPOTIPY_CLIENT_SECRET'), + redirect_uri=os.getenv('SPOTIPY_REDIRECT_URI'), + scope=scope +)) + +# Get the currently playing track information +response = sp.current_playback() + +# Discord webhook URL +discord_webhook_url = os.getenv('DISCORD_WEBHOOK_URL') + +# Check if a track is currently playing +if response is not None and response.get('is_playing', False): + track = response['item'] + track_name = track['name'] + album_name = track['album']['name'] + artists = ', '.join([artist['name'] for artist in track['artists']]) + album_art_url = track['album']['images'][0]['url'] + track_url = track['external_urls']['spotify'] + + # Initialize playlist_url + playlist_url = None + + # Check if the track is from a context (playlist) + if response.get('context') and response['context'].get('type') == 'playlist': + playlist_uri = response['context']['uri'] + playlist_id = playlist_uri.split(':')[-1] + playlist = sp.playlist(playlist_id) + playlist_name = playlist['name'] + playlist_url = playlist['external_urls']['spotify'] + + # Format the message + description = f"**Artists**\n{artists}\n**Album**\n{album_name}\n\n[Listen on Spotify]({track_url})" + if playlist_name and playlist_url: + description += f" | [{playlist_name}]({playlist_url})" + description += f" | [visit the source](https://git.rintyuu.dev/rintyuu/discord-nowplaying)" + + message = { + "embeds": [ + { + "title": track_name, + "description": description, + "thumbnail": {"url": album_art_url} + } + ] + } + + # Send the message to the Discord webhook + response = requests.post(discord_webhook_url, json=message) + + if response.status_code == 204: + print("Message sent to Discord successfully.") + else: + print(f"Failed to send message to Discord. Status code: {response.status_code}") +else: + print("No track is currently playing.")