コード例 #1
0
ファイル: thread.py プロジェクト: atduskgreg/wire
 def load(self, key):
     self.messages = []
     self.key = key
     message_keys = self.redis.lrange('thread:%s:messages' % key, 0, -1)
     self._update_recipients()
     data = self.redis.get('thread:%s:data' % key)
     if not data:
         raise ThreadError("Thread %s data doesn't exist." % self.key)
     data = json.loads(data)
     self.subject = data['subject']
     self.encrypted = data['encrypted']
     if self.encrypted:
         self.decrypted = False
     for message_key in message_keys:
         m = Message(redis=self.redis, user=self.user)
         try:
             m.load(message_key)
         except MessageError:
             pass
         self.messages.append(m)
     if len(self.messages) < 1:
         self.delete()
         raise DestroyedThreadError
     try:
         self.sender = self.messages[0].data['sender']
     except KeyError:
         self.delete_message(self.messages[0])
コード例 #2
0
ファイル: __init__.py プロジェクト: atduskgreg/wire
def delete_message(message_id, thread_id):
    if request.method == "POST":
        t = Thread(redis=g.r, user=g.user)
        t.load(thread_id)
        m = Message(redis=g.r, user=g.user, key=message_id)
        m.load()
        if g.r.get("username:%s" % m.sender.username) != g.user.key:
            abort(401)
        t.delete_message(m)
        flash(u"Message deleted", "success")
        return redirect(url_for("view_thread", thread_id=thread_id))
    else:
        return render_template(
            "confirm.html",
            _message="Are you sure you want to delete this message?",
            _ok=url_for("delete_message", thread_id=thread_id, message_id=message_id),
            _cancel=url_for("view_thread", thread_id=thread_id),
        )