Change deprecated OptionParser for ArgumentParser

This commit is contained in:
2017-04-18 01:49:08 +02:00
parent 6c121a5b6a
commit bf3682bd00

View File

@@ -38,15 +38,13 @@ for use in the D3.js JavaScript library.
"""
from __future__ import division
from optparse import OptionParser
import os
import io
import plistlib
import json
import datetime
import io
import json
import os
import plistlib
import sys
import argparse
class SetEncoder(json.JSONEncoder):
@@ -89,7 +87,6 @@ class ITunesParser:
Read library and return Tracks part
"""
plist = plistlib.readPlist(self.library_file)
print(plist['Features'])
return plist['Tracks']
def _process_songs(self):
@@ -237,34 +234,34 @@ class ITunesParser:
#### main block ####
# Default input & output files
DEFAULT_LIBRARY_FILE = os.path.expanduser('iTunesLibrary.xml')
DEFAULT_OUTPUT_FILE = os.path.dirname(os.path.realpath(__file__)) + '/es-music-data.json'
DEFAULT_LIBRARY_FILE_NAME = 'iTunesLibrary.xml'
DEFAULT_OUTPUT_FILE_NAME = '/es-music-data.json'
DEFAULT_LIBRARY_FILE = os.path.expanduser(DEFAULT_LIBRARY_FILE_NAME)
DEFAULT_OUTPUT_FILE = os.path.dirname(os.path.realpath(__file__)) + DEFAULT_OUTPUT_FILE_NAME
# Get options
parser = OptionParser(version="%prog 1.0")
parser.add_option('-f', '--file', dest='file', type='string',
help='iTunes Library XML file path',
default=DEFAULT_LIBRARY_FILE)
parser.add_option('-o', '--output', dest='output', type='string',
help='Output to file (default=./js/music-data.json)',
default=DEFAULT_OUTPUT_FILE)
parser.add_option('-c', '--console', dest='console', action='store_true',
help='Output to console instead of file')
parser.add_option('-v', '--verbose', dest='verbose', action='store_true',
help='Verbose output')
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file', default=DEFAULT_LIBRARY_FILE,
help='iTunes Library XML file path (default: ./' + DEFAULT_LIBRARY_FILE_NAME + ')')
parser.add_argument('-o', '--output', default=DEFAULT_OUTPUT_FILE,
help='Output to file (default: .' + DEFAULT_OUTPUT_FILE_NAME + ')')
parser.add_argument('-c', '--console', action='store_true',
help='Output to console instead of file')
# parser.add_argument('-v', '--verbose', action='store_true',
# help='Verbose output')
if __name__ == '__main__':
(options, args) = parser.parse_args()
args = parser.parse_args()
itunes_parser = ITunesParser(options.file)
itunes_parser = ITunesParser(args.file)
output = itunes_parser.to_json()
if options.console:
if args.console:
print(output)
else:
with io.open(options.output, 'wb') as outfile:
with io.open(args.output, 'wb') as outfile:
if sys.version_info.major == 2:
outfile.write(bytes(output))
elif sys.version_info.major == 3:
outfile.write(bytes(output, 'UTF-8'))
print('JSON data written to: ' + options.output)
print('JSON data written to: ' + args.output)