middleware.py 771 B

1234567891011121314
  1. from crawler import Crawler
  2. from misago.users import models
  3. class DetectCrawlerMiddleware(object):
  4. def process_request(self, request):
  5. # If its correct request (We have client IP), see if it exists in Crawlers DB
  6. if request.META.get('HTTP_X_FORWARDED_FOR') or request.META.get('REMOTE_ADDR'):
  7. found_crawler = Crawler(
  8. request.META.get('HTTP_USER_AGENT', ''),
  9. request.META.get('HTTP_X_FORWARDED_FOR') or request.META.get('REMOTE_ADDR')
  10. )
  11. # If crawler exists in database, use it as this request user
  12. if found_crawler.crawler:
  13. request.user = models.Crawler(found_crawler.username)