Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import platform as _platform
- import time
- import datetime
- import pylast
- from pypresence import Presence
- def timestamp():
- return datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %I:%M:%S %p')
- ## THIS MUST BE REMOVED IF CODE IS SHARED
- LASTFM_API_KEY = "LASTFM API KEY GOES HERE"
- LASTFM_API_SECRET = "LASTFM API SECRET GOES HERE"
- LASTFM_USERNAME = "Your Lastfm Username Goes Here"
- client_id = 'DISCORD APP CLIENT ID GOES HERE' # Discord Client ID
- RPC = Presence(client_id) # Initialize the Presence class
- RPC.connect() # Start the handshake loop
- #print("BEFORE LOGGING IN TO LAST.FM") #DEBUG STATEMENT
- network = pylast.LastFMNetwork(LASTFM_API_KEY, LASTFM_API_SECRET)
- user = network.get_user(LASTFM_USERNAME)
- out = "Tuned in to %s on Last.fm..." % LASTFM_USERNAME
- print(out)
- print("-" * len(out))
- playing_track = None
- interval = 15
- counter = 0
- while True:
- try:
- #print(timestamp() + " - CHECKING NOW (Counter = " + str(counter) + ", Interval = " + str(interval) + ")")
- #print("BEFORE USER.GETNOWPLAYING") #DEBUG STATEMENT
- new_track = user.get_now_playing()
- #print("AFTER GET NOW PLAYING") #DEBUG STATEMENT
- # A new, different track
- if new_track != playing_track:
- playing_track = new_track
- track_string = str(playing_track)
- try:
- artist = str(playing_track.get_artist())
- song = str(playing_track.get_name())
- except Exception as e:
- #print(timestamp() + " - Error: %s" % repr(e))
- artist = "None"
- song = "None"
- try:
- album = str(playing_track.get_album().get_name())
- album_image = playing_track.get_album().get_cover_image()
- except Exception as e:
- album = "None"
- album_image = "None"
- #timestamp = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %I:%M:%S %p')
- print(timestamp() + " - " + track_string)
- #print("BEFORE WRITING TRACK TO CHANNEL") #DEBUG STATEMENT
- if track_string != "None":
- interval = 15
- counter = 0
- if len(song) > 128:
- song = song[0:125] + "..."
- if album != "None":
- RPC.update(details=song, state="by " + artist,large_image="icon",large_text=album)
- else:
- RPC.update(details=song, state="by " + artist,large_image="icon")
- else:
- RPC.clear()
- except Exception as e:
- print(timestamp() + " - Error: " + str(e))
- time.sleep(interval)
- RPC.close()
Advertisement
Add Comment
Please, Sign In to add comment