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.1.tar.gz (49.0 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.1-py3-none-any.whl (49.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: deltachat2-1.0.1.tar.gz
  • Upload date:
  • Size: 49.0 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.1.tar.gz
Algorithm Hash digest
SHA256 295b1e08561bfe7b81f5b02af79b43c0a65fbc9c14a198be56873b205a412e08
MD5 3a22e8ca1b01e6a3cd81e4c90471a253
BLAKE2b-256 1ac80880a50ff5eb511cae60b508ea4ce23405943ed02898d6fdc4d48a8974b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: deltachat2-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 49.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0841737c3b43149bc4c3355a6b13bdcd66425813c919dd7b6fd85d212069b6f5
MD5 6802cce91fe33f7118e5c3864aa42801
BLAKE2b-256 9f6c2cd6a5351da5a5cba0fa2fa71bc1ebcc6bc22bbd3e8003fcc4b8be391502

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