~widelands-dev/widelands-website/django_staticfiles

« back to all changes in this revision

Viewing changes to tracking/listeners.py

  • Committer: franku
  • Date: 2016-07-02 12:38:06 UTC
  • mfrom: (404.2.56 widelands)
  • Revision ID: somal@arcor.de-20160702123806-q69u3d48s1prrxds
merged the django1_8 branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import logging
 
2
 
 
3
log = logging.getLogger('tracking.listeners')
 
4
 
 
5
try:
 
6
    from django.core.cache import cache
 
7
    from django.db.models.signals import post_save, post_delete
 
8
 
 
9
    from tracking.models import UntrackedUserAgent, BannedIP
 
10
except ImportError:
 
11
    pass
 
12
else:
 
13
 
 
14
    def refresh_untracked_user_agents(sender, instance, created=False, **kwargs):
 
15
        """Updates the cache of user agents that we don't track"""
 
16
 
 
17
        log.debug('Updating untracked user agents cache')
 
18
        cache.set('_tracking_untracked_uas',
 
19
            UntrackedUserAgent.objects.all(),
 
20
            3600)
 
21
 
 
22
    def refresh_banned_ips(sender, instance, created=False, **kwargs):
 
23
        """Updates the cache of banned IP addresses"""
 
24
 
 
25
        log.debug('Updating banned IP cache')
 
26
        cache.set('_tracking_banned_ips',
 
27
            [b.ip_address for b in BannedIP.objects.all()],
 
28
            3600)
 
29
 
 
30
    post_save.connect(refresh_untracked_user_agents, sender=UntrackedUserAgent)
 
31
    post_delete.connect(refresh_untracked_user_agents, sender=UntrackedUserAgent)
 
32
 
 
33
    post_save.connect(refresh_banned_ips, sender=BannedIP)
 
34
    post_delete.connect(refresh_banned_ips, sender=BannedIP)