Bytes Separated Values Coder

exception telegram_bot_discussion.ext.coder.bsv_coder.InvalidType(var)[source]

Bases: Exception

Parameters:

var (Any)

Return type:

None

var: Any
exception telegram_bot_discussion.ext.coder.bsv_coder.NoneIsNotNone(data)[source]

Bases: Exception

Parameters:

data (Any)

Return type:

None

data: Any
exception telegram_bot_discussion.ext.coder.bsv_coder.IntIsNone[source]

Bases: Exception

Return type:

None

exception telegram_bot_discussion.ext.coder.bsv_coder.InvalidTypePrefix(prefix)[source]

Bases: Exception

Parameters:

prefix (Any)

Return type:

None

prefix: Any
class telegram_bot_discussion.ext.coder.bsv_coder.BSV_Coder(secret)[source]

Bases: CoderInterface

Bytes Separated Values Coder serialize data with type-special byte-delimiter:

  • x00 - None prefix;

  • x01 - int prefix;

  • x02 - str prefix.

Remember about native Telegram callback query data length limit (64 bytes).

Data deserialization relies on the preceding type-special byte delimiter.

Parameters:

secret (str)

secret: str

Secret string is used for making digital signature of data.

Type:

str

serialize(*args)[source]
Return type:

str

Parameters:

args (int | str | None)

deserialize(data)[source]
Return type:

List[Union[int, str, None]]

Parameters:

data (str)

get_signature(chat_id, serialized_data, sender_id)[source]
Return type:

str

Parameters:
  • chat_id (int)

  • serialized_data (str)

  • sender_id (int)

sign(signature, serialized_data)[source]
Return type:

str

Parameters:
  • signature (str)

  • serialized_data (str)

extract_signature_and_serialized_data(signed_serialized_data)[source]
Return type:

Tuple[str, str]

Parameters:

signed_serialized_data (str)

extract_signature_and_deserialized_data(signed_serialized_data)[source]
Return type:

Tuple[str, List[Union[int, str, None]]]

Parameters:

signed_serialized_data (str)