from django.conf import settings
from django.contrib.sites.models import Site
+from django.core.cache import get_cache
from django.core.urlresolvers import reverse
from piston.handler import AnonymousBaseHandler, BaseHandler
from piston.utils import rc
def changes(cls, request=None, since=0, until=None, book_fields=None,
tag_fields=None, tag_categories=None):
until = cls.until(until)
+ since = int(since)
+
+ if not since:
+ cache = get_cache('api')
+ key = hash((book_fields, tag_fields, tag_categories,
+ tuple(sorted(request.GET.items()))
+ ))
+ value = cache.get(key)
+ if value is not None:
+ return value
changes = {
'time_checked': timestamp(until)
if field == 'time_checked':
continue
changes.setdefault(field, {})[model] = changes_by_type[model][field]
+
+ if not since:
+ cache.set(key, changes)
+
return changes
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
-MEDIA_ROOT = path.join(PROJECT_DIR, '../media')
-STATIC_ROOT = path.join(PROJECT_DIR, 'static')
+MEDIA_ROOT = path.join(PROJECT_DIR, '../media/')
+STATIC_ROOT = path.join(PROJECT_DIR, 'static/')
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = [
- 'django.template.loaders.filesystem.load_template_source',
- 'django.template.loaders.app_directories.load_template_source',
-# 'django.template.loaders.eggs.load_template_source',
+ 'django.template.loaders.filesystem.Loader',
+ 'django.template.loaders.app_directories.Loader',
+# 'django.template.loaders.eggs.Loader',
]
TEMPLATE_CONTEXT_PROCESSORS = (
- 'django.core.context_processors.auth',
+ 'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'suggest',
]
-#CACHE_BACKEND = 'locmem:///?max_entries=3000'
-CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
+CACHES = {
+ 'default': {
+ 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
+ 'LOCATION': [
+ '127.0.0.1:11211',
+ ]
+ },
+ 'api': {
+ 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+ 'LOCATION': '/srv/wolnelektury.pl/django_cache/',
+ 'KEY_PREFIX': 'api',
+ 'TIMEOUT': 86400,
+ },
+}
CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True
# CSS and JavaScript file groups