From 6c121a5b6a1be08f2dd8642293f20deb771b4972 Mon Sep 17 00:00:00 2001 From: "Maxence G. de Montauzan" Date: Mon, 17 Apr 2017 20:48:55 +0200 Subject: [PATCH] Doc + clean --- iTunesParser.py | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/iTunesParser.py b/iTunesParser.py index d3c3d86..00c27eb 100644 --- a/iTunesParser.py +++ b/iTunesParser.py @@ -70,37 +70,32 @@ class ITunesParser: def to_json(self): """ - Just do processSong() - This method suck + Just do processSong() + or do process_songs, then _write_artists and _write_albums. + Note: process_songs do a process_artists and process_albums... + This method suck. """ ret = self._process_songs() - # self._write_artists() - # self._write_albums() + self._write_artists() + self._write_albums() # return json.dumps(jsonObj, indent=indent, cls=SetEncoder) return ret - def to_json_p(self): # TODO parameter, rating=4): - """ - Produce JSON-P content - """ - - json_content = self.to_json() - jsonp = ';itgCallback(' + json_content + ');' - return jsonp - - def _read_tracks(self): """ Read library and return Tracks part """ plist = plistlib.readPlist(self.library_file) + print(plist['Features']) return plist['Tracks'] def _process_songs(self): """ Return an output JSON for an ELS Bulk request - Not a correct format + This method call process_album & process_artist TODO Just return a _correct_ JSON and treat in another place/class """ @@ -152,6 +147,7 @@ class ITunesParser: # Compute information rating = (track['Rating'] // 20) if 'Rating' in track else 0 + # TODO Improve rating that currently can go ahead to 100 plays = track['Play Count'] if 'Play Count' in track else 0 self._artists[akey]['count'] += 1 @@ -190,6 +186,7 @@ class ITunesParser: self._albums[akey]['count'] += 1 self._albums[akey]['rating'] += rating + # TODO Improve rating that currently can go ahead to 100 self._albums[akey]['plays'] += plays if 'Genre' not in track: @@ -240,7 +237,7 @@ class ITunesParser: #### main block #### # Default input & output files -DEFAULT_LIBRARY_FILE = os.path.expanduser('iTunesMiniLibrary.xml') +DEFAULT_LIBRARY_FILE = os.path.expanduser('iTunesLibrary.xml') DEFAULT_OUTPUT_FILE = os.path.dirname(os.path.realpath(__file__)) + '/es-music-data.json' # Get options @@ -253,8 +250,6 @@ parser.add_option('-o', '--output', dest='output', type='string', default=DEFAULT_OUTPUT_FILE) parser.add_option('-c', '--console', dest='console', action='store_true', help='Output to console instead of file') -parser.add_option('-p', '--jsonp', dest='jsonp', action='store_true', - help='Output in JSON-P format') parser.add_option('-v', '--verbose', dest='verbose', action='store_true', help='Verbose output') @@ -262,10 +257,7 @@ if __name__ == '__main__': (options, args) = parser.parse_args() itunes_parser = ITunesParser(options.file) - if options.jsonp: - output = itunes_parser.to_json_p() - else: - output = itunes_parser.to_json() + output = itunes_parser.to_json() if options.console: print(output)