不具合と対処
Discordのチャットを読み上げるbotの作成の記事を見てbotを作成したところ、サーバーのカスタム絵文字の読み上げの際にemojiのIDを読み上げてしまう不具合が発生したので以下のように対処しました。
import re
def remove_custom_emoji(text):
pattern = r'<:[a-zA-Z0-9_]+:[0-9]+>' # カスタム絵文字のパターン
return re.sub(pattern,'',text) # 置換処理
解説
カスタム絵文字はmessage.content
で<:emoji_name:emoji_id>
という形式になっています。
それを取り除くパターンを作成しre.sub()
に渡し、マッチした部分を空白に置換することでカスタム絵文字を除去しています。
もっと正確なパターンがありましたらコメントのほうによろしくお願いします
参考
Pythonで複数の文字列を削除したい ー re.subを使う
Discord Bot Portal JPのみなさん(Twitter)