-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Closed
💡 feature
Copy link
Description
What kind of feature are you missing? Where do you notice a shortcoming of PTB?
I want to send a message with customized MessageEntity
. At first I assumed ptb already handled the unicode -> utf-16 translation. It generally works for most texts, but turns out it will fail if there are some emojis in the message.
Describe the solution you'd like
A new class UnicodeMessageEntity
is needed. Currently I have a simple solution:
def fix_entities_offset(self):
for text, entities in zip(self.texts, self.entities):
cur_index = 0
accumulated_len = 0
for i, entity in enumerate(entities):
cur_text = text[cur_index:entity.offset]
accumulated_len += len(cur_text.encode('utf-16-le'))
cur_off = accumulated_len // 2
cur_text = text[entity.offset:entity.offset+entity.length]
accumulated_len += len(cur_text.encode('utf-16-le'))
cur_len = accumulated_len // 2 - cur_off
entities[i] = MessageEntity(offset=cur_off, length=cur_len, type=entity.type, language=entity.language)
cur_index = entity.offset + entity.length
It would be nice if this can be automatically applied when send messages, when entity object is an instance of UnicodeMessageEntity
.
Describe alternatives you've considered
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
No labels