私のボットがアクセスできるすべてのチャンネルから(スクリプトが実行された日のように)今日送信されたすべてのメッセージのイテラブルを取得しようとしています。操作の.logs_from()のafter属性の値をどのようにフォーマットする必要がありますか?
それは私が私が私がそれをしたいと思い、これは行動するように見えることはできませんしかし.logs_from()
のafter
属性を使用しようとされている現状では:これはのちょうど出力リストに思える実行
import discord
import asyncio
import time
client = discord.Client()
today = time.strftime("%Y-%m-%d")
@client.event
async def on_ready():
for i in client.get_all_channels():
async for c in client.logs_from(i, after=today):
print(c.content)
client.run(INSERT_SESSION_KEY)
ボットがアクセスできるチャンネルのすべてのメッセージ。私はafter
の値のための私の入力が正しい形式ではありません、しかし、ドキュメントが単に述べていることを仮定している:
(メッセージまたは日時)の後に - すべてがメッセージを返された後、メッセージや日付がでなければなりません。日付が指定されている場合は、UTC時刻を表すタイムゾーンのない日時でなければなりません。
これは私がやっている印象の下にあったものです。
.logs_from()
のafter
属性の値を宣言する適切な方法は誰にでも分かりますか?
時間の代わりに日時オブジェクトを使用してみてください。大雑把な検索[here](https://stackoverflow.com/questions/1937622/convert-date-to-datetime-in-python)では、 'datetime.combine(date.today()、time())'を提案しています。 – squaswin
Perfect 'date.today()'だけを使って今日送られてきたメッセージが、私の必要に応じて動作するため、時刻を含む現在の時刻以降に送信されたメッセージを取得するために働きます。 –
あなたの状況に以下の情報が当てはまるかどうかは分かりません。日時は最終的には時間帯に慣れていなくてはなりませんが、おそらくあなたの入力日時は異なるタイムゾーンから来るでしょうか?その後、振り子図書館が役に立つかもしれません。 –