homepage_preference.py 998 B

1234567891011121314151617181920212223242526272829303132333435
  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. 'mod',
  12. 'beta',
  13. 'domain'
  14. ]
  15. DOMAIN = config('NewsHomepage.Domain', 'https://pcl.mcnews.thestack.top/', str)
  16. if not DOMAIN.endswith('/'):
  17. DOMAIN += '/'
  18. @script('PreferenceUrl')
  19. def get_preferece_url(context:'Context', *_args, **_kwargs):
  20. settings = context.setter.toProperties().get('args',{})
  21. url = DOMAIN
  22. if true_that(settings.get('LightEdition', False)):
  23. url += 'Light'
  24. args = []
  25. args.append('mod')
  26. if true_that(settings.get('SkinNewra', False)):
  27. args.append('skin=newra')
  28. if true_that(settings.get('HideTranslating', False)):
  29. args.append('not_finished=false')
  30. if len(args) > 0:
  31. url += '?' + '&'.join(args)
  32. return url