1
0
Fork 0
mirror of https://github.com/deltachat/deltachat-core.git synced 2025-10-05 02:29:28 +02:00

add sending timestamp

This commit is contained in:
holger krekel 2018-09-25 12:53:36 +02:00
parent 5fcbc11bf3
commit 68900edfbc
2 changed files with 32 additions and 1 deletions

View file

@ -3,6 +3,7 @@
from .cutil import as_dc_charpointer, from_dc_charpointer, iter_array
from .capi import lib, ffi
from .types import property_with_doc
from datetime import datetime
import attr
from attr import validators as v
@ -184,9 +185,18 @@ class Message(object):
@property_with_doc
def text(self):
"""unicode representation. """
"""unicode text of this messages. """
return from_dc_charpointer(lib.dc_msg_get_text(self._dc_msg))
@property_with_doc
def time_sent(self):
"""time when the message was sent.
:returns: datetime.datetime() object.
"""
ts = lib.dc_msg_get_timestamp(self._dc_msg)
return datetime.fromtimestamp(ts)
@property
def chat(self):
"""chat this message was posted in.
@ -196,6 +206,14 @@ class Message(object):
chat_id = lib.dc_msg_get_chat_id(self._dc_msg)
return Chat(self._dc_context, chat_id)
def get_sender_contact(self):
"""return the contact of who wrote the message.
:returns: :class:`Contact`` instance
"""
contact_id = lib.dc_msg_get_from_id(self._dc_msg)
return Contact(self._dc_context, contact_id)
@attr.s
class MessageState(object):

View file

@ -1,6 +1,7 @@
from __future__ import print_function
import pytest
from deltachat.capi import lib
from datetime import datetime, timedelta
from conftest import wait_configuration_progress, wait_successful_IMAP_SMTP_connection
@ -96,6 +97,18 @@ class TestOfflineAccount:
assert not msg_state.is_out_delivered()
assert not msg_state.is_out_mdn_received()
def test_chat_message_distinctions(self, acfactory):
ac1 = acfactory.get_configured_offline_account()
contact1 = ac1.create_contact("some1@hello.com", name="some1")
chat = ac1.create_chat_by_contact(contact1)
past1s = datetime.now() - timedelta(seconds=1)
msg = chat.send_text_message("msg1")
ts = msg.time_sent
assert ts.strftime("Y")
assert past1s < ts
contact = msg.get_sender_contact()
assert contact == ac1.get_self_contact()
def test_basic_configure_ok_addr_setting_forbidden(self, acfactory):
ac1 = acfactory.get_configured_offline_account()
assert ac1.get_config("mail_pw")