Beispiel #1
0
def new_suggestion(sender, **kwargs):
    timeline = UserTimelineSystem(parent=sender.user,
                                  user=sender.user,
                                  instance=sender,
                                  msg_id=300)
    timelinePublic = UserTimeline(parent=sender.user,
                                  user=sender.user,
                                  instance=sender,
                                  msg_id=300,
                                  _vis=sender._get_visibility())
    p = db.put_async([timeline])
    sender.user.counters.set_suggested()
    if sender._is_public():
        from google.appengine.ext.deferred import defer
        try:
            defer(sender.insert_ft, _queue="fusiontables")
        except:
            from georemindme.models_utils import _Do_later_ft
            later = _Do_later_ft(instance_key=sender.key())
            later.put()
        from libs.oauth2 import Token
        from geoauth.clients.twitter import TwitterClient
        try:
            tc = TwitterClient(token=Token(
                key=settings.OAUTH['twitter']['geosuggest_key'],
                secret=settings.OAUTH['twitter']['geosuggest_secret']))
            msg = "%(name)s %(url)s #grm" % {
                'name': sender.name[:105],
                'url': sender.short_url,
            }
            tc.send_tweet(msg, sender.poi.location)
        except Exception, e:
            logging.error('ERROR AUTOCOMPARTIENDO TWITTER sugerencia %s: %s' %
                          (sender.id, e.message))
Beispiel #2
0
def get_friends_twitter(request):
    """**Descripción**: Obtiene una lista con los contactos en twitter que
    el usuario puede seguir
    
    """
    from geoauth.clients.twitter import TwitterClient
    try:
        c = TwitterClient(user=request.user)
        contacts = c.get_friends_to_follow()
    except:
        return HttpResponseRedirect(reverse('geouser.views.login_twitter'))
    
    return render_to_response('generic/contacts_twitter.html', {'contacts' : contacts, },
                              context_instance=RequestContext(request))
Beispiel #3
0
def share_on_twitter(request, id, msg):
    list = List.objects.get_by_id_querier(id, request.user)
    if list is None:
        return None
    if not list._is_public():
        return False
    if list.short_url is None:
        list._get_short_url()
    from geoauth.clients.twitter import TwitterClient
    try:
        tw_client = TwitterClient(user=request.user)
        tw_client.send_tweet(msg)
    except:
        return None
    return True
Beispiel #4
0
def share_on_twitter(request, id, msg):
    list = List.objects.get_by_id_querier(id, request.user)
    if list is None:
        return None
    if not list._is_public():
        return False
    if list.short_url is None:
        list._get_short_url()
    from geoauth.clients.twitter import TwitterClient
    try:
        tw_client=TwitterClient(user=request.user)
        tw_client.send_tweet(msg)
    except:
        return None
    return True
Beispiel #5
0
def share_on_twitter(request, suggestion_id, msg):
    suggestion = Suggestion.objects.get_by_id_querier(suggestion_id, request.user)
    if suggestion is None:
        return None
    if not suggestion._is_public():
        return False
    if suggestion.short_url is None:
        suggestion._get_short_url()
    from geoauth.clients.twitter import TwitterClient
    from os import environ
    try:
        tw_client=TwitterClient(user=request.user)
        tw_client.send_tweet(msg, suggestion.poi.location)
    except:
        return None
    return True
Beispiel #6
0
def get_friends_twitter(request):
    """**Descripción**: Obtiene una lista con los contactos en twitter que
    el usuario puede seguir
    
    """
    from geoauth.clients.twitter import TwitterClient
    try:
        c = TwitterClient(user=request.user)
        contacts = c.get_friends_to_follow()
    except:
        return HttpResponseRedirect(reverse('geouser.views.login_twitter'))

    return render_to_response('generic/contacts_twitter.html', {
        'contacts': contacts,
    },
                              context_instance=RequestContext(request))
Beispiel #7
0
def share_on_twitter(request, suggestion_id, msg):
    suggestion = Suggestion.objects.get_by_id_querier(suggestion_id,
                                                      request.user)
    if suggestion is None:
        return None
    if not suggestion._is_public():
        return False
    if suggestion.short_url is None:
        suggestion._get_short_url()
    from geoauth.clients.twitter import TwitterClient
    from os import environ
    try:
        tw_client = TwitterClient(user=request.user)
        tw_client.send_tweet(msg, suggestion.poi.location)
    except:
        return None
    return True
def new_suggestion(sender, **kwargs):
    timeline = UserTimelineSystem(parent = sender.user, user = sender.user, instance = sender, msg_id=300)
    timelinePublic = UserTimeline(parent = sender.user, user = sender.user, instance = sender, msg_id=300, _vis=sender._get_visibility())
    p = db.put_async([timeline])
    sender.user.counters.set_suggested()
    if sender._is_public():
        from google.appengine.ext.deferred import defer
        try:
            defer(sender.insert_ft, _queue="fusiontables")
        except:
            from georemindme.models_utils import _Do_later_ft
            later = _Do_later_ft(instance_key=sender.key())
            later.put()
        from libs.oauth2 import Token
        from geoauth.clients.twitter import TwitterClient
        try:
            tc = TwitterClient(token=Token(key=settings.OAUTH['twitter']['geosuggest_key'], secret=settings.OAUTH['twitter']['geosuggest_secret'] ))
            msg = "%(name)s %(url)s #grm" % {
                                            'name': sender.name[:105], 
                                            'url': sender.short_url,
                                            }
            tc.send_tweet(msg, sender.poi.location)
        except Exception, e:
            logging.error('ERROR AUTOCOMPARTIENDO TWITTER sugerencia %s: %s' % (sender.id, e.message))
Beispiel #9
0
 def update_or_insert(cls,
                      id=None,
                      name=None,
                      description=None,
                      date_starts=None,
                      date_ends=None,
                      hour_starts=None,
                      hour_ends=None,
                      poi=None,
                      user=None,
                      done=False,
                      active=True,
                      tags=None,
                      vis='public',
                      commit=True,
                      to_facebook=False,
                      to_twitter=False):
     '''
         Crea una sugerencia nueva, si recibe un id, la busca y actualiza.
         
         :returns: :class:`geoalert.models.Suggestion`
         :raises: :class:`geoalert.exceptions.ForbiddenAccess`, :class:`TypeError`
     '''
     if not isinstance(user, User):
         raise TypeError()
     #if name is not None and name != '':
     name = name.replace("\r", " ")
     name = name.replace("\n", " ")
     if id is not None:
         # como se ha pasado un id, queremos modificar una alerta existente
         sugg = cls.objects.get_by_id_user(id, user, querier=user)
         if sugg is None:
             return None
         if name is not None and name != '':
             from datetime import timedelta
             if sugg.created + timedelta(hours=2) > datetime.now():
                 sugg.name = name
         #sugg.name = name if name is not None else sugg.name
         sugg.description = description
         sugg.date_starts = date_starts
         sugg.date_ends = date_ends
         sugg.hour_ends = hour_ends
         sugg.poi = poi if poi is not None else sugg.poi
         if vis != '':
             sugg._vis = vis
         if sugg.is_active() != active:
             sugg.toggle_active()
         sugg._tags_setter(tags, commit=commit)
         if commit:
             sugg.put()
     else:
         if poi is None:
             raise TypeError()
         sugg = Suggestion(name=name,
                           description=description,
                           date_starts=date_starts,
                           date_ends=date_ends,
                           hour_starts=hour_starts,
                           hour_ends=hour_ends,
                           poi=poi,
                           user=user,
                           _vis=vis)
         if not active:
             sugg.toggle_active()
         if tags != '':
             sugg._tags_setter(tags, commit=commit)
         if commit:
             sugg.put()
             followers = SuggestionFollowersIndex(parent=sugg.key(),
                                                  keys=[sugg.user.key()])
             followers.put()
             if to_facebook:
                 from facebookApp.watchers import new_suggestion
                 new_suggestion(sugg)
             if to_twitter:
                 if sugg._is_public():
                     if sugg.short_url is None:
                         sugg._get_short_url()
                     msg = "%(name)s %(url)s #grm" % {
                         'name': sugg.name[:105],
                         'url': sugg.short_url
                     }
                     from geoauth.clients.twitter import TwitterClient
                     try:
                         tw_client = TwitterClient(user=sugg.user)
                         tw_client.send_tweet(msg, sugg.poi.location)
                     except:
                         pass
     return sugg
Beispiel #10
0
 def update_or_insert(cls, id = None, name = None, description = None,
                      date_starts = None, date_ends = None, hour_starts = None,
                      hour_ends = None, poi = None, user = None, done = False, 
                      active = True, tags = None, vis = 'public', commit=True, 
                      to_facebook=False, to_twitter=False):
     '''
         Crea una sugerencia nueva, si recibe un id, la busca y actualiza.
         
         :returns: :class:`geoalert.models.Suggestion`
         :raises: :class:`geoalert.exceptions.ForbiddenAccess`, :class:`TypeError`
     '''
     if not isinstance(user, User):
         raise TypeError()
     #if name is not None and name != '':
     name = name.replace("\r"," ")
     name = name.replace("\n"," ")
     if id is not None:  
         # como se ha pasado un id, queremos modificar una alerta existente
         sugg = cls.objects.get_by_id_user(id, user, querier=user)
         if sugg is None:
             return None
         if name is not None and name != '':
             from datetime import timedelta
             if sugg.created+timedelta(hours=2) > datetime.now():
                 sugg.name = name
         #sugg.name = name if name is not None else sugg.name
         sugg.description = description
         sugg.date_starts = date_starts
         sugg.date_ends = date_ends 
         sugg.hour_ends = hour_ends 
         sugg.poi = poi if poi is not None else sugg.poi
         if vis != '':
             sugg._vis = vis
         if sugg.is_active() != active:
             sugg.toggle_active()
         sugg._tags_setter(tags, commit=commit)
         if commit:
             sugg.put()
     else:
         if poi is None:
             raise TypeError()
         sugg = Suggestion(name = name, description = description, date_starts = date_starts,
                       date_ends = date_ends, hour_starts = hour_starts, hour_ends = hour_ends, 
                       poi = poi, user = user, _vis=vis)
         if not active:
             sugg.toggle_active()
         if tags != '':
             sugg._tags_setter(tags, commit=commit)
         if commit:
             sugg.put()
             followers = SuggestionFollowersIndex(parent=sugg.key(), keys=[sugg.user.key()])
             followers.put()
             if to_facebook:
                 from facebookApp.watchers import new_suggestion
                 new_suggestion(sugg)
             if to_twitter:
                 if sugg._is_public():
                     if sugg.short_url is None:
                         sugg._get_short_url()
                     msg = "%(name)s %(url)s #grm" % {
                                                         'name': sugg.name[:105], 
                                                         'url': sugg.short_url
                                                         }
                     from geoauth.clients.twitter import TwitterClient
                     try:
                         tw_client=TwitterClient(user=sugg.user)
                         tw_client.send_tweet(msg, sugg.poi.location)
                     except:                 
                         pass
     return sugg