def __init__(self, username): super(LastFMTrackListener, self).__init__() self._lfm_user = username self._lfm = LastFM(self._lfm_user) self._last_playing_music = None self._lastfm_music_track_change() gobject.timeout_add(self.INTERVAL, self._lastfm_periodic_check)
def setUp(self): self.fm = LastFM() self.artist_name = "Wintersleep" self.artist_mbid = 'cda8e877-fe39-4939-8b09-045d68617367' self.track_name = "Jaws of Life" self.album_name = "Untitled" self.track_mbid = 'e0b110b4-fef4-473a-9c42-207d3c92cae0'
def get_dataset(): debug_print("Obtaining dataset...") # save time by loading any existing dataset if os.path.isfile(DATASET_FILENAME): dataset = json.load(open(DATASET_FILENAME)) if len(dataset) == DATASET_SIZE: debug_print("Existing dataset found!") return dataset dataset = {} artists = set() # initialize LastFM API object and get artist list lastreq = LastFM() response = lastreq.get_artists(DATASET_SIZE) # initialize all artist tag sets for artist in response["artists"]["artist"]: dataset[artist["name"]] = set() # get tags for each artist count = 1 for artist in dataset.keys(): debug_print("Acquiring tags for artist " + str(count) + " of " + str(DATASET_SIZE)) response = lastreq.get_toptags(artist) for tag in response["toptags"]["tag"]: dataset[artist].add(tag["name"]) count += 1 # save the dataset, because it probably took a while to get debug_print("Dataset complete. Saving...") json.dump(dataset, open(DATASET_FILENAME, 'wb'), default=set_default) return dataset
def __init__(self): self.__youtube = Youtube() self.__spotify = Spotify() self.__editor = TagEditor() self.__last = LastFM() self.__apple = AppleMusic() self.__deezer = Deezer()
def __init__(self, metadatautils=None): '''Initialize - optionaly provide our base MetadataUtils class''' if not metadatautils: from metadatautils import MetadataUtils self.metadatautils = MetadataUtils else: self.metadatautils = metadatautils self.cache = self.metadatautils.cache self.lastfm = LastFM() self.mbrainz = MusicBrainz() self.audiodb = TheAudioDb()
def OnScrobble(self, event): """Scrobbles using LastFM and sets a confirmation dialog""" try: lfm = LastFM() starttime = int(time.time()) lfm.scrobble(self.artistText.GetValue(), self.titleText.GetValue(), starttime) wx.MessageBox( "Scrobbled: {} - {}".format(self.artistText.GetValue(), self.titleText.GetValue()), "Done", wx.OK) self.artistText.SetValue("") self.titleText.SetValue("") except lastfm.pylast.WSError as e: wx.MessageBox(str(e), 'Uh Oh', wx.OK | wx.ICON_ERROR)
def search(self): self.albumBox.Clear() self.trackBox.Clear() try: lfm = LastFM() results = lfm.albumSearch( self.albumText.GetValue()).get_next_page() for result in results: self.albumBox.Append( result.get_artist().name + " - " + result.get_title() + " - " + result.get_release_date().split(',')[0], result) if len(results) == 0: wx.MessageBox( "No matches found for {}".format( self.albumText.GetValue()), 'Uh Oh', wx.OK | wx.ICON_ERROR) except lastfm.pylast.WSError as e: wx.MessageBox(str(e), 'Uh Oh', wx.OK | wx.ICON_ERROR) except last.pylast.NetworkError as e: wx.MessageBox(str(e), 'Uh Oh', wx.OK | wx.ICON_ERROR)
def onScrobbleAlbum(self, event): try: lfm = LastFM() selectedAlbum = self.albumBox.GetClientData(event.GetSelection()) starttime = int(time.time()) - 90 album = selectedAlbum.get_title() noTracks = 0 for track in selectedAlbum.get_tracks(): noTracks += 1 starttime += 10 artist = track.artist.name title = track.title lfm.scrobble(artist, title, starttime) #confirmation: wx.MessageBox( "Scrobbled: {} - {} ({} tracks).".format( artist.encode('utf-8'), album.encode('utf-8'), noTracks), "Done", wx.OK) except lastfm.pylast.WSError as e: wx.MessageBox(str(e), 'Uh Oh', wx.OK | wx.ICON_ERROR) except wx._core.PyAssertionError: wx.MessageBox("Nothing selected to scrobble", 'Uh Oh', wx.OK | wx.ICON_ERROR)
def __init__(self): self.mb = MusicBrainz() self.lastfm = LastFM()
def setUp(self): self.fm = LastFM() self.query = 'winter'
def setUp(self): self.fm = LastFM() self.artist_name = 'Wintersleep' self.album_name = "New Inheritors" self.album_mbid = '3f46329d-b15c-494b-912e-b802a5a8a3bb'
def setUp(self): self.fm = LastFM() self.artist_name = 'Wintersleep' self.artist_mbid = 'cda8e877-fe39-4939-8b09-045d68617367'
import telebot from lastfm import LastFM TelegramBot = telebot.TeleBot('734127522:AAGBKswjLU9gXLmiEQVbee6D5_PAMJIDtLs') LastFM = LastFM() @TelegramBot.message_handler(content_types=['text']) def get_text_messages(message): """ Main function of bot, which reads messages and does various outputs, according to the input :param message: :return: """ if message.text == '/help': TelegramBot.send_message(message.from_user.id, "/help - помощь. \n" " /artist_albums - показать топ альбомы артиста. \n " "/artist_tracks - показать треки артиста. \n " "/similar_tracks - показать похожие треки") else: if LastFM.state == 'state: home': if message.text == '/artist_albums': TelegramBot.send_message(message.from_user.id, "Напиши артиста") LastFM.state = 'state: /artist_albums. phase: get_artist' elif message.text == '/artist_tracks': LastFM.state = 'state: /artist_tracks. phase: get_artist' TelegramBot.send_message(message.from_user.id, "Напиши артиста") elif message.text == '/similar_tracks': LastFM.state = 'state: /similar_tracks. phase: get_artist' TelegramBot.send_message(message.from_user.id, "Напиши артиста")