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))
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))
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
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
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 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))
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))
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
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