gamification.py 896 B

123456789101112131415161718192021222324252627282930313233343536
  1. import time
  2. import random
  3. import json
  4. from pms import random_objects
  5. class HitList:
  6. @classmethod
  7. def deriveUserRanking(cls, user):
  8. #
  9. # generate ranking for user
  10. #
  11. # waiting delay
  12. time.sleep(3)
  13. rank_categories = [
  14. 'daily',
  15. 'weekly',
  16. 'monthly',
  17. 'annual',
  18. ]
  19. # generate ranking topics
  20. objects = random_objects()
  21. rank_topics = random.sample(objects, random.randrange(10)) if objects else [f'Ranking Topic {_+1}' for _ in range(3)]
  22. # generate and return random ranking
  23. return {category: [
  24. {
  25. 'name': f'{category} {topic}'.title(),
  26. 'operations': random.randrange(10000),
  27. 'rank': random.randrange(100),
  28. } for topic in rank_topics
  29. ] for category in rank_categories}