homepage_preference.py 978 B

12345678910111213141516171819202122232425262728293031323334
  1. from homepagebuilder.interfaces import script, config
  2. from homepagebuilder.core.types import Context
  3. def true_that(obj:str):
  4. if isinstance(obj, bool):
  5. return obj
  6. if isinstance(obj, str):
  7. return obj.lower() == 'true'
  8. PREFERENCE_LIST=[
  9. 'skin',
  10. 'not_finished',
  11. 'beta',
  12. 'domain'
  13. ]
  14. DOMAIN = config('NewsHomepage.Domain', 'https://pcl.mcnews.thestack.top/', str)
  15. if not DOMAIN.endswith('/'):
  16. DOMAIN += '/'
  17. @script('PreferenceUrl')
  18. def get_preferece_url(context:'Context', *_args, **_kwargs):
  19. settings = context.setter.toProperties()
  20. url = DOMAIN
  21. if true_that(settings.get('LightEdition', False)):
  22. url += 'Light'
  23. args = []
  24. args.append('beta=true')
  25. if true_that(settings.get('SkinNewra', False)):
  26. args.append('skin=newra')
  27. if true_that(settings.get('HideTranslating', False)):
  28. args.append('not_finished=false')
  29. if len(args) > 0:
  30. url += '?' + '&'.join(args)
  31. return url