code: def poll(self):
          
          if not self.status["done"]:
              r = Request("get", self.url + ".json", {"token": self.payload["token"]})
              for param, when in MessageRequest.params.iteritems():
                  self.status[param] = bool(r.answer[param])
                  self.status[when] = int(r.answer[when])
              for param in ["acknowledged_by", "acknowledged_by_device"]:
                  self.status[param] = r.answer[param]
              self.status["last_delivered_at"] = int(r.answer["last_delivered_at"])
              if any(self.status[param] for param in MessageRequest.params):
                  self.status["done"] = True
          return self.status["done"]
docs: If the message request has a priority of 2, Pushover keeps sending
          the same notification until the client acknowledges it. Calling the
          :func:`poll` function fetches the status of the :class:`MessageRequest`
          object until the notifications either expires, is acknowledged by the
          client, or the callback url is reached. The status is available in the
          ``status`` dictionary.
  
          Returns ``True`` when the request has expired or been acknowledged and
          ``False`` otherwise so that a typical handling of a priority-2
          notification can look like this::
  
              request = p.message("Urgent!", priority=2, expire=120, retry=60)
              while not request.poll():
                  # do something
                  time.sleep(5)
  
              print request.status