Example #1
0
def get_chat_messages_data(game_id: int, oldest_id: int, newest_id: int,
                           newer_messages: bool):
    older_message = Message.get_or_none((Message.game == game_id)
                                        & (Message.id < oldest_id))
    has_older_message = older_message is not None

    MESSAGE_LIMIT = 20
    if newer_messages:
        messages = Message.select().where((Message.game == game_id) & (Message.id > newest_id)).order_by(-Message.id)\
            .limit(MESSAGE_LIMIT).execute()
    else:
        messages = Message.select().where((Message.game == game_id) & (Message.id < oldest_id)).order_by(-Message.id)\
            .limit(MESSAGE_LIMIT).execute()

    # Note: oldest_id and newest_id could be -1 when frontend has no messages at all

    if len(messages):  # Needed for when newer_messages is False
        oldest_id_in_query = messages[0].id
        has_older_message = Message.get_or_none(
            (Message.game == game_id)
            & (Message.id < oldest_id_in_query))
        has_older_message = has_older_message is not None

    reversed_messages = [
        messages[len(messages) - i - 1] for i in range(len(messages))
    ]
    return reversed_messages, has_older_message
Example #2
0
def my_timeline():
    	user = get_session_user()
	assert user is not None
    	messages = Message.select().where(
        	Message.user == user
    	)
    	return object_list('my_messages.html', messages, 'message_list')
Example #3
0
def private_timeline():
    	# the private timeline exemplifies the use of a subquery -- we are asking for
    	# messages where the person who created the message is someone the current
    	# user is following.  these messages are then ordered newest-first.
    	user = get_session_user()
	assert user is not None
    	messages = Message.select().where(
        	Message.user << user.following()
    	)
    	return object_list('private_messages.html', messages, 'message_list')
Example #4
0
def show_db_message_table():
    # creating HTML table from dict
    messages = {}
    query = Message.select().dicts()
    msg_id = 0
    for row in query:
        messages[msg_id] = row
        msg_id += 1
    df = pd.DataFrame(data=messages)
    df = df.fillna(' ').T
    resp = df.to_html()
    return resp
Example #5
0
def receive_message(hug_token, after_msg_id: hug.types.number):
    token = Token.get(Token.token == hug_token)
    return Message.select().where(Message.token == token,
                                  Message.reply_to != None,
                                  Message.id > after_msg_id).dicts()
Example #6
0
def public_timeline():
    	# simply display all messages, newest first
    	messages = Message.select()
    	return object_list('public_messages.html', messages, 'message_list')