From c26e85aa0793a43f7f6150801c8ed965a0c9ec1d Mon Sep 17 00:00:00 2001 From: Bhupesh-V Date: Sun, 14 Jan 2024 20:29:30 +0530 Subject: [PATCH] add empty list check --- community-roundup/main.py | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/community-roundup/main.py b/community-roundup/main.py index 9c31c43..56b9cad 100644 --- a/community-roundup/main.py +++ b/community-roundup/main.py @@ -8,16 +8,18 @@ client_id = os.environ["REDDIT_CLIENT_ID"] client_secret = os.environ["REDDIT_CLIENT_SECRET"] reddit_pass = os.environ["REDDIT_PASSWORD"] username = os.environ["REDDIT_USERNAME"] -user_agent = 'Community Roundup Post' +user_agent = "Community Roundup Post" token = os.environ["GIST_TOKEN"] gist_id = os.environ["GIST_ID"] sub = "developersIndia" + def is_last_day_of_month(): today = datetime.date.today() tomorrow = today + datetime.timedelta(days=1) return tomorrow.day == 1 + def get_gist_content(gist_id): headers = { "Authorization": f"token {token}", @@ -31,6 +33,16 @@ def get_gist_content(gist_id): def get_monthly_roundup(): saved_collection_posts = json.loads(get_gist_content(gist_id)) + # filter posts for this month + saved_collection_posts = list( + filter( + lambda post: datetime.datetime.strptime( + post["created_at"], "%Y-%m-%dT%H:%M:%S" + ).month + == datetime.date.today().month, + saved_collection_posts, + ) + ) return saved_collection_posts @@ -41,15 +53,19 @@ def create_community_roundup_post(subreddit, posts): subreddit.flair.link_templates.user_selectable(), ) ) - - title = "Community Roundup: List of must read posts & discussions that happened this month - {month} {year}".format(month=datetime.date.today().strftime("%B"), year=datetime.date.today().year) + + title = "Community Roundup: List of must read posts & discussions that happened this month - {month} {year}".format( + month=datetime.date.today().strftime("%B"), year=datetime.date.today().year + ) footer_text = """\n\n +--- + **Community Roundup is posted on the last day of every month. You can find the [schedule on our events calendar](https://developersindia.in/events-calendar). To find the list of all [interesting posts & community threads, checkout our wiki](https://www.reddit.com/r/developersIndia/wiki/community-threads/).** """ posts_counter = 0 for post in posts: posts_counter += 1 - text += f"{posts_counter}. [{post['title']}]({post['url']})\n" + text += f"#### {posts_counter}. [{post['title']}]({post['url']})\n" text = text + footer_text @@ -64,23 +80,28 @@ def create_community_roundup_post(subreddit, posts): return submission + def main(): reddit = praw.Reddit( client_id=client_id, client_secret=client_secret, username=username, password=reddit_pass, - user_agent=user_agent + user_agent=user_agent, ) subreddit = reddit.subreddit(sub) if is_last_day_of_month(): posts = get_monthly_roundup() + if len(posts) == 0: + print("No posts found in the collection for this month. Skipping") + return create_community_roundup_post(subreddit, posts) print("Community Roundup post created successfully!") else: print("Skipping. Not the last day of the month") + if __name__ == "__main__": - main() \ No newline at end of file + main()