Пример #1
0
def start_chat(conn, username, trans=None):
    """first part of message interchange for starting a one-to-one
    conversation"""
    user = ConnectedUser.__users__.get(username)
    sender = conn.data['user']

    if sender is user:
        conn.send(UserError.startchat_cannot_chat_with_yourself(), trans)
        return

    chat = Chat()

    def callback(accepted):
        if accepted:
            conn.send(UserOk.startchat_accepted(chat.id, sender.db_tuple.name, username), trans)
        else:
            sender.exitChat(chat)
            conn.send(UserOk.startchat_not_accepted(), trans)

    if user is not None:
        sender.enterChat(chat)
        user.callIntoChat(sender, chat.id, callback)
    else:
        conn.send(UserError.user_not_connected(), trans)