Beispiel #1
0
 def run(self):
     try:
         lib = library.parse(self.xml)
     except Exception as e:
         self.signals.error.emit(str(e))
     else:
         self.signals.finished.emit()
         self.signals.result.emit(lib)
def main(user_id, xml_path, playlist_name, year):
    scope = 'user-top-read'
    token = spotipy_token(scope, user_id)
    sp = spotipy.Spotify(auth=token)

    lib = library.parse(xml_path, ignoreRemoteSongs=False)

    playlist = lib.getPlaylist(playlist_name)

    for item in playlist.items:
        time.sleep(.1)
        spotify_search(item, year, sp)

    print("done")
Beispiel #3
0
def test_playlist_items():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert lib.playlists[0].items
Beispiel #4
0
def test_majorVersion():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"empty.xml"))
    assert "2" == lib.majorVersion
Beispiel #5
0
                print('Manifest contains', num_items, 'items')
                load_manifest = json.loads(manifest_s)
    else:
        print('Manifest could not be found. Creating manifest txt file...')
        with open('manifest.txt', 'w') as manifest_txt:
            manifest_txt.write('[]')
        use_manifest = False
#            manifest_txt.close()

elif input1 == 'n':
    print('Manifest not being used')
    use_manifest = False
else:
    quit()

lib = library.parse(library_xml)

errors = []
# Exclude audio files that are too long (probably not songs), not formatted correctly or were already updated
for song in contents:
    print('=' * 80)
    print('Analyzing track', song['id'], ': ', song['artist'], song['title'])
    if use_manifest == True:
        check = manifest_check(song, load_manifest)
        if check == True:
            continue
    if song['duration'] > 1000:
        print('Song too long.')
        song['error_type'] = 'audio too long.'
        errors.append(song)
        continue
Beispiel #6
0
def test_applicationVersion():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"empty.xml"))
    assert "11.0.2" == lib.applicationVersion
Beispiel #7
0
def test_totalTime():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    item = lib.getItemsById("16116")
    assert item.getItunesAttribute('Total Time') == '178474'
Beispiel #8
0
def test_title():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert "The Next Day" == lib.items[0].title
Beispiel #9
0
def test_playlist_items():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert lib.playlists[0].items
Beispiel #10
0
def test_library_items():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert lib.items
Beispiel #11
0
def test_majorVersion():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "empty.xml"))
    assert "2" == lib.majorVersion
Beispiel #12
0
def test_unicode_title():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "unicode.xml"))
    item = lib.getItemsById("164")
    assert item.title
    assert item.artist == 'Blackfield'
Beispiel #13
0
def test_applicationVersion():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "empty.xml"))
    assert "11.0.2" == lib.applicationVersion
Beispiel #14
0
def test_playlist():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "111.xml"))
    playlist = lib.getPlaylist("Gray")
    assert len(playlist)  # it has items
Beispiel #15
0
def test_getItemsById_Integer():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    item = lib.getItemsById(16116)
    assert item
Beispiel #16
0
def test_length():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert 10 == len(lib)
Beispiel #17
0
def test_album():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert "The Next Day (Deluxe Version)" == lib.items[0].album
Beispiel #18
0
def test_playlist_iter():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert lib.__iter__().__iter__()
Beispiel #19
0
def test_getItemsForArtist_Failure():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    items = lib.getItemsForArtist("Not There")
    assert items == []
Beispiel #20
0
def test_length():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert 10 == len(lib)
Beispiel #21
0
def test_getItemsById_Integer():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    item = lib.getItemsById(16116)
    assert item
Beispiel #22
0
def test_artist():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert "David Bowie" == lib.items[0].artist
Beispiel #23
0
import os
from itunesLibrary import library

path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml")

# must first parse...
lib = library.parse(path)

print(len(lib))    # number of items stored

for playlist in lib.playlists:
    for item in playlist.items:
        print(item)          # perform function on each item in the playlist

# get a single playlist
playlist = lib.getPlaylist("David Bowie")
print(playlist)

# get a list of all of the David Bowie songs
bowie_items = lib.getItemsForArtist("David Bowie")

# get a single song
single_song = lib.getItemsById("16116")

# get the iTunes application version
print(lib.applicationVersion)
Beispiel #24
0
def test_empty():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "empty.xml"))
    assert 0 == len(lib)
#! /usr/bin/env python -B
# -*- coding: utf-8 -*-

from __future__ import print_function
import os,sys
from itunesLibrary import library

path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml")
lib = library.parse(path,True)
musicItems = set(lib.getPlaylist("Music").items)
musicItems = sorted(list(musicItems),key=lambda k: (k.artist if k.artist else '',k.title if k.title else '',k.album if k.album else ''))

for item in musicItems:
    print(item)

sys.exit(0)
Beispiel #26
0
def test_album():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert "The Next Day (Deluxe Version)" == lib.items[0].album
#! /usr/bin/env python -B
# -*- coding: utf-8 -*-

# Simple test script that print all items from ~/Music/iTunes/iTunes Music Library.xml

import os, sys
from itunesLibrary import library

path = os.path.join(os.getenv("HOME"), "Music/iTunes/iTunes Music Library.xml")
lib = library.parse(path, True)
musicItems = set(lib.getPlaylist("Music").items)
musicItems = sorted(list(musicItems),
                    key=lambda k: (k.artist if k.artist else '', k.title
                                   if k.title else '', k.album
                                   if k.album else ''))

for item in musicItems:
    print(item)

sys.exit(0)
Beispiel #28
0
def test_title():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert "The Next Day" == lib.items[0].title
Beispiel #29
0
def test_library_items():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert lib.items
Beispiel #30
0
def test_getItemsForArtist():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    assert lib.getItemsForArtist("David Bowie")
Beispiel #31
0
def test_playlist_iter():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert lib.__iter__().__iter__()
Beispiel #32
0
def test_getItemsForArtist_Failure():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    items = lib.getItemsForArtist("Not There")
    assert items == []
Beispiel #33
0
def test_artist():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert "David Bowie" == lib.items[0].artist
Beispiel #34
0
def test_getItemsById():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    item = lib.getItemsById("16116")
    assert item.album == 'The Next Day (Deluxe Version)' and item.getItunesAttribute(
        'Total Time') == '178474'
Beispiel #35
0
def test_empty():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"empty.xml"))
    assert 0 == len(lib)
Beispiel #36
0
def test_totalTime():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    item = lib.getItemsById("16116")
    assert item.getItunesAttribute('Total Time') == '178474'
Beispiel #37
0
def test_getItemsForArtist():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    assert lib.getItemsForArtist("David Bowie")
Beispiel #38
0
def test_getItemsById_Failure():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY, "10.xml"))
    item = lib.getItemsById("-1")
    assert not item
Beispiel #39
0
def test_getItemsById():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    item = lib.getItemsById("16116")
    assert item.album == 'The Next Day (Deluxe Version)' and item.getItunesAttribute('Total Time') == '178474'
Beispiel #40
0
print('google play music load start')

# google play musicの曲リストを取得
gLibrary = mc.get_all_songs()

print('google play music library loaded')

# google play musicのプレイリストとそのコンテンツを取得
gPlaylistsAndContents = mc.get_all_user_playlist_contents()

print('google play music playlists loaded')

print('itunes load start')

# itunesのライブラリファイル読み込み
iLibrary = library.parse(ITUNES_MUSIC_LIBLARY_XML_PATH)

print('itunes playlists loaded')

# プレイリスト一覧を取得
iPlaylist = iLibrary.getPlaylist(SYNC_PLAYLIST_NAME)

# プレイリスト名を表示
print("playlistName = {p}".format(p=iPlaylist.itunesAttibutes['Name']))

# 曲を登録するプレイリストID保存用変数定義
gPlaylistId = None

# google play musicの一致するプレイリストを取得
filteredPlaylistsAndContentsIter = filter(
    lambda v: v['name'] == iPlaylist.itunesAttibutes['Name'],
Beispiel #41
0
def test_getItemsById_Failure():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"10.xml"))
    item = lib.getItemsById("-1")
    assert not item
    return s
    
def addSongToPlayList(playlistID,theSong):
    temp = theSong
    song=searchSong(temp)
    songList = []
    songList.append(song)
    sp.user_playlist_add_tracks(user=userID,playlist_id=playlistID,tracks=songList,position=None)
#searchSong("J. Cole 2014 Forest Hills Drive Wet Dreamz")

#location = input("what is the location of the xml file?")
            #for future users, this could be inputted so that this doesn't only work on my laptop

#some Apple Music Songs don't exist or we pulled a local file from the computer and will return failed songs
location = '/Users/kenichimatsuo/Desktop/XMLFiles/Library.xml'
lib = library.parse(location)
for i in lib.playlists:
    length = len(str(i))
    playlistTitle = str(i)[2:length]
    index = 0
    for j in range(len(playlistTitle)):
        if (playlistTitle[j]=="'"):
            index = j
    actualPlaylistTitle = playlistTitle[0:index]
    if(actualPlaylistTitle!="Library" and actualPlaylistTitle != "Downloaded" and actualPlaylistTitle != "Music"):
        identification=makePlayList(actualPlaylistTitle)
        #print("identification is "+identification+" playlist name is "+actualPlaylistTitle)
        for z in i.items:
            ken = str(z)
            try:
                #print("song added is "+ken)
Beispiel #43
0
def test_playlist():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"111.xml"))
    playlist = lib.getPlaylist("Gray")
    assert len(playlist)  # it has items
#!/usr/bin/python
# -*- coding: utf-8 -*-

from __future__ import print_function
import os,sys
from itunesLibrary import library

path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml")
lib = library.parse(path)

musicItems = set(lib.getPlaylist("Music").items)

for name in ("Steve","Laurel","Christmas"):
    musicItems -= set(lib.getPlaylist(name))

musicItems = sorted(list(musicItems),key=lambda k: (k.artist,k.title,k.album))

for item in musicItems:
    print("{0:35s} {1:40s} {2}".format(item.artist,item.title,item.album))

sys.exit(0)
Beispiel #45
0
def test_unicode_title():
    lib = library.parse(os.path.join(SAMPLE_DATA_DIRECTORY,"unicode.xml"))
    item = lib.getItemsById("164")
    assert item.title
    assert item.artist == 'Blackfield'
Beispiel #46
0
#!/usr/bin/python
# -*- coding: utf-8 -*-

from __future__ import print_function
import os,sys
from itunesLibrary import library

path = os.path.join(os.getenv("HOME"),"Music/iTunes/iTunes Music Library.xml")
lib = library.parse(path,False)

musicItems = set(lib.getPlaylist("Music").items)

for name in ("Steve","Laurel","Christmas"):
    musicItems -= set(lib.getPlaylist(name))

musicItems = sorted(list(musicItems),key=lambda k: (k.artist,k.title,k.album))

for item in musicItems:
    print(item)

sys.exit(0)