Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discogs_client
- import json
- import xlsxwriter
- import time
- d = discogs_client.Client('ExampleApplication/0.1', user_token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
- me = d.identity()
- print("Authentication complete for {1}\n{0} | {2} | {3} items in collection".format(me.name, me.username, me.location, me.num_collection))
- collitems = me.collection_folders[0]
- print ("Initializing worksheet...")
- workbook = xlsxwriter.Workbook('Collection.xlsx')
- worksheet = workbook.add_worksheet()
- worksheet.write(0,0,'ID')
- worksheet.write(0,1,'Artist')
- worksheet.write(0,2,'Title')
- worksheet.write(0,3,'Year')
- worksheet.write(0,4,'Format')
- worksheet.write(0,5,'Description')
- worksheet.write(0,6,'Rating')
- worksheet.write(0,7,'Tracklist')
- row = 1
- total_tracks = 0
- total_length = 0
- # For each item in collection
- for item in collitems.releases:
- formats = str(item.release.formats)
- # Replace the double quotes (e.g. 12") with 'in' for parsing
- formats = formats.replace('"', 'in')
- formats = formats.replace("'", '"')
- item_format = json.loads(formats)
- worksheet.write(row,0,item.release.id)
- worksheet.write(row,1,item.release.artists[0].name)
- worksheet.write(row,2,item.release.title)
- worksheet.write(row,3,item.release.year)
- worksheet.write(row,4,item_format[0]['name'])
- try:
- worksheet.write(row,5,item_format[0]['text'])
- except:
- pass
- try:
- worksheet.write(row,6,item.release.rating)
- except:
- pass
- tracks = ''
- for track in item.release.tracklist:
- total_tracks += 1
- tracks += str(track.position) + '> ' + track.title + ' - ' + str(track.duration)
- if len(track.duration) > 0:
- time_values = track.duration.split(':')
- print('Current time sum: ' + str(total_length) + ' + ' + track.duration)
- total_length += (int(time_values[0])*60) + (int(time_values[1]))
- time.sleep(0.1)
- worksheet.write(row,7,tracks)
- print(str(row) + '/' + str(me.num_collection) + ' items written', end='\r', flush=True)
- row += 1
- hours = int(total_length // 3600)
- minutes = int(total_length % 3600)//60
- seconds = total_length % 60
- print('Your collection spans ' + str(total_tracks) + 'tracks. Total length of tracks with duration data is ' + str(total_length) + ' or ' + str(hours) + 'h ' + str(minutes) + 'm ' + str(seconds) + 's ' + ' in time.')
- workbook.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement