A copyright violation detector running on Wikimedia Cloud Services https://tools.wmflabs.org/copyvios/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

55 lines
1.7 KiB

  1. # -*- coding: utf-8 -*-
  2. from flask import g
  3. from markupsafe import escape
  4. from .cookies import set_cookie, delete_cookie
  5. from .misc import Query
  6. def process_settings():
  7. query = Query(method="POST")
  8. if query.action == "set":
  9. status = _do_set(query)
  10. elif query.action == "delete":
  11. status = _do_delete(query)
  12. else:
  13. status = None
  14. return status
  15. def _do_set(query):
  16. cookies = g.cookies
  17. changes = set()
  18. if query.lang:
  19. key = "CopyviosDefaultLang"
  20. if key not in cookies or cookies[key].value != query.lang:
  21. set_cookie(key, query.lang, 1095)
  22. changes.add("site")
  23. if query.project:
  24. key = "CopyviosDefaultProject"
  25. if key not in cookies or cookies[key].value != query.project:
  26. set_cookie(key, query.project, 1095)
  27. changes.add("site")
  28. if query.background:
  29. key = "CopyviosBackground"
  30. if key not in cookies or cookies[key].value != query.background:
  31. set_cookie(key, query.background, 1095)
  32. delete_cookie("EarwigBackgroundCache")
  33. changes.add("background")
  34. if changes:
  35. changes = ", ".join(sorted(list(changes)))
  36. return "Updated {0}.".format(changes)
  37. return None
  38. def _do_delete(query):
  39. cookies = g.cookies
  40. if query.cookie in cookies:
  41. delete_cookie(query.cookie.encode("utf8"))
  42. template = u'Deleted cookie <b><span class="mono">{0}</span></b>.'
  43. return template.format(escape(query.cookie))
  44. elif query.all:
  45. number = len(cookies)
  46. for cookie in cookies.values():
  47. delete_cookie(cookie.key)
  48. return "Deleted <b>{0}</b> cookies.".format(number)
  49. return None