__main__.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. """Main app"""
  2. import time
  3. from app import scheduler, session, LOGGER
  4. from app.api import get_citizens, get_residents, get_work_permits
  5. from app.database import get_state_regions, save_citizens, save_residents, save_work_permits
  6. def print_players(players):
  7. """Print professors"""
  8. for player in players:
  9. print('{:20} {:30} {:20} {:30}'.format(
  10. player['id'],
  11. player['name'],
  12. player['registration_date'].strftime('%d-%m-%Y'),
  13. player['nation'],
  14. ))
  15. def job_update_citizens(state_id):
  16. """Update citizens"""
  17. LOGGER.info('Run update citizens for state "%s"', state_id)
  18. regions = get_state_regions(state_id)
  19. for region in regions:
  20. LOGGER.info('"%s": get citizens', region.name)
  21. citizens = get_citizens(region.id)
  22. LOGGER.info('"%s": "%s" citizens', region.name, len(citizens))
  23. # print_players(citizens)
  24. save_citizens(region.id, citizens)
  25. LOGGER.info('"%s": done saving citizens', region.name)
  26. def job_update_residents(state_id):
  27. """Update residents"""
  28. LOGGER.info('Run update residents for state "%s"', state_id)
  29. regions = get_state_regions(state_id)
  30. for region in regions:
  31. LOGGER.info('"%s": get residents', region.name)
  32. residents = get_residents(region.id)
  33. LOGGER.info('"%s": "%s" residents ', region.name, len(residents))
  34. # print_players(residents)
  35. save_residents(region.id, residents)
  36. LOGGER.info('"%s": done saving residents', region.name)
  37. def job_update_work_permits(state_id):
  38. """Update citizens"""
  39. LOGGER.info('"%s": get work permits ', state_id)
  40. work_permits = get_work_permits(state_id)
  41. LOGGER.info('"%s": "%s" work permits', state_id, len(work_permits))
  42. print_players(work_permits)
  43. save_work_permits(state_id, work_permits)
  44. LOGGER.info('"%s": done saving work_permits', state_id)
  45. def add_update_citizens(state_id):
  46. """Add jobs"""
  47. scheduler.add_job(
  48. job_update_citizens,
  49. 'cron',
  50. args=[state_id],
  51. id='citizens_{}'.format(state_id),
  52. replace_existing=True,
  53. hour='1,3,5,7,9,11,13,15,17,19,21,23'
  54. )
  55. def add_update_residents(state_id):
  56. """Add jobs"""
  57. scheduler.add_job(
  58. job_update_residents,
  59. 'cron',
  60. args=[state_id],
  61. id='residents_{}'.format(state_id),
  62. replace_existing=True,
  63. hour='1,7,13,19'
  64. )
  65. if __name__ == '__main__':
  66. # jobs
  67. # job_update_citizens(2788)
  68. # job_update_residents(2788)
  69. job_update_work_permits(2788)
  70. # Verenigde Nederlanden
  71. add_update_citizens(2788)
  72. add_update_residents(2788)
  73. # Belgium
  74. add_update_citizens(2604)
  75. add_update_residents(2604)
  76. # De Provincien
  77. add_update_citizens(2620)
  78. add_update_residents(2620)
  79. try:
  80. while True:
  81. time.sleep(100)
  82. except KeyboardInterrupt:
  83. print('Exiting application')
  84. session.close()
  85. exit()