__main__.py 3.3 KB

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