Advertisement
Guest User

Discogs API Python Demo

a guest
May 20th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.26 KB | None | 0 0
  1. import discogs_client
  2. import json
  3. import xlsxwriter
  4. import time
  5.  
  6. d = discogs_client.Client('ExampleApplication/0.1', user_token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
  7. me = d.identity()
  8. print("Authentication complete for {1}\n{0} | {2} | {3} items in collection".format(me.name, me.username, me.location, me.num_collection))
  9. collitems = me.collection_folders[0]
  10. print ("Initializing worksheet...")
  11. workbook = xlsxwriter.Workbook('Collection.xlsx')
  12. worksheet = workbook.add_worksheet()
  13. worksheet.write(0,0,'ID')
  14. worksheet.write(0,1,'Artist')
  15. worksheet.write(0,2,'Title')
  16. worksheet.write(0,3,'Year')
  17. worksheet.write(0,4,'Format')
  18. worksheet.write(0,5,'Description')
  19. worksheet.write(0,6,'Rating')
  20. worksheet.write(0,7,'Tracklist')
  21. row = 1
  22. total_tracks = 0
  23. total_length = 0
  24. # For each item in collection
  25. for item in collitems.releases:
  26.     formats = str(item.release.formats)
  27.     # Replace the double quotes (e.g. 12") with 'in' for parsing
  28.     formats = formats.replace('"', 'in')
  29.     formats = formats.replace("'", '"')
  30.     item_format = json.loads(formats)
  31.     worksheet.write(row,0,item.release.id)
  32.     worksheet.write(row,1,item.release.artists[0].name)
  33.     worksheet.write(row,2,item.release.title)
  34.     worksheet.write(row,3,item.release.year)
  35.     worksheet.write(row,4,item_format[0]['name'])
  36.     try:
  37.         worksheet.write(row,5,item_format[0]['text'])
  38.     except:
  39.         pass
  40.     try:
  41.         worksheet.write(row,6,item.release.rating)
  42.     except:
  43.         pass
  44.     tracks = ''
  45.     for track in item.release.tracklist:
  46.         total_tracks += 1
  47.         tracks += str(track.position) + '> ' + track.title + ' - ' + str(track.duration)
  48.         if len(track.duration) > 0:
  49.             time_values = track.duration.split(':')
  50.             print('Current time sum: ' + str(total_length) + ' + ' + track.duration)
  51.             total_length += (int(time_values[0])*60) + (int(time_values[1]))
  52.         time.sleep(0.1)
  53.     worksheet.write(row,7,tracks)
  54.     print(str(row) + '/' + str(me.num_collection) + ' items written', end='\r', flush=True)
  55.     row += 1
  56.     hours = int(total_length // 3600)
  57.     minutes = int(total_length % 3600)//60
  58.     seconds = total_length % 60
  59. 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.')
  60. workbook.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement