upload main.py, .env

files reqd to run properly (of course)
This commit is contained in:
rintyuu 2024-07-11 14:38:22 -07:00
commit 7425b2c84e
2 changed files with 72 additions and 0 deletions

4
.env Normal file
View file

@ -0,0 +1,4 @@
SPOTIPY_CLIENT_ID=''
SPOTIPY_CLIENT_SECRET=''
SPOTIPY_REDIRECT_URI=''
DISCORD_WEBHOOK_URL=""

68
main.py Normal file
View file

@ -0,0 +1,68 @@
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.")