From ca0458f3281e01dddc2ec8ca39f945ccddc679bf Mon Sep 17 00:00:00 2001 From: Richard Mwewa <74001397+rly0nheart@users.noreply.github.com> Date: Sat, 5 Aug 2023 23:48:23 +0200 Subject: [PATCH] Update and rename main.py to __main.py Refactored and added doc strings to code. --- reddit_post_scraping_tool/main.py | 13 ------------- rpst/__main.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 13 deletions(-) delete mode 100644 reddit_post_scraping_tool/main.py create mode 100644 rpst/__main.py diff --git a/reddit_post_scraping_tool/main.py b/reddit_post_scraping_tool/main.py deleted file mode 100644 index d10d189..0000000 --- a/reddit_post_scraping_tool/main.py +++ /dev/null @@ -1,13 +0,0 @@ -from reddit_post_scraping_tool.reddit_post_scraping_tool import * - - -def main(): - try: - check_updates("1.3.0.1") - reddit_post_scraper() - except KeyboardInterrupt: - log.warning(f"User interruption detected.") - except Exception as e: - log.error(e) - finally: - log.info(f'Finished in {datetime.now() - start_time} seconds.') diff --git a/rpst/__main.py b/rpst/__main.py new file mode 100644 index 0000000..4b28fb6 --- /dev/null +++ b/rpst/__main.py @@ -0,0 +1,30 @@ +from datetime import datetime +from rpst.__rpst import log, start_scraper, check_updates, create_parser + + +def run(): + """ + Main entry point for the program. It creates a parser, parses the command line arguments, + checks for updates, starts the scraper, and handles any exceptions that occur during the execution. + """ + + # Create a parser and parse the command line arguments + parser = create_parser() + args = parser.parse_args() + + # Record the start time + start_time = datetime.now() + + try: + # Check for updates + check_updates(version_tag="1.4.0.0") + + # Start the scraper with the parsed arguments + start_scraper(keyword=args.keyword, subreddit=args.subreddit, + listing=args.listing, timeframe=args.timeframe, limit=args.limit) + except KeyboardInterrupt: + log.warning("User interruption detected.") + except Exception as e: + log.error(f"An error occurred: {e}") + finally: + log.info(f'Finished in {datetime.now() - start_time} seconds.')