示例#1
0
def start(room_id):
  try:
    room = Room(room_id)
  except NonexistentError:
    abort(404)

  if (room.num_members() == 0):
    # Do something better like returning some json
    abort(400)

  try:
    me = User()
  except APIError:
    abort(500)
  except UnauthorizedError:
    return redirect(url_for('login', next=request.url))

  liked_artists = room.artist_counts()
  updater = []
  for artist in liked_artists:
    count = liked_artists[artist]
    item = {'item': {'item_id': artist, 'artist_id': 'facebook:artist:' + artist, 'play_count': count}}
    updater.append(item)

  cat = room.seed_catalog()
  ticket = cat.update(updater)
  while True:
    status = cat.status(ticket)
    if status['ticket_status'] == 'complete':
      break
    time.sleep(0.1)

  pl = room.playlist(generate=True)
  pl.get_next_songs(results='0', lookahead='1')
  song = pl.get_lookahead_songs()[0]
  track = song.get_tracks('rdio-US')[0]
  rdio_id = track['foreign_id'].split(':')[-1]
  return json.dumps({'song_id': song.id, 'rdio_id': rdio_id, 'artist': song.artist_name, 'title': song.title})