def post(self, uid): other_user = YoutifyUser.get_by_id(int(uid)) me = get_current_youtify_user_model() if other_user is None: self.error(400) self.response.out.write('Other user not found') return if me.key().id() == other_user.key().id(): self.error(400) self.response.out.write('You can not follow yourself') return if FollowRelation.all().filter('user1 =', me).filter('user2 =', other_user).get(): self.error(400) self.response.out.write('You already follow that user') return me.nr_of_followings += 1 other_user.nr_of_followers += 1 me.save() other_user.save() m = FollowRelation(user1=me.key().id(), user2=other_user.key().id()) m.put() create_follow_activity(me, other_user) send_new_follower_email(me, other_user) self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('ok')
def create_external_subscribe_activity(youtify_user_model, external_user_model): target = simplejson.dumps(get_external_user_subscription_struct(external_user_model)) actor = simplejson.dumps(get_youtify_user_struct(youtify_user_model)) m = Activity(owner=youtify_user_model, verb='external_subscribe', actor=actor, target=target, type='outgoing') m.put() for relation in FollowRelation.all().filter('user2 =', youtify_user_model.key().id()): m = Activity(owner=YoutifyUser.get_by_id(relation.user1), verb='external_subscribe', actor=actor, target=target, type='incoming') m.put()
def create_flattr_activity(youtify_user_model, thing_id, thing_title): target = simplejson.dumps({ 'thing_id': thing_id, 'thing_title': thing_title, }) actor = simplejson.dumps(get_youtify_user_struct(youtify_user_model)) m = Activity(owner=youtify_user_model, verb='flattr', actor=actor, target=target, type='outgoing') m.put() for relation in FollowRelation.all().filter('user2 =', youtify_user_model.key().id()): m = Activity(owner=YoutifyUser.get_by_id(relation.user1), verb='flattr', actor=actor, target=target, type='incoming') m.put()
def delete(self): """Remove a user from the list of leaders""" lang_code = self.request.path.split('/')[-3] user_id = self.request.path.split('/')[-1] language = Language.all().filter('code =', lang_code).get() user = YoutifyUser.get_by_id(int(user_id)) if language is None: self.error(404) if user is None: self.error(404) language.leaders.remove(user.key()) language.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Add a new leader for this language""" lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() user_id = self.request.get('user') if language is None: self.error(404) if user_id is None: self.error(400) user = YoutifyUser.get_by_id(int(user_id)) if user.key() not in language.leaders: language.leaders.append(user.key()) language.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Add a new leader for this language""" lang_code = self.request.path.split("/")[-2] language = Language.all().filter("code =", lang_code).get() user_id = self.request.get("user") if language is None: self.error(404) if user_id is None: self.error(400) user = YoutifyUser.get_by_id(int(user_id)) if user.key() not in language.leaders: language.leaders.append(user.key()) language.save() self.response.headers["Content-Type"] = "text/plain" self.response.out.write("success")
def create_external_subscribe_activity(youtify_user_model, external_user_model): target = simplejson.dumps( get_external_user_subscription_struct(external_user_model)) actor = simplejson.dumps(get_youtify_user_struct(youtify_user_model)) m = Activity(owner=youtify_user_model, verb='external_subscribe', actor=actor, target=target, type='outgoing') m.put() for relation in FollowRelation.all().filter('user2 =', youtify_user_model.key().id()): m = Activity(owner=YoutifyUser.get_by_id(relation.user1), verb='external_subscribe', actor=actor, target=target, type='incoming') m.put()