[discord.py] サーバー内チャンネルのリスト

Discord でのBot作成をまたやり始めて、今度はpython でBotを作っています。

躓いたところがあったのですが、自力で発見出来たので備忘録として残してます。

環境
python 3.8.8 64-bit
discord.py 1.7.1

タイトルどおり、Botが入っているサーバーのチャンネルで、

from discord.ext import commands
bot = commands.Bot(command_prefix='$')

@bot.command()
async def cln(ctx):
       AllList = ctx.guild.text_channels

とすることで、AllList の変数には、guild.text_channels で、サーバー内の全てのテキストチャンネル情報がリストとして入る。(id はわかりやすいよう置き換えてます)

[<TextChannel id=*** name='一般' position=0 nsfw=False news=False category_id=????>,
<TextChannel id=*** name='twitterメモ' position=1 nsfw=False news=False category_id=????>]

ただ、リストの1つの要素にそのテキストチャンネルのすべての情報が入っていてこのままでは扱いづらい。

print(AllList[0].name)
print(AllList[0].category_id)
print(AllList[0].id)

と、リストの1つ目の要素であるAllList[0] について、テキストチャンネル名やIDを抽出したいのであれば、AllList[0].name のように、.name と続けてやれば、

一般
????
***

のように抽出できる。




noteの内容に共感していただければ、ぜひともサポートを宜しくお願いします。今後の記事投稿の励みになります。