__main__.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. """Main app"""
  2. import time
  3. from app import scheduler, LOGGER
  4. from app.api import get_professors
  5. from app.database import get_latest_professor, save_professors
  6. def job_update_department(state_id, department_type):
  7. """Update department professors"""
  8. LOGGER.info('"%s": Run update for "%s" department for state', state_id, department_type)
  9. latest_professor = get_latest_professor(state_id, department_type)
  10. date = None
  11. if latest_professor:
  12. date = latest_professor.date_time
  13. professors = get_professors(state_id, department_type, date)
  14. LOGGER.info(
  15. '"%s": Found "%s" new professors in "%s" department',
  16. state_id, len(professors), department_type
  17. )
  18. # print_professors(professors)
  19. save_professors(state_id, department_type, professors)
  20. LOGGER.info('"%s": saved professors', state_id)
  21. def print_professors(professors):
  22. """Print professors"""
  23. for professor in professors:
  24. print('{:30} {:2} {:>25}'.format(
  25. professor['name'],
  26. professor['points'],
  27. professor['date_time'].strftime('%d %B %Y %H:%M'),
  28. ))
  29. def add_update_department(state_id, department_type):
  30. """Add jobs"""
  31. scheduler.add_job(
  32. job_update_department,
  33. 'cron',
  34. args=[state_id, department_type],
  35. id='{}_{}'.format(state_id, department_type),
  36. replace_existing=True,
  37. hour='20'
  38. )
  39. if __name__ == '__main__':
  40. # jobs
  41. # job_update_department(2788, 2)
  42. # VN
  43. # uranium
  44. add_update_department(2788, 6)
  45. # gold
  46. add_update_department(2788, 2)
  47. # construction
  48. add_update_department(2788, 1)
  49. # oil
  50. add_update_department(2788, 3)
  51. # Belgium
  52. # gold
  53. add_update_department(2604, 2)
  54. # De Provincien
  55. # gold
  56. add_update_department(2620, 2)
  57. try:
  58. while True:
  59. time.sleep(100)
  60. except KeyboardInterrupt:
  61. print('Exiting application')
  62. exit()