This commit is contained in:
2026-02-01 13:43:45 +02:00
parent 4a3e30e042
commit 03007d4e46

View File

@@ -4,66 +4,27 @@ import sys
import time
import threading
userName = input("Enter your LastFM username: ")
userName = "karliyo"
#Public API Key for Accessing Last FM
apiKey = ("460cda35be2fbf4f28e8ea7a38580730")
#Global Variables
currentTrackURL = ('http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&nowplaying="true"&user=' + str(userName) + '&api_key=' + str(apiKey))
runCheck = True
waitTime = 0
noSongPlaying = ("Nothing Currently Playing ")
#Defines the funcions for use in different threads.
def checkForNewSong():
global runCheck
global waitTime
while runCheck == True:
#Loads Current Song info from Last FM
currentTrackXML = urlopen(currentTrackURL).read()
currentTrack = minidom.parseString(currentTrackXML)
songName = currentTrack.getElementsByTagName('name')
songArtist = currentTrack.getElementsByTagName('artist')
songInfo = songName[0].firstChild.nodeValue + " by " + songArtist[0].firstChild.nodeValue + " "
currentTrackXML = urlopen(currentTrackURL).read()
currentTrack = minidom.parseString(currentTrackXML)
songName = currentTrack.getElementsByTagName('name')
songArtist = currentTrack.getElementsByTagName('artist')
songInfo = songName[0].firstChild.nodeValue + " - " + songArtist[0].firstChild.nodeValue
currentSongFile = open("currentSong.txt", "r")
#Checks if currentSong is already in currentSong.txt If it isn't, clears the file.
if currentSongFile.readline() != songInfo:
currentSongFile.close()
#Runs twice; Once for clearing and once for adding the curren song.
currentSongFile = open("currentSong.txt", "w")
currentSongFile.write(songInfo)
currentSongFile.close()
print(songInfo)
#Adds wait before next check.
time.sleep(waitTime)
#End of While Loop
#Sets the current song to "Nothing Currently Playing"
currentSongFile = open("currentSong.txt", "w")
currentSongFile.write(noSongPlaying)
currentSongFile.close()
print(songInfo)
#Closes the Application
sys.exit()
def exitCheck():
global runCheck
while runCheck == True:
exitInput = input("Type Exit to close: \n")
if exitInput == "exit" or exitInput == "Exit" or exitInput == "EXIT":
print("Closing Application...")
runCheck = False
#Checks for currentSong.txt. If doesn't exist, creates file.
currentSongFile = open("currentSong.txt", "w")
#Used to keep currentSong.txt on "Nothing Currently Playing" until first song is pulled from LastFM
currentSongFile.write(noSongPlaying)
currentSongFile.close()
#Creates Threads for the two functions
newSongThread = threading.Thread(target=checkForNewSong)
exitThread = threading.Thread(target=exitCheck)
newSongThread.start()
exitThread.start()