main.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # import psycopg2.extras
  2. # import datetime
  3. import model
  4. from pprint import pprint
  5. import time
  6. # pwd
  7. import database
  8. import sys
  9. # import view
  10. if __name__ == '__main__':
  11. row = -1
  12. if len(sys.argv) > 1:
  13. try:
  14. row = int(sys.argv[1])
  15. except ValueError:
  16. sys.exit(1)
  17. broadcast = True
  18. if len(sys.argv) > 2:
  19. broadcast = False
  20. start = time.time()
  21. db = database.db
  22. cursor = db.cursor()
  23. race_days_global = model.scrape_main_page()
  24. pprint(race_days_global)
  25. # model.setup_database()
  26. for venue in race_days_global:
  27. raw_data = model.get_program_data(venue.program_url)
  28. for line in raw_data:
  29. query = """
  30. INSERT INTO race_program (
  31. race_date, venue, race, start_time, utctime, state)
  32. VALUES (%s, %s, %s, %s, %s, %s)
  33. ON CONFLICT (utctime) DO UPDATE SET
  34. race_date = excluded.race_date,
  35. venue = excluded.venue,
  36. race = excluded.race,
  37. start_time = excluded.start_time,
  38. state = excluded.state
  39. """
  40. timestamp = model.convert_to_tz_aware_datetime(venue.date, line[1], venue.state)
  41. cursor.execute(query, (venue.date, venue.name, line[0], line[1], timestamp, venue.state))
  42. model.create_json(db)
  43. db.commit()
  44. cursor.close()
  45. db.close()