def import_followings(external_user_id): url = "http://api.soundcloud.com/users/%s/followings.json?client_id=%s" % ( external_user_id, '206f38d9623048d6de0ef3a89fea1c4d') result = urlfetch.fetch(url) result = simplejson.loads(result.content) for user in result: if ExternalUser.all().filter('type =', 'soundcloud').filter( 'external_user_id =', str(user['id'])).get() is None: external_user_model = ExternalUser(type='soundcloud', external_user_id=str( user['id'])) external_user_model.username = user['permalink'] external_user_model.avatar_url = user['avatar_url'] external_user_model.save()
def get(self): user = get_current_youtify_user_model() if ON_PRODUCTION: return for type, username in EXTERNAL_USERS: url = 'http://soundcloud.com/' + username response = urlfetch.fetch( 'https://api.soundcloud.com/resolve.json?consumer_key=206f38d9623048d6de0ef3a89fea1c4d&url=' + url) response = simplejson.loads(response.content) external_user_model = ExternalUser( type=type, external_user_id=str(response['id']), username=username, avatar_url=response['avatar_url']) external_user_model.save() user.external_user_subscriptions.append(external_user_model.key()) user.save() external_user_model.subscribers.append(user.key()) external_user_model.save() self.redirect('/') return for i in range(0, 50): tracks_json = [] for j in range(0, 100): tracks_json.append({ "videoId": 27985183, "title": "Oceanic Crust", "duration": 106331, "type": "soundcloud" }) m = Playlist(owner=user, title="Mosaik " + str(i), tracks_json=simplejson.dumps(tracks_json), json=None) m.put() user.playlists.append(m.key()) user.save() self.redirect('/')
def post(self, type, external_user_id): """Subscribes to an external user""" youtify_user_model = get_current_youtify_user_model() if youtify_user_model == None: self.error(403) return external_user_model = ExternalUser.all().filter('type =', type).filter( 'external_user_id =', external_user_id).get() if external_user_model is None: external_user_model = ExternalUser( type=type, external_user_id=external_user_id) # @XXX should not trust client with this information, fetch from server instead external_user_model.username = self.request.get('username') external_user_model.avatar_url = self.request.get('avatar_url') external_user_model.get_last_updated = True external_user_model.save() if external_user_model.key( ) in youtify_user_model.external_user_subscriptions: self.error(400) self.response.out.write( 'You already subscribe to this external user') return youtify_user_model.external_user_subscriptions.append( external_user_model.key()) youtify_user_model.save() external_user_model.subscribers.append(youtify_user_model.key()) external_user_model.nr_of_subscribers = len( external_user_model.subscribers) external_user_model.get_last_updated = True external_user_model.save() create_external_subscribe_activity(youtify_user_model, external_user_model) self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('ok')