Skip to content

miniproto.invoke.build_sender_from_session

miniproto.invoke.build_sender_from_session

Section titled “miniproto.invoke.build_sender_from_session”
build_sender_from_session(config: ClientConfig, storage: SessionStorage, factory: SenderFactory | None = None, *, fresh_session_id: bool = False, server_salt_override: int | None = None, on_salt_change: Callable[[int], None] | None = None, dc_id_override: int | None = None, auth_key_override: bytes | None = None, allow_media_only: bool = False) -> RawSender

Build a sender for the session DC, or — with overrides — a media DC.

dc_id_override/auth_key_override support cross-DC media transfers: the caller supplies a per-DC auth key (created via key exchange with the target DC) without ever touching the main session’s DC or key.

Parameters:

  • config (ClientConfig) – Client transport, retry, and default-DC configuration.
  • storage (SessionStorage) – Session storage containing authorization key and DC options.
  • factory (SenderFactory | None) – Optional synchronous or asynchronous sender factory, bypassing built-in construction.
  • fresh_session_id (bool) – Compatibility flag; all built-in senders always receive a new random session ID.
  • server_salt_override (int | None) – Per-sender salt override, normally for temporary media sessions.
  • on_salt_change (Callable[[int], None] | None) – Callback receiving a newer server salt discovered by the sender.
  • dc_id_override (int | None) – Target DC for a cross-DC sender.
  • auth_key_override (bytes | None) – Key for the target DC; never persists over the main session key.
  • allow_media_only (bool) – Permit a media-only DC endpoint for a dedicated media sender.

Returns:

  • RawSender – The optional factory result or a configured :class:MTProtoSender.

Raises: