コード例 #1
0
ファイル: home.py プロジェクト: wallowsss/wallowsss-site
 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))
コード例 #2
0
ファイル: main.py プロジェクト: hitrust/google-wave-resources
    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)
コード例 #3
0
ファイル: main.py プロジェクト: hitrust/google-wave-resources
  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)
コード例 #4
0
  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="*****@*****.**")