def test_provider_info(): provider = lib.dc_provider_new_from_email(cutil.as_dc_charpointer("*****@*****.**")) assert cutil.from_dc_charpointer( lib.dc_provider_get_overview_page(provider) ) == "https://providers.delta.chat/example.com" assert cutil.from_dc_charpointer(lib.dc_provider_get_name(provider)) == "Example" assert cutil.from_dc_charpointer(lib.dc_provider_get_markdown(provider)) == "\n..." assert cutil.from_dc_charpointer(lib.dc_provider_get_status_date(provider)) == "2018-09" assert lib.dc_provider_get_status(provider) == const.DC_PROVIDER_STATUS_PREPARATION
def test_get_info_closed(): ctx = ffi.gc( lib.dc_context_new(lib.py_dc_callback, ffi.NULL, ffi.NULL), lib.dc_context_unref, ) info = cutil.from_dc_charpointer(lib.dc_get_info(ctx)) assert 'deltachat_core_version' in info assert 'database_dir' not in info
def test_get_info_open(tmpdir): db_fname = tmpdir.join("test.db") ctx = ffi.gc( lib.dc_context_new(ffi.NULL, db_fname.strpath.encode("ascii"), ffi.NULL), lib.dc_context_unref, ) info = cutil.from_dc_charpointer(lib.dc_get_info(ctx)) assert 'deltachat_core_version' in info assert 'database_dir' in info
def perform(self) -> None: logger = self.bot.logger logger.debug("CheckAll perform-loop start") for msg_id in self.db.get_msgs(): try: message = self.bot.account.get_message_by_id(msg_id) sender = message.get_sender_contact() if sender != self.bot.self_contact: message.mark_seen() encrinfo = from_dc_charpointer( lib.dc_get_contact_encrinfo( self.bot.account._dc_context, sender.id, ) ) can_encrypt = encrinfo.splitlines()[0].lower() != "no encryption." else: can_encrypt = True if message.is_encrypted() or can_encrypt: replies = Replies(message, logger=logger) logger.info("processing incoming fresh message id=%s", message.id) if message.is_system_message(): self.handle_system_message(message, replies) elif not message.get_sender_contact().is_blocked(): if message.is_bot(): self.bot.plugins.hook.deltabot_incoming_bot_message( message=message, bot=self.bot, replies=replies ) else: self.bot.plugins.hook.deltabot_incoming_message( message=message, bot=self.bot, replies=replies ) replies.send_reply_messages() else: logger.info( "ignoring message (id=%s) without autocrypt support", msg_id ) logger.info("processing message id=%s FINISHED", msg_id) except Exception as ex: logger.exception("processing message=%s failed: %s", msg_id, ex) self.db.pop_msg(msg_id) logger.debug("CheckAll perform-loop finish")
def _send_diffusion(bot: DeltaBot, message: Message, chats: list) -> None: log = "diffusion: id={} chat={} sent with text: {!r}" text = message.text if lib.dc_msg_has_html(message._dc_msg): html = from_dc_charpointer( lib.dc_get_msg_html(bot.account._dc_context, message.id)) else: html = None filename = message.filename quote = message.quote sender = _get_name(message.get_sender_contact()) replies = Replies(message, logger=bot.logger) for chat in chats: replies.add(text=text, html=html, sender=sender, quote=quote, filename=filename, viewtype=message._view_type, chat=chat) try: replies.send_reply_messages() except ValueError as err: bot.logger.exception(err)