Example #1
0
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"])
Example #2
0
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)