Skip to main content

Client library for Delta Chat core JSON-RPC interface

Project description

Delta Chat client library for Python

Latest Release CI Code style: black

Client library for Delta Chat core JSON-RPC interface

Install

pip install deltachat2

To use this library, you need to have deltachat-rpc-server program installed, you can install it together with this library with:

pip install 'deltachat2[full]'

Usage

Example echo-bot written with deltachat2:

from deltachat2 import Bot, CoreEvent, IOTransport, MsgData, NewMsgEvent, Rpc, events

hooks = events.HookCollection()


@hooks.on(events.RawEvent)
def log_event(_bot: Bot, _accid: int, event: CoreEvent) -> None:
    """Log all core events for debugging."""
    print(event)


@hooks.on(events.NewMessage)
def echo(bot: Bot, accid: int, event: NewMsgEvent) -> None:
    """Echo back any text message"""
    msg = event.msg
    bot.rpc.send_msg(accid, msg.chat_id, MsgData(text=msg.text))


if __name__ == "__main__":
    with IOTransport() as trans:
        rpc = Rpc(trans)
        bot = Bot(rpc, hooks)

        accounts = rpc.get_all_account_ids()
        accid = accounts[0] if accounts else rpc.add_account()

        if not rpc.is_configured(accid):
            rpc.set_config(accid, "bot", "1")
            rpc.add_transport_from_qr(accid, "dcaccount:nine.testrun.org")

        link = rpc.get_chat_securejoin_qr_code(accid, None)
        print(f"Listening at: {link}")
        bot.run_forever()

Save the above code in a echobot.py file and run it with Python:

python echobot.py

Then write to the bot using the invite link that will be printed in the screen.

Developing bots faster ⚡

If you want to develop bots, you probably should use this library together with deltabot-cli-py, it takes away the repetitive process of creating the bot CLI and let you focus on writing your message processing logic.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deltachat2-1.0.0.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deltachat2-1.0.0-py3-none-any.whl (48.9 kB view details)

Uploaded Python 3

File details

Details for the file deltachat2-1.0.0.tar.gz.

File metadata

  • Download URL: deltachat2-1.0.0.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for deltachat2-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e781de99942109a21d885359f9bbb52131eabd9675ebc74882c240d1f00c7506
MD5 580be6345a012ed3dca10c1ff4b5a72e
BLAKE2b-256 461b4ccf053e114d38036554fae06e8f586e9eb2d31d18a6cbfcfe2af16a7839

See more details on using hashes here.

File details

Details for the file deltachat2-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: deltachat2-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 48.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for deltachat2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 455ca6049bf40ea571efe8932dbb3fa3b9c1c32c25d9b9283db0077249d4faa9
MD5 1c353c766ebfd5aa68cbfb6c93fb1a7c
BLAKE2b-256 548f1667b1f360be16162295e7d9dc85b6e170c973f0c39dfe1e2110a80948e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page