1

率直に言うと...私はまだPythonに非常に慣れていません。私がモデレートする subreddit で指定された単一の投稿を読み取る reddit ボットがあります。応答の構文に基づいて、応答し、変数を格納します (例: コメント投稿者の名前、増分番号、既に見たもの)。

reddit がタイムアウトするか、500/504 エラーが発生した場合、ボットはその変数をリセットします。次に投稿が正常に読み込まれると、すべてのユーザー コメントが新しいものとして扱われ、再度返信されます。

さらに、インターネットを一時的に切断してこれをテストしました。再接続するとすぐに、ボットは同じことを行います。

ボットを待機させ、既存の投稿を見て応答したことを覚えておく方法はありますか?

これについての助けは大歓迎です、ありがとう。

私のすべての検索とブラウジングについて、これは私が思いついたのと同じくらいです(繰り返しますが、これは初めてです):

except(IOError):
    time.sleep(30)
    pass
4

2 に答える 2

1

1 つの方法は、インターネット アクセス コードを try-catch ブロックでラップすることです。ページのフェッチが失敗した場合は、現在のループをスキップして次の反復を続行します

疑似コード:

while True:
  content = None
  try:
    content = fetch_content # might have error
  except:
    continue
  # do reply logic

  sleep(5)
于 2014-03-22T05:20:35.307 に答える
0

投稿を記憶させようとしている場合は、ユーザーの投稿に返信/表示したら、これをコードのどこかに追加できます

posts = dict()
# some code reading or replying to the comments
posts.setdefault(user, []).append(post) # get posts[user] if it exists, if not create it with a list value, then append the post.
# some of your other code to check if it's in the dictionary

多分のように

for post in posts:
    ...
于 2014-03-22T05:24:28.250 に答える