def get(self): template_values = { 'profile': Profile.all(), 'servicos': servicesMount(), } path = os.path.join(os.path.dirname(__file__), 'index.html') self.response.out.write(template.render(path, template_values))
def get(self): creator = self.request.get('creator', '') logging.info("Creator: %s", creator) logging.info(self.request.arguments()) distance = self.request.get('distance', '') msg = "" found = [] matches = Profile.all().filter('creator =', creator).fetch(1) if matches: user = matches[0] else: user = None results = [] query = Profile.all() keys = dict(INTERESTS) for interest in self.request.arguments(): if interest in keys: query = query.filter("interests =", interest) logging.info("interests = %s" % interest) if user and distance: if user.location is None: msg = "You need to enter your position on the map in your People Finder Profile wave before doing a location based search" results = query.fetch(20) else: max_distance = distance_to_meters( distance, self.request.get('units', '')) results = Profile.proximity_fetch( query, user.location, # Or db.GeoPt max_results=20, max_distance=max_distance # meters ) else: results = query.fetch(20) if user: found = [{ 'name': r.name, 'id': r.creator } for r in results if r.key().name() != user.key().name()] else: found = [{'name': r.name, 'id': r.creator} for r in results] gtugs = simplejson.dumps({'msg': msg, 'results': found}) logging.info("response: %s" % gtugs) self.response.headers.add_header('Content-type', 'application/json') self.response.out.write(gtugs)
def get(self): creator = self.request.get('creator', '') logging.info("Creator: %s", creator); logging.info(self.request.arguments()) distance = self.request.get('distance', '') msg = "" found = [] matches = Profile.all().filter('creator =', creator).fetch(1) if matches: user = matches[0] else: user = None results = [] query = Profile.all() keys = dict(INTERESTS) for interest in self.request.arguments(): if interest in keys: query = query.filter("interests =", interest) logging.info("interests = %s" % interest) if user and distance: if user.location is None: msg = "You need to enter your position on the map in your People Finder Profile wave before doing a location based search" results = query.fetch(20) else: max_distance = distance_to_meters(distance, self.request.get('units', '')) results = Profile.proximity_fetch( query, user.location, # Or db.GeoPt max_results=20, max_distance=max_distance # meters ) else: results = query.fetch(20) if user: found = [{'name': r.name, 'id': r.creator} for r in results if r.key().name() != user.key().name()] else: found = [{'name': r.name, 'id': r.creator} for r in results] gtugs = simplejson.dumps({'msg': msg, 'results': found}) logging.info("response: %s" % gtugs) self.response.headers.add_header('Content-type', 'application/json') self.response.out.write(gtugs)
def text_message(self, message): access_token_key = 'access_token_%s' % message.sender.partition('/')[0] access_token = gdata.gauth.ae_load(access_token_key) gcal.auth_token = access_token if message.body.startswith('.'): current_calendar = message.body.lstrip('.').strip() feed = gcal.GetOwnCalendarsFeed() gdata.calendar.data.CalendarEntry for i, a_calendar in enumerate(feed.entry): if a_calendar.title.text == current_calendar: query = db.GqlQuery( "SELECT * FROM Profile WHERE email = :1", message.sender.partition('/')[0]) profiles = query.fetch(100) for profile in profiles: profile.current_calendar = current_calendar profile.save() xmpp.send_message( jids=message.sender, body='Current calendar switched to %s' % profile.current_calendar, from_jid="*****@*****.**") return profile = Profile( email = message.sender.partition('/')[0], current_calendar = current_calendar) profile.put() xmpp.send_message( jids=message.sender, body='Current calendar switched to %s' % profile.current_calendar, from_jid="*****@*****.**") return xmpp.send_message(jids=message.sender, body='calendar not found', from_jid="*****@*****.**") return format = '%Y-%m-%dT%H:%M:%S.000Z' start_time = time.gmtime() end_time = time.gmtime(time.time() + 3600) str_start_time = time.strftime(format, start_time) str_end_time = time.strftime(format, end_time) prev_event_end_time = time.gmtime(time.time() - 60) profile = Profile.all().filter("email =", message.sender.partition('/')[0]).get() event = gdata.calendar.data.CalendarEventEntry() event.title = atom.data.Title(text=message.body) event.content = atom.data.Content(text="createdby:talk") event.when.append(gdata.calendar.data.When(start=str_start_time, end=str_end_time)) own_calendars_feed = gcal.GetOwnCalendarsFeed() if (profile is None): event = gcal.InsertEvent(event) else: for i, a_calendar in enumerate(own_calendars_feed.entry): if (profile.current_calendar == a_calendar.title.text): calendar_id = a_calendar.link[0].href calendar_event_feed = gcal.get_calendar_event_feed(uri=calendar_id) event = gcal.InsertEvent(event, insert_uri=calendar_id) for when in event.when: str_start_time = when.start str_end_time = when.end query = gdata.calendar.client.CalendarEventQuery() query.start_max = str_start_time #fix latest event for i, a_calendar in enumerate(own_calendars_feed.entry): calendar_id = a_calendar.link[0].href calendar_event_feed = gcal.get_calendar_event_feed(uri=calendar_id, q=query) for i, an_event in enumerate(calendar_event_feed.entry): for a_when in an_event.when: if a_when.end >= str_start_time and an_event.content.text is not None and "createdby:talk" in an_event.content.text: try: a_when.end = time.strftime(format, prev_event_end_time) gcal.Update(an_event) except: continue xmpp.send_message(jids=message.sender, body=message.body, from_jid="*****@*****.**")