示例#1
0
  def post(self):

    self.user = users.get_current_user()

    if not self.user:
      self.redirect(users.create_login_url(self.request.uri))

    ProfileManager.save(self.user, self.request)
    self.redirect('/settings')
示例#2
0
文件: mute.py 项目: lovett/announcer
    def post(self):

        token = self.request.get("token")

        if not token:
            self.response.set_status(400)
            self.response.out.write("Missing parameter: token")
            return

        protocols = self.request.get("protocols")

        if not protocols:
            self.response.set_status(400)
            self.response.out.write("Missing parameter: protocols")

        profile = ProfileManager.findByToken(token)

        if not profile:
            self.response.set_status(400)
            self.response.out.write("Invalid token")
            return

        params = {
            "action": self.request.path.lstrip("/"),
            "protocols": protocols.split(",")
            }

        profile.update(params)

        self.response.out.write("OK")
示例#3
0
  def post(self):

    required_parameters = ["token", "number"]

    for param in required_parameters:
      param_value = self.request.get(param)

      if not param_value:
        self.response.set_status(400)
        self.response.out.write("Missing parameter: %s" % param)
        return

    profile = ProfileManager.findByToken(self.request.get("token"))

    if not profile:
      self.response.set_status(400)
      self.response.out.write("Invalid token")
      return

    announcement = Announcement(type="phonecall", params={"number": self.request.get("number"),
                                                          "name": self.request.get("name"),
                                                          "profile": profile})


    announcement.send()

    self.response.set_status(200)

    self.response.out.write("OK")
示例#4
0
文件: main.py 项目: lovett/announcer
    def post(self):

        required_parameters = ["token", "message"]

        for param in required_parameters:
            param_value = self.request.get(param)

            if not param_value:
                self.response.set_status(400)
                self.response.out.write("Missing parameter: %s" % param)
                return

        profile = ProfileManager.findByToken(self.request.get("token"))

        if not profile:
            self.response.set_status(400)
            self.response.out.write("Invalid token")
            return

        announcement = Announcement(type="event", params={"message": self.request.get("message"),
                                                          "source": self.request.get("source") or "generic",
                                                          "profile": profile})

        announcement.send()

        self.response.set_status(200)

        self.response.out.write("OK")
示例#5
0
    def get(self):

        required_parameters = ["token", "offset"]

        for param in required_parameters:
            param_value = self.request.get(param)

            if not param_value:
                self.response.set_status(400)
                self.response.out.write("Missing parameter: %s" % param)
                return

        profile = ProfileManager.findByToken(self.request.get("token"))

        if not profile:
            self.response.set_status(400)
            self.response.out.write("Invalid token")
            return

        if self.request.get("limit"):
            limit = int(self.request.get("limit"))
        else:
            limit = 10

        events = Event.find(profile, limit)

        offset = self.request.get("offset")

        if len(offset) == 5:
            sign = offset[0:1]
            hours = int(offset[1:3])
            minutes = int(offset[3:5])

            offset_seconds = hours * 3600 + minutes * 60
            if sign == "-":
                offset_seconds *= -1
        else:
            offset_seconds = 0

        format = "%-16s %-30s %-s\n"
        self.response.out.write(format % ("Date", "Source", "Message"))
        self.response.out.write("------------------------------------------------------------------------\n")
        for event in events:

            event_date  = event.received + timedelta(seconds=offset_seconds)
            event_date = event_date.strftime("%b %d %I:%M %p")

            message_for_display = event.message.replace("\n", " ")

            self.response.out.write(format % (event_date, event.source,
                                              message_for_display))
示例#6
0
  def get(self):
    self.filepath = os.path.dirname(__file__)
    self.user = users.get_current_user()

    if not self.user:
      self.redirect(users.create_login_url(self.request.uri))

    template_data = {
      "app_id": os.environ['APPLICATION_ID'],
      "page_title": "Settings",
      "user": self.user,
      "logout_url": create_logout_url("/"),
      "profile": ProfileManager.findByUser(self.user)
      }

    template = jinja_environment.get_template('templates/settings.html')
    self.response.out.write(template.render(template_data))
示例#7
0
    def receive(self, message):
        token = None

        # the recipient address is determined by the url, not the
        # content of the email message.
        received_at = self.request.path.split("/")[-1]
        token = received_at.split("@")[0]

        profile = ProfileManager.findByToken(token)

        if not profile:
            self.response.out.write("NO PROFILE")
            logging.info("Profile not found")
            return

        announcement = Announcement(type="email", params={"message": message,
                                                          "profile": profile})
        announcement.send()

        self.response.set_status(200)
        self.response.out.write("OK")