junk.py 973 B

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import annotations
  2. import collections
  3. import typing
  4. import cache
  5. from config import config
  6. import supply
  7. def main() -> None:
  8. fio_burns: typing.Sequence[supply.FIOBurn] = cache.get('https://rest.fnar.net/fioweb/burn/user/' + config.username,
  9. headers={'Authorization': config.fio_rest_key})
  10. planets = [supply.Planet(fio_burn) for fio_burn in fio_burns]
  11. total_consumption: dict[str, float] = collections.defaultdict(float)
  12. for planet in planets:
  13. for mat, consumption in planet.net_consumption.items():
  14. if consumption > 0:
  15. total_consumption[mat] += consumption
  16. supplies: list[tuple[float, str]] = []
  17. for mat, amount in supply.warehouse_inventory().items():
  18. if (consumption := total_consumption.get(mat)) is None:
  19. supplies.append((float('inf'), mat))
  20. else:
  21. supplies.append((amount / consumption, mat))
  22. supplies.sort(reverse=True)
  23. for days, mat in supplies:
  24. print(f'{mat}: {days:.2f} d')
  25. if __name__ == '__main__':
  26. main()