main.py 1.3 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. # page_loads = 0
  19. if len(sys.argv) > 2:
  20. broadcast = False
  21. start = time.time()
  22. db = database.db
  23. cursor = db.cursor()
  24. race_days_global = model.scrape_main_page()
  25. pprint(race_days_global)
  26. # model.setup_database()
  27. query = """
  28. INSERT INTO race_program (
  29. race_date, venue, race, start_time, utctime, state)
  30. VALUES (%s, %s, %s, %s, %s, %s)
  31. ON CONFLICT (utctime, state) DO UPDATE SET
  32. race_date = excluded.race_date,
  33. venue = excluded.venue,
  34. race = excluded.race,
  35. start_time = excluded.start_time
  36. """
  37. for venue in race_days_global:
  38. raw_data = model.get_program_data(venue.program_url)
  39. for line in raw_data:
  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()