【discord.py】サーバー内のチャンネルを作成日順で並び替える

コード

以下はjishaku上で実行する場合の例です。
jishaku as a cog — jishaku 1.18.2 documentation

カテゴリ内で並び替え

channels = _bot.get_channel(690912236855623730).text_channels  
channels = sorted(channels, reverse=True, key=lambda c: c.created_at)  
for index, ch in enumerate(channels):  
    await ch.edit(position=index)  

指定したサーバーのチャンネルを並び替え

制約

  • 1番上のチャンネルは固定
  • topic にチャンネル作成日が記載してあるのでそれを使う
    • 2020-04-28 11:59:04.593640 のような形式
from datetime import datetime  
channels = _bot.get_guild(674500858054180874).text_channels[1:]  
channels = sorted(channels, key=lambda c: datetime.strptime(c.topic, '%Y-%m-%d %H:%M:%S.%f'))  
for index, ch in enumerate(channels):  
    await ch.edit(position=index+1)  

参考