Esempio n. 1
0
 def _search(self, query, context=None):
     """Search the iTunes API for an album track matching the provided query
     """
     if context is not None:
         self.context.update(context)
     results = itunes.search_track(query)
     track = self._filter_results(results)
     LOGGER.info('iTunes Search Result: %s', str(track))
     if track is None:
         LOGGER.error('{} not found in iTunes'.format(query))
         return
     self.context.update(dict(Album=track.album,
                              Genre=track.genre,
                              contentID=track.id,
                              Copyright=track.album.copyright))
     # Albumart
     url = track.artwork.get('600', '')
     artwork = self.has_artwork(url.value)
     if artwork:
         self.context['Artwork'] = artwork
     self.context['Track #'] = '{}/{}'.format(self.context['Track #'],
                                              track.album.track_count)
     self.context['Release Date'] = track.album.release_date_raw
     self.context['Album Artist'] = self.context['Artist']
     if track.json['trackExplicitness'].lower() == 'explicit':
         self.context['_explicit'] = 'Explicit'
Esempio n. 2
0
def getiTunesTrack(search):

    results = itunes.search_track(query=search, limit=1)

    if results:
        # assume the first result is the best match
        data = results[0].json
    else:
        data = json.loads("{}")

    return data
Esempio n. 3
0
    def do_itunes_search(self, query):
        """This method uses the provided query for performing an iTunes audio
        track search
        """
        self._update_progress()

        results = itunes.search_track(query)
        track = None
        for result in results:
            right_name = self.atoms['Name'] in result.get_name()
            right_artist = self.atoms['Artist'] == result.get_artist().name
            if right_name and right_artist:
                track = result
                break
        if track:
            # Album
            self.atoms['Album'] = track.get_album()
            # Albumart
            url = track.get_artwork()
            url = string.replace(url['60'], '60x60-50', '600x600-75')
            if self.has_artwork(url):
                pid = str(os.getpid())
                art = os.path.abspath('.albumart{}.jpg'.format(pid))
                self.atoms['Artwork'] = art.replace(' ', '\\ ')
            # Genre
            self.atoms['Genre'] = track.get_genre()
            album = track.get_album()
            self.atoms['Copyright'] = album.copyright
            self.atoms['Track #'] = '{}/{}'.format(self.atoms['Track #'],
                                                   album.get_track_count())
            self.atoms['Release Date'] = album.get_release_date_raw()
            self.atoms['Album Artist'] = self.atoms['Artist']
            self.atoms['contentID'] = track.get_id()
            if track.json['trackExplicitness'].lower() == 'explicit':
                self.subler.explicitness = 'Explicit'

            self._update_progress()

            self.do_tagging()
        else:
            self.logger.error(u'{} not found in iTunes'.format(query))
            self._update_progress()
Esempio n. 4
0
    def POST(self):
        data = web.input()
        search_terms = data["terms"]
        tracks = itunes.search_track(search_terms)

        playlist = []
        for track in tracks[:MAX_TRACKS]:
            title = track.name
            artist = track.artist
            album = track.album
            if not artist or not album: continue

            for match in TITLE_BLACKLIST_PATTERN.findall(title):
                title = title.replace(match, "")

            minutes, seconds = divmod(track.duration, 60)
            duration = "%d:%02d" % (minutes, seconds)

            playlist.append([artist.name, album.name, title, duration])

        return json.dumps(playlist)
Esempio n. 5
0
def test_search_track_kind():
    assert_equal(
        itunes.search_track('u2 achtung baby one')[0].get_type(), SONG_KIND)
Esempio n. 6
0
def test_search_track():
    assert_equal(itunes.search_track('u2 achtung baby one')[0].get_id(), U2_ONE_ID)
Esempio n. 7
0
def test_search_track():
    assert_equal(itunes.search_track('u2 achtung baby one')[0].get_id(), U2_ONE_ID)
Esempio n. 8
0
def test_search_track():
    assert itunes.search_track('u2 achtung baby one')[0].id == U2_ONE_ID
Esempio n. 9
0
def test_search_track():
    assert itunes.search_track('u2 achtung baby one')[0].id == U2_ONE_ID
Esempio n. 10
0
def test_search_track_kind():
    assert_equal(itunes.search_track('u2 achtung baby one')[0].get_type(), SONG_KIND)