Coverage for backend / app / job_email_scraping / run_email_scraper.py: 95%

20 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-17 21:34 +0000

1"""CLI script to run the job email scraper once for a given number of days.""" 

2 

3import argparse 

4import sys 

5 

6from app.job_email_scraping.email_scraper import JobEmailScraper 

7 

8 

9def main(): 

10 parser = argparse.ArgumentParser(description="Run the job email scraper for a specified number of days.") 

11 parser.add_argument( 

12 "--days", 

13 "-d", 

14 type=float, 

15 default=1, 

16 help="Number of days to look back for emails (default: 1)", 

17 ) 

18 parser.add_argument( 

19 "--verbose", 

20 "-v", 

21 action="store_true", 

22 help="Enable verbose output", 

23 ) 

24 

25 args = parser.parse_args() 

26 

27 if args.days <= 0: 

28 print("Error: days must be a positive number") 

29 sys.exit(1) 

30 

31 print(f"Starting job email scraper for the last {args.days} day(s)...") 

32 

33 scraper = JobEmailScraper() 

34 result = scraper.run_scraping(timedelta_days=args.days) 

35 

36 if result.error_message: 

37 print(f"\nError: {result.error_message}") 

38 sys.exit(1) 

39 

40 print("\nDone!") 

41 

42 

43if __name__ == "__main__": 

44 main()