示例#1
0
def new_social_user_registered(sender, **kwargs):
    """
        Captura la señal de un nuevo usuario de red social,
        escribe su timeline
    """
    from models_acc import UserTimelineSystem
    from models_social import GoogleUser, FacebookUser, TwitterUser
    if isinstance(sender, GoogleUser):
        timeline = UserTimelineSystem(parent=sender.user,
                                      user=sender.user,
                                      msg_id=1)
        logging.info('Usuario con email %s ahora tiene cuenta de Google: %s' %
                     (sender.user.email, sender.uid))
    elif isinstance(sender, FacebookUser):
        timeline = UserTimelineSystem(parent=sender.user,
                                      user=sender.user,
                                      msg_id=2)
        logging.info(
            'Usuario con email %s ahora tiene cuenta de Facebook: %s' %
            (sender.user.email, sender.uid))
    elif isinstance(sender, TwitterUser):
        timeline = UserTimelineSystem(parent=sender.user,
                                      user=sender.user,
                                      msg_id=3)
        logging.info('Usuario con email %s ahora tiene cuenta de Twitter: %s' %
                     (sender.user.email, sender.uid))
    else:
        return
    timeline.put()
示例#2
0
def new_user_registered(sender, **kwargs):
    """
        Captura la señal de un nuevo usuario registrado,
        escribe el primer timeline
    """
    if kwargs['status'] is None:
        logging.error('Problema registrando usuario %s') % sender.email
        sender.delete()
        from exceptions import RegistrationException
        raise RegistrationException()
    sender.send_confirm_code()
    from models_acc import UserTimelineSystem
    timeline = UserTimelineSystem(parent=sender, user=sender, msg_id=0)
    logging.info('Registrado nuevo usuario %s email: %s' %
                 (sender.id, sender.email))
    timeline.put()
示例#3
0
def new_follower(sender, **kwargs):
    """
        Captura la señal de un nuevo seguidor
        Escribe en el timeline de los dos usuarios.
        Envia una notificacion al correo.
        Escribe en el timeline de notificaciones
    """
    from google.appengine.ext import db
    from models_acc import UserTimelineSystem, UserTimeline, UserSettings
    if not isinstance(kwargs['following'], db.Key):
        raise AttributeError
    if kwargs['following'].id() == 962005 or sender.username == 'georemindme':
        return
    from google.appengine.ext.deferred import defer
    defer(UserTimeline.add_timelines_to_follower, kwargs['following'],
          sender.key())
    settings = UserSettings.objects.get_by_id(kwargs['following'].id())
    timeline = UserTimelineSystem(parent=sender,
                                  user=sender,
                                  instance=kwargs['following'],
                                  msg_id=100,
                                  visible=False)
    put = db.put_async([timeline])
    if settings.show_followings:
        timelinePublic = UserTimeline(parent=sender,
                                      user=sender,
                                      instance=kwargs['following'],
                                      msg_id=100)
        timelinePublic.put()
    from google.appengine.ext.deferred import defer
    defer(settings.notify_follower,
          sender.key())  # mandar email de notificacion
    put.get_result()
    if sender.key() != kwargs['following']:
        from geouser.models_utils import _Notification
        notification = _Notification(parent=kwargs['following'],
                                     owner=kwargs['following'],
                                     timeline=timeline)
        notification.put()