def make_diff_old(a, b): import difflib filename = hash(b.encode('utf-8')).hexdigest() fc = FileCache(filename, expireInMinutes = None, tempdir = settings.TEMP_UPLOAD_PATH, prefix = '') try: content = fc.load() except: logger.exception('load') content = None if not content: out = [] s = difflib.SequenceMatcher(None, a, b) for e in s.get_opcodes(): if e[0] == "replace": out.append('<del class="diff_chg">'+''.join(a[e[1]:e[2]]) + '</del><ins class="diff_add">'+''.join(b[e[3]:e[4]])+"</ins>") elif e[0] == "delete": out.append('<del class="diff_sub">'+ ''.join(a[e[1]:e[2]]) + "</del>") elif e[0] == "insert": out.append('<ins class="diff_add">'+''.join(b[e[3]:e[4]]) + "</ins>") elif e[0] == "equal": out.append(''.join(b[e[3]:e[4]])) else: raise "Um, something's broken. I didn't expect a '" + `e[0]` + "'." content = ''.join(out) try: fc.save(content) except: logger.exception('save') return content
def banned_player_map(request): from common.utils.geoip import GeoLocation from common.cache.file import FileCache local = FileCache("ban-%s" % request.server, getattr(settings, 'WORLDMAP_CACHE_EXPIRE', 1440)) countries = local.load() if not countries: countries = {} geo = GeoLocation() for penalty in Penalty.objects.db_manager(request.server).active(): country_name = geo.get_country(penalty.client.ip) if countries.has_key(country_name): count = countries.get(country_name) + 1 else: count = 1 countries[country_name]=count if len(countries) > 0: local.save(countries) return {'list': countries}
def player_map(request): from common.utils.geoip import GeoLocation from common.cache.file import FileCache local = FileCache("pl-%s" % request.server, getattr(settings, 'WORLDMAP_CACHE_EXPIRE', 1440)) countries = local.load() if not countries: countries = {} geo = GeoLocation() for client in Client.objects.using(request.server).filter(id__gt=1): country_name = geo.get_country(client.ip) if country_name != '': #country_code = geo.get_country_code(client.ip) if countries.has_key(country_name): countries[country_name]['count'] += 1 #countries[country_name]['clients'].append(client) else: countries[country_name] = {'count': 1 } #, 'clients': [client]} if len(countries) > 0: local.save(countries) return {'list': countries}