From c0d035fcb4aaa5dfbce8f303ef93f3cb1aa8e405 Mon Sep 17 00:00:00 2001 From: blankie Date: Wed, 24 Aug 2022 21:41:05 +0700 Subject: [PATCH] Handle having zero new posts --- redditbot.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/redditbot.py b/redditbot.py index 0eb244c..05c76df 100644 --- a/redditbot.py +++ b/redditbot.py @@ -104,7 +104,7 @@ async def main(): random_post = await subreddit.random() cpid = cpp = None if random_post is None: - async for submission in subreddit.hot(): + async for submission in subreddit.hot(limit=None): if unique_id in give_ups: return cpid = getattr(submission, 'crosspost_parent', None) @@ -132,6 +132,9 @@ async def main(): continue random_post = submission break + if random_post is None: + return + cpid = getattr(random_post, 'crosspost_parent', None) if cpid and getattr(random_post, 'crosspost_parent_list', None): cpid = cpid[3:] @@ -165,7 +168,7 @@ async def main(): while True: unique_id = time.time() try: - random_post, cpp = await asyncio.wait_for(_get_submission(unique_id), timeout) + result = await asyncio.wait_for(_get_submission(unique_id), timeout) except asyncio.TimeoutError: give_ups.add(unique_id) logging.error('%s timed out', chat) @@ -178,6 +181,9 @@ async def main(): for i in bot_admins: await client.send_message(i, f'{chat}\n{traceback.format_exc()}') else: + if not result: + return + random_post, cpp = result try: await _actual_start_post(random_post, [chat], cpp, show_nsfw_warning, show_spoilers_warning) except BaseException: