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.
 
 
 
 
 

56 lines
1.5 KiB

  1. #! /data/project/copyvios/env/bin/python
  2. # -*- coding: utf-8 -*-
  3. from time import asctime
  4. from logging import DEBUG
  5. from logging.handlers import TimedRotatingFileHandler
  6. from flask import Flask, g, request
  7. from flask.ext.mako import MakoTemplates, render_template
  8. from flup.server.fcgi import WSGIServer
  9. from copyvios.cookies import parse_cookies
  10. app = Flask(__name__)
  11. MakoTemplates(app)
  12. app.logger.setLevel(DEBUG)
  13. app.logger.addHandler(TimedRotatingFileHandler(
  14. "logs/app.log", when="D", interval=1, backupCount=7))
  15. app.logger.info(u"Flask server started " + asctime())
  16. @app.before_request
  17. def prepare_cookies():
  18. cookie_string = request.environ.get("HTTP_COOKIE")
  19. g.cookies = parse_cookies(request.script_root, cookie_string)
  20. g.new_cookies = []
  21. @app.after_request
  22. def add_new_cookies(response):
  23. if g.new_cookies:
  24. if "Set-Cookie" in response.headers:
  25. g.new_cookies.insert(0, response.headers["Set-Cookie"])
  26. response.headers["Set-Cookie"] = "; ".join(g.new_cookies)
  27. return response
  28. @app.after_request
  29. def write_access_log(response):
  30. msg = u"%s %s -> %s"
  31. app.logger.debug(msg, asctime(), request.path, response.status_code)
  32. return response
  33. @app.route("/")
  34. def index():
  35. return render_template("index.mako")
  36. @app.route("/settings", methods=["GET", "POST"])
  37. def settings():
  38. return render_template("settings.mako")
  39. @app.route("/debug")
  40. def debug():
  41. return render_template("debug.mako")
  42. if __name__ == '__main__':
  43. WSGIServer(app).run()