slidge.group.participant
#
Module Contents#
Classes#
A legacy participant of a legacy group chat. |
- class slidge.group.participant.LegacyParticipant(muc, nickname=None, is_user=False, is_system=False, role='participant', affiliation='member')#
A legacy participant of a legacy group chat.
- Parameters:
muc (slidge.group.room.LegacyMUC) –
nickname (Optional[str]) –
role (slidge.util.types.MucRole) –
affiliation (slidge.util.types.MucAffiliation) –
- send_initial_presence(full_jid, nick_change=False, presence_id=None)#
Called when the user joins a MUC, as a mechanism to indicate to the joining XMPP client the list of “participants”.
Can be called this to trigger a “participant has joined the group” event.
- Parameters:
full_jid (slixmpp.JID) – Set this to only send to a specific user XMPP resource.
nick_change – Used when the user joins and the MUC renames them (code 210)
presence_id (Optional[str]) – set the presence ID. used internally by slidge
- leave()#
Call this when the participant leaves the room
- kick()#
Call this when the participant is kicked from the room
- ban()#
Call this when the participant is banned from the room
- online(status=None, last_seen=None)#
Send an “online” presence from this contact to the user.
- Parameters:
status (Optional[str]) – Arbitrary text, details of the status, eg: “Listening to Britney Spears”
last_seen (Optional[datetime.datetime]) – For XEP-0319
- away(status=None, last_seen=None)#
Send an “away” presence from this contact to the user.
This is a global status, as opposed to
LegacyContact.inactive()
which concerns a specific conversation, ie a specific “chat window”- Parameters:
status (Optional[str]) – Arbitrary text, details of the status, eg: “Gone to fight capitalism”
last_seen (Optional[datetime.datetime]) – For XEP-0319
- extended_away(status=None, last_seen=None)#
Send an “extended away” presence from this contact to the user.
This is a global status, as opposed to
LegacyContact.inactive()
which concerns a specific conversation, ie a specific “chat window”- Parameters:
status (Optional[str]) – Arbitrary text, details of the status, eg: “Gone to fight capitalism”
last_seen (Optional[datetime.datetime]) – For XEP-0319
- busy(status=None, last_seen=None)#
Send a “busy” (ie, “dnd”) presence from this contact to the user,
- Parameters:
status (Optional[str]) – eg: “Trying to make sense of XEP-0100”
last_seen (Optional[datetime.datetime]) – For XEP-0319
- offline(status=None, last_seen=None)#
Send an “offline” presence from this contact to the user.
- Parameters:
status (Optional[str]) – eg: “Trying to make sense of XEP-0100”
last_seen (Optional[datetime.datetime]) – For XEP-0319
- invite_to(muc, reason=None, password=None, **send_kwargs)#
Send an invitation to join a group (XEP-0249) from this XMPP Entity.
- Parameters:
muc (slidge.group.LegacyMUC) – the muc the user is invited to
reason (Optional[str]) – a text explaining why the user should join this muc
password (Optional[str]) – maybe this will make sense later? not sure
send_kwargs – additional kwargs to be passed to _send() (internal use by slidge)
- active(**kwargs)#
Send an “active” chat state (XEP-0085) from this XMPP Entity.
- composing(**kwargs)#
Send a “composing” (ie “typing notification”) chat state (XEP-0085) from this XMPP Entity.
- paused(**kwargs)#
Send a “paused” (ie “typing paused notification”) chat state (XEP-0085) from this XMPP Entity.
- inactive(**kwargs)#
Send an “inactive” (ie “contact has not interacted with the chat session interface for an intermediate period of time”) chat state (XEP-0085) from this XMPP Entity.
- gone(**kwargs)#
Send a “gone” (ie “contact has not interacted with the chat session interface, system, or device for a relatively long period of time”) chat state (XEP-0085) from this XMPP Entity.
- ack(legacy_msg_id, **kwargs)#
Send an “acknowledged” message marker (XEP-0333) from this XMPP Entity.
- Parameters:
legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to
- received(legacy_msg_id, **kwargs)#
Send a “received” message marker (XEP-0333) from this XMPP Entity. If called on a
LegacyContact
, also send a delivery receipt marker (XEP-0184).- Parameters:
legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to
- displayed(legacy_msg_id, **kwargs)#
Send a “displayed” message marker (XEP-0333) from this XMPP Entity.
- Parameters:
legacy_msg_id (slidge.util.types.LegacyMessageType) – The message this marker refers to
- send_text(body, legacy_msg_id=None, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction=False, correction_event_id=None, link_previews=None, **send_kwargs)#
Send a text message from this XMPP Entity.
- Parameters:
body (str) – Content of the message
legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) – If you want to be able to transport read markers from the gateway user to the legacy network, specify this
when (Optional[datetime.datetime]) – when the message was sent, for a “delay” tag (XEP-0203)
reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)
hints (Optional[Iterable[slidge.util.types.ProcessingHint]]) –
thread (Optional[slidge.util.types.LegacyThreadType]) –
carbon – (only used if called on a
LegacyContact
) Set this toTrue
if this is actually a message sent to theLegacyContact
by the User. Use this to synchronize outgoing history for legacy official apps.correction – whether this message is a correction or not
correction_event_id (Optional[slidge.util.types.LegacyMessageType]) – in the case where an ID is associated with the legacy ‘correction event’, specify it here to use it on the XMPP side. If not specified, a random ID will be used.
link_previews (Optional[list[slidge.util.types.LinkPreview]]) – A little of sender (or server, or gateway)-generated previews of URLs linked in the body.
archive_only – (only in groups) Do not send this message to user, but store it in the archive. Meant to be used during
MUC.backfill()
- correct(legacy_msg_id, new_text, *, when=None, reply_to=None, thread=None, hints=None, carbon=False, archive_only=False, correction_event_id=None, link_previews=None, **send_kwargs)#
Modify a message that was previously sent by this XMPP Entity.
Uses last message correction (XEP-0308)
- Parameters:
new_text (str) – New content of the message
legacy_msg_id (slidge.util.types.LegacyMessageType) – The legacy message ID of the message to correct
when (Optional[datetime.datetime]) – when the message was sent, for a “delay” tag (XEP-0203)
reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)
hints (Optional[Iterable[slidge.util.types.ProcessingHint]]) –
thread (Optional[slidge.util.types.LegacyThreadType]) –
carbon – (only in 1:1) Reflect a message sent to this
Contact
by the user. Use this to synchronize outgoing history for legacy official apps.archive_only – (only in groups) Do not send this message to user, but store it in the archive. Meant to be used during
MUC.backfill()
correction_event_id (Optional[slidge.util.types.LegacyMessageType]) – in the case where an ID is associated with the legacy ‘correction event’, specify it here to use it on the XMPP side. If not specified, a random ID will be used.
link_previews (Optional[list[slidge.util.types.LinkPreview]]) – A little of sender (or server, or gateway)-generated previews of URLs linked in the body.
- react(legacy_msg_id, emojis=(), thread=None, **kwargs)#
Send a reaction (XEP-0444) from this XMPP Entity.
- Parameters:
legacy_msg_id (slidge.util.types.LegacyMessageType) – The message which the reaction refers to.
emojis (Iterable[str]) – An iterable of emojis used as reactions
thread (Optional[slidge.util.types.LegacyThreadType]) –
- retract(legacy_msg_id, thread=None, **kwargs)#
Send a message retraction (XEP-0424) from this XMPP Entity.
- Parameters:
legacy_msg_id (slidge.util.types.LegacyMessageType) – Legacy ID of the message to delete
thread (Optional[slidge.util.types.LegacyThreadType]) –
- async send_file(file_path=None, legacy_msg_id=None, *, data_stream=None, data=None, file_url=None, file_name=None, content_type=None, reply_to=None, when=None, caption=None, legacy_file_id=None, thread=None, **kwargs)#
Send a single file from this XMPP Entity.
- Parameters:
file_path (Optional[Union[pathlib.Path, str]]) – Path to the attachment
data_stream (Optional[IO[bytes]]) – Alternatively, a stream of bytes (such as a File object)
data (Optional[bytes]) – Alternatively, a bytes object
file_url (Optional[str]) – Alternatively, a URL
file_name (Optional[str]) – How the file should be named.
content_type (Optional[str]) – MIME type, inferred from filename if not given
legacy_msg_id (Optional[slidge.util.types.LegacyMessageType]) – If you want to be able to transport read markers from the gateway user to the legacy network, specify this
reply_to (Optional[slidge.util.types.MessageReference]) – Quote another message (XEP-0461)
when (Optional[datetime.datetime]) – when the file was sent, for a “delay” tag (XEP-0203)
caption (Optional[str]) – an optional text that is linked to the file
legacy_file_id (Optional[Union[str, int]]) – A unique identifier for the file on the legacy network. Plugins should try their best to provide it, to avoid duplicates.
thread (Optional[slidge.util.types.LegacyThreadType]) –
- Return type: