예제 #1
0
        def execute(self, queue, nick, message, channel):
            msg = message.split()

            if len(msg) < 2:
                lastfmname = self.r.get(nick)
                if lastfmname:
                    user = self.network.get_user(lastfmname)
                else:
                    print "No username set for %s" %nick
                    queue.put(("No last.fm username set, try !setlastfm <username>", channel))
                    return
            else:
                user = self.network.get_user(msg[1])

            try:
                trackData = user.get_now_playing()
                if trackData:
                    output = "%s is playing: " %user
                else:
                    trackData = user.get_recent_tracks(limit=1)[0][0]
                    output = "%s played: " %user
            except:
                err = "Couldn't retrieve now playing or last played track"
                print err
                queue.put((err, channel))
                return

            artist = trackData.get_artist().get_name()
            track = trackData.get_title()
            rawtags = pylast.extract_items(trackData.get_top_tags(limit=3))
            tags = ', '.join([x.get_name() for x in rawtags])
            if tags:
                tags = "<" + tags + ">"
            output += artist + " - " + track + " " + tags
            queue.put((output, channel))
예제 #2
0
def getTopTracks(artist, count=3):
    global network
    artist = network.get_artist(artist)
    tracks = pylast.extract_items(artist.get_top_tracks())
    buildlist = []
    for track in tracks[:count]:
        buildlist.append([str(track.artist),str(track.title),str(track.get_duration())])
    return buildlist
예제 #3
0
 def _parse_tags(self, toptags):
     tags = pylast.extract_items(toptags)
     genres = []
     for tag in tags:
         genres.append(tag.get_name())
     return genres
예제 #4
0
 def _parse_tags(self, toptags):
     tags = pylast.extract_items(toptags)
     genres = []
     for tag in tags:
         genres.append(tag.get_name())
     return genres