|
14 | 14 | """
|
15 | 15 | import datetime
|
16 | 16 | import time
|
| 17 | +import logging |
17 | 18 | from ipware.ip import get_real_ip
|
18 | 19 | from DjangoBlog.utils import cache
|
19 | 20 | from blog.documents import ELASTICSEARCH_ENABLED, ElaspedTimeDocumentManager
|
20 | 21 |
|
| 22 | +logger = logging.getLogger(__name__) |
| 23 | + |
21 | 24 |
|
22 | 25 | class OnlineMiddleware(object):
|
23 | 26 | def __init__(self, get_response=None):
|
24 | 27 | self.get_response = get_response
|
25 | 28 | super().__init__()
|
26 | 29 |
|
27 | 30 | def __call__(self, request):
|
| 31 | + ''' page render time ''' |
28 | 32 | start_time = time.time()
|
29 | 33 | response = self.get_response(request)
|
30 |
| - http_user_agent = request.META.get('HTTP_USER_AGENT', []) |
31 |
| - if 'Spider' in http_user_agent or 'spider' in http_user_agent: |
32 |
| - return response |
33 |
| - try: |
34 |
| - cast_time = time.time() - start_time |
35 |
| - if ELASTICSEARCH_ENABLED: |
36 |
| - time_taken = round((cast_time) * 1000, 2) |
37 |
| - url = request.path |
38 |
| - from django.utils import timezone |
39 |
| - |
40 |
| - ElaspedTimeDocumentManager.create(url=url, time_taken=time_taken, log_datetime=timezone.now(), |
41 |
| - type='blog', useragent=http_user_agent) |
42 |
| - response.content = response.content.replace(b'<!!LOAD_TIMES!!>', str.encode(str(cast_time)[:5])) |
43 |
| - except: |
44 |
| - pass |
| 34 | + http_user_agent = request.META.get('HTTP_USER_AGENT', '') |
| 35 | + |
| 36 | + if 'spider'.upper() not in http_user_agent.upper(): |
| 37 | + try: |
| 38 | + cast_time = time.time() - start_time |
| 39 | + if ELASTICSEARCH_ENABLED: |
| 40 | + time_taken = round((cast_time) * 1000, 2) |
| 41 | + url = request.path |
| 42 | + from django.utils import timezone |
| 43 | + |
| 44 | + ElaspedTimeDocumentManager.create(url=url, time_taken=time_taken, log_datetime=timezone.now(), |
| 45 | + type='blog', useragent=http_user_agent) |
| 46 | + response.content = response.content.replace(b'<!!LOAD_TIMES!!>', str.encode(str(cast_time)[:5])) |
| 47 | + except Exception as e: |
| 48 | + logger.error("Error OnlineMiddleware: %s" % e) |
45 | 49 | return response
|
0 commit comments