def schedule_master_activity(sid): logger.warning('schedule_master_activity sid:%s' % str(sid)) s_act = col_get(SCHEDULEDACTIVITY_, {"_id" : ObjectId(sid)}, {}, 'one') if not s_act: logger.warning('Scheduled activity %s doesnt exist, exiting' % str(s_act)) return logger.warning('schedule_master_activity creating activity %s' % str(s_act)) activity = Activity.create_activity(suggester=None, text=s_act.get('text'), expiry = s_act.get('expiry'), visibility='n', status=Activity.MASTER, confirm_msg = s_act.get('details'), where = s_act.get('where'), when = s_act.get('when'), network = s_act.get('network')) logger.warning('schedule_master_activity sid:%s aid:%s, removing scheduled act' % (str(sid), str(activity.get('_id')))) col_remove(SCHEDULEDACTIVITY_, {"_id" : ObjectId(sid)}) logger.warning('schedule_master_activity sid:%s aid:%s pushing to: %s' % (str(sid), str(activity.get('_id')), s_act.get('network'))) Activity.push_activity(activity['_id']) pull_default_hrs = get_eta(hours=settings.DEFAULT_USER_PULL_HOURS) pull_confirmed_hours = get_eta(hours=settings.CONFIRMED_USER_PULL_AFTER_WHEN_HOURS) logger.warning('schedule_master_activity sid:%s expire_activity_default:%s pull_default:%s pull_confirmed_activity_default:%s' % (str(sid), s_act.get('expiry').strftime('%Y-%m-%d %H:%M'), pull_default_hrs.strftime('%Y-%m-%d %H:%M'), pull_confirmed_hours.strftime('%Y-%m-%d %H:%M'))) expire_activity_default.apply_async(args=[activity["_id"]], eta=s_act.get('expiry')) pull_default.apply_async(args=[activity["_id"]], eta=pull_default_hrs) # pull_confirmed_activity_default.apply_async(args=[activity["_id"]], eta=pull_confirmed_hours) #Then we kick off the normal notifications notification_tasks.new_activity(activity["_id"])
def new_follower(user_ids, follower_id): logger.info("new_follower user_ids:%s follower_id:%s" % (str(user_ids), follower_id)) try: follower = User.objects.get(_id = follower_id) except: logger.info("User %s doesnt exist yet, retrying task in 5mins" % follower_id) new_follower.apply_async(args=[user_ids, follower_id], eta=get_eta(300)) pic_url = get_fb_profile_pic_link(follower._id) message = [ '@' + follower.name, ' is following you on KEEN. Follow ', '@' + follower.name, '?' ] store_data = { 'uid' : follower._id, 'firstName' : follower.first_name, 'lastName' : follower.last_name, 'network' : follower.network, 'pic' : pic_url } android_ids = [] apple_ids = [] badge_nums = [] for user_id in user_ids: user = User.objects.get(_id = user_id) android_ids.append(user.device_gcm_token) apple_ids.append(user.device_pns_token) badge_num = add_notification(user._id, settings.NOTIF_FRIEND_FOLLOW, message, pic_url, store_data) badge_nums.append(badge_num) data = { 'type' : settings.NOTIF_FRIEND_FOLLOW, 'title' : follower.name, 'ticker' : 'New follower', 'uid' : follower._id, 'msg' : follower.first_name + ' is now following you on KEEN.', } logger.info('new_follower Sending new follower %s to the ids %s' % (str(follower_id), str(user_ids))) send(data, android_ids, apple_ids, badge_nums)