__main__.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. """Main app"""
  2. from datetime import datetime, timedelta
  3. import random
  4. import time
  5. from app import scheduler
  6. from app.api import download_resources, refill
  7. from app.database import save_resources
  8. from app.app import need_refill, max_refill_seconds, print_resources
  9. def job_check_resources(state_id, capital_id, resource_id, do_refill):
  10. """Check resources and refill if necessary"""
  11. regions = download_resources(state_id, resource_id)
  12. save_resources(state_id, regions, resource_id)
  13. print_resources(regions)
  14. if do_refill and need_refill(regions, 25):
  15. max_seconds = max_refill_seconds(regions, 25, 900)
  16. random_seconds = random.randint(0, max_seconds)
  17. random_time_delta = timedelta(seconds=random_seconds)
  18. scheduled_date = datetime.now() + random_time_delta
  19. job_id = 'refill_{}_{}'.format(capital_id, resource_id)
  20. print('refill resource: {} at {} ({} minutes)'.format(
  21. resource_id,
  22. scheduled_date,
  23. round(random_time_delta.seconds / 60)
  24. ))
  25. job = scheduler.get_job(job_id)
  26. if not job:
  27. scheduler.add_job(
  28. job_refill_resource,
  29. 'date',
  30. args=[state_id, capital_id, resource_id],
  31. id=job_id,
  32. run_date=scheduled_date
  33. )
  34. def job_refill_resource(state_id, capital_id, resource_id):
  35. """Execute refill job"""
  36. refill(state_id, capital_id, resource_id)
  37. def add_check_resources(state_id, capital_id, resource_id, do_refill, minute):
  38. """Add check resources job"""
  39. scheduler.add_job(
  40. job_check_resources,
  41. 'cron',
  42. args=[state_id, capital_id, resource_id, do_refill],
  43. id='{}_check_{}'.format(state_id, resource_id),
  44. replace_existing=True,
  45. minute=minute
  46. )
  47. if __name__ == '__main__':
  48. # jobs
  49. # job_refill_resource(2788, 4002, 0)
  50. # job_check_resources(2788, 4002, 0)
  51. add_check_resources(2788, 4003, 0, True, '0,15,30,45')
  52. add_check_resources(2788, 4003, 6, True, '0')
  53. while True:
  54. time.sleep(100)