diff --git a/scraper.py b/scraper.py index cea67de..35227d5 100755 --- a/scraper.py +++ b/scraper.py @@ -2,6 +2,8 @@ # ex: set filetype=python import argparse +import os +from shutil importy copyfile import xml.etree.cElementTree as xml class Track(): @@ -13,7 +15,7 @@ class Track(): def __init__(self, xml_doc): it = iter(xml_doc) for k, v in zip(it, it): - setattr(self, k.text.replace(' ', ''), v) + setattr(self, k.text.replace(' ', ''), v.text) def parseXml(xml_file): """ @@ -26,6 +28,20 @@ def parseXml(xml_file): tracks.append(Track(t)) return tracks +def copy_file(track, targetFolder): + """ + Copies a track from its source to the destination folder + """ + path = track.Location[7:] + dst = os.path.join(targetFolder, os.path.basename(path)) + if (os.path.exists(path)): + print('Copying file {0}', path) + copyfile(path, dst) + else: + print('File {0} not found.') + return dst + + def main(): """ Setup our main program @@ -38,8 +54,15 @@ def main(): parser.add_argument('libraryFile', help='The iTunes library file in XML format.') args = parser.parse_args() + print('Parsing library file...') tracks = parseXml(args.libraryFile) + print('{0} tracks found.'.format(len(tracks))) + if not os.path.isdir(args.target): + os.mkdir(args.target) + + for t in tracks: + new_file = copy_file(t, args.target) if __name__ == "__main__": main()