main.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. query = """
  27. INSERT INTO race_program (
  28. race_date, venue, race, start_time, utctime, state)
  29. VALUES (%s, %s, %s, %s, %s, %s)
  30. ON CONFLICT (utctime, state) DO UPDATE SET
  31. race_date = excluded.race_date,
  32. venue = excluded.venue,
  33. race = excluded.race,
  34. start_time = excluded.start_time
  35. """
  36. for venue in race_days_global:
  37. raw_data = model.get_program_data(venue.program_url)
  38. for line in raw_data:
  39. timestamp = model.convert_to_tz_aware_datetime(venue.date, line[1], venue.state)
  40. cursor.execute(query, (venue.date, venue.name, line[0], line[1], timestamp, venue.state))
  41. model.create_json(db)
  42. db.commit()
  43. cursor.close()
  44. db.close()