Skip to content

angee.messaging.session

Worker-only live channel ingestion.

This module imports :mod:angee.integrate.session, whose worker loop imports qrcode. The console must never load either worker module; console-safe backend declarations stay in :mod:angee.messaging.backends, mirroring the integrate.live / integrate.session split.

INGEST_CHUNK

Messages per drain slice so cooperative-stop and lock checks stay responsive.

API_TIMEOUT_SECONDS

Maximum wait for one bounded asyncio vendor API operation.

DOWNLOAD_TIMEOUT_SECONDS

Maximum task-thread wait for one vendor-loop media download.

INITIAL_HISTORY_TIMEOUT_SECONDS

Wall-clock bound for a live channel's first bounded history seed.

INITIAL_HISTORY_LIMIT

Global maximum number of messages in a live channel's first history seed.

INITIAL_CONVERSATION_LIMIT

Maximum recent conversations considered by a first history seed.

LiveChannelSession

python
class LiveChannelSession(LiveSession)

Live worker session that owns queued message media resolution and landing.

AsyncioLiveSession

python
class AsyncioLiveSession(LiveChannelSession, ABC)

Live channel session whose vendor asyncio loop owns its connection thread.

This deliberately refines :class:LiveChannelSession, not integrate's LiveSession: the asyncio frame currently has only messaging-channel consumers; a non-messaging asyncio bridge would lift it to integrate.

request_password_async

python
async def request_password_async(
        message: str = "",
        *,
        material_key: str = "password",
        optional: bool = False) -> str | PasswordSkipped | None

Wait for transient operator input without blocking the vendor loop.

Released under the AGPL-3.0 License.