Exemple #1
0
class CharterRdioAPITests(unittest.TestCase):
    def setUp(self):
        self.rdio = Rdio((RDIO_CONSUMER_KEY, RDIO_CONSUMER_SECRET),
                         RDIO_TEST_OAUTH_TOKEN)
        test_playlist = self.rdio.call(
            'createPlaylist', {
                'name': 'charter test',
                'description': 'test charts',
                'tracks': 't10016979,t28083363,t7357573'
            })
        self.playlist = test_playlist['result']
        self.playlist_key = self.playlist['key']
        self.charter = Charter(rdio=self.rdio)

    def tearDown(self):
        self.rdio.call('deletePlaylist', {'playlist': self.playlist_key})

    def test_changing_order(self):
        expected_update = ['t28083363', 't7357573', 't10016979']
        self.charter.updatePlaylist(self.playlist_key, expected_update)
        playlist = self.rdio.call('get',
                                  params={
                                      'keys': self.playlist_key,
                                      'extras': '-*,name,trackKeys'
                                  })
        actual_tracks = playlist['result'][self.playlist_key]['trackKeys']
        self.assertListEqual(actual_tracks, expected_update)
Exemple #2
0
    def autheniticate_me(self):
        rdio = Rdio(RDIO_CREDENTIALS)
        try:
            url = rdio.begin_authentication('oob')
            print('Go to: ' + url)
            verifier = input('Then enter code: ').strip()
            rdio.complete_authentication(verifier)
            return rdio

        except HTTPError as e:
            print(e.read())
def login():
  session_id = session['uuid']
  removeFromStore(session_id)
  rdio = Rdio(RDIO_CREDS)
  auth_url = rdio.begin_authentication(callback_url=url_for('rdio_callback', _external=True),
                                       mode='redirect')
  session_data = {'expires': datetime.datetime.now() + STORE_DURATION,
                  'rt': rdio.token[0],
                  'rts': rdio.token[1]}
  addToStore(session_id, session_data)
  return redirect(auth_url)
Exemple #4
0
 def setUp(self):
     self.rdio = Rdio((RDIO_CONSUMER_KEY, RDIO_CONSUMER_SECRET),
                      RDIO_TEST_OAUTH_TOKEN)
     test_playlist = self.rdio.call(
         'createPlaylist', {
             'name': 'charter test',
             'description': 'test charts',
             'tracks': 't10016979,t28083363,t7357573'
         })
     self.playlist = test_playlist['result']
     self.playlist_key = self.playlist['key']
     self.charter = Charter(rdio=self.rdio)
def login():
    session_id = session['uuid']
    removeFromStore(session_id)
    rdio = Rdio(RDIO_CREDS)
    auth_url = rdio.begin_authentication(callback_url=url_for('rdio_callback',
                                                              _external=True),
                                         mode='redirect')
    session_data = {
        'expires': datetime.datetime.now() + STORE_DURATION,
        'rt': rdio.token[0],
        'rts': rdio.token[1]
    }
    addToStore(session_id, session_data)
    return redirect(auth_url)
def rdio_callback():
    session_id = session['uuid']
    session_data = memory_store[session_id]
    request_token = session_data.get('rt', None)
    request_token_secret = session_data.get('rts', None)
    verifier = request.args.get('oauth_verifier', None)
    if verifier is None or request_token is None or request_token_secret is None:
        logging.warn("OAuth callback error")
        return redirect(url_for('logout'))
    rdio = Rdio(RDIO_CREDS, (request_token, request_token_secret))
    rdio.complete_authentication(verifier)
    session_data['at'] = rdio.token[0]
    session_data['ats'] = rdio.token[1]
    del session_data['rt']
    del session_data['rts']
    return redirect(url_for('home'))
def rdio_callback():
  session_id = session['uuid']
  session_data = memory_store[session_id]
  request_token = session_data.get('rt', None)
  request_token_secret = session_data.get('rts', None)
  verifier = request.args.get('oauth_verifier', None)
  if verifier is None or request_token is None or request_token_secret is None:
    logging.warn("OAuth callback error")
    return redirect(url_for('logout'))
  rdio = Rdio(RDIO_CREDS, (request_token, request_token_secret))
  rdio.complete_authentication(verifier)
  session_data['at'] = rdio.token[0]
  session_data['ats'] = rdio.token[1]
  del session_data['rt']
  del session_data['rts']
  return redirect(url_for('home'))
 def setUp(self):
   self.rdio = Rdio((RDIO_CONSUMER_KEY, RDIO_CONSUMER_SECRET),
                    RDIO_TEST_OAUTH_TOKEN)
   test_playlist = self.rdio.call('createPlaylist',
                                  {'name': 'charter test',
                                   'description': 'test charts',
                                   'tracks': 't10016979,t28083363,t7357573'})
   self.playlist = test_playlist['result']
   self.playlist_key = self.playlist['key']
   self.charter = Charter(rdio=self.rdio)
class CharterRdioAPITests(unittest.TestCase):

  def setUp(self):
    self.rdio = Rdio((RDIO_CONSUMER_KEY, RDIO_CONSUMER_SECRET),
                     RDIO_TEST_OAUTH_TOKEN)
    test_playlist = self.rdio.call('createPlaylist',
                                   {'name': 'charter test',
                                    'description': 'test charts',
                                    'tracks': 't10016979,t28083363,t7357573'})
    self.playlist = test_playlist['result']
    self.playlist_key = self.playlist['key']
    self.charter = Charter(rdio=self.rdio)

  def tearDown(self):
    self.rdio.call('deletePlaylist', {'playlist': self.playlist_key})

  def test_changing_order(self):
    expected_update = ['t28083363', 't7357573', 't10016979']
    self.charter.updatePlaylist(self.playlist_key, expected_update)
    playlist = self.rdio.call('get', params={'keys': self.playlist_key,
                                             'extras': '-*,name,trackKeys'})
    actual_tracks = playlist['result'][self.playlist_key]['trackKeys']
    self.assertListEqual(actual_tracks, expected_update)
def rdioFromSession(session):
    if 'uuid' in session and session['uuid'] in memory_store:
        session_data = memory_store[session['uuid']]
        if 'at' in session_data and 'ats' in session_data:
            return Rdio(RDIO_CREDS, (session_data['at'], session_data['ats']))
    return None
if __name__ == '__main__':
    from charter.charter import Charter
    import config
    from rdio.rdio import Rdio
    import scraper

    rdio = Rdio((config.RDIO_CONSUMER_KEY, config.RDIO_CONSUMER_SECRET),
                config.RDIO_TEST_OAUTH_TOKEN)
    charter = Charter(rdio=rdio)

    scraper.chartList()
    new_chart = scraper.scrapeChart('http://www.billboard.com/charts/hot-100')
    charter.updatePlaylist('my playlist key', new_chart)