This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
s2forums/djangobb/djangobb_forum/middleware.py
slav0nic f44651db26 main app moved from apps/forum to djangobb_forum. Warning: you must renaming DB tables prefix!
--HG--
rename : djangobb/apps/forum/__init__.py => djangobb/djangobb_forum/__init__.py
rename : djangobb/apps/forum/admin.py => djangobb/djangobb_forum/admin.py
rename : djangobb/apps/forum/context_processors.py => djangobb/djangobb_forum/context_processors.py
rename : djangobb/apps/forum/feeds.py => djangobb/djangobb_forum/feeds.py
rename : djangobb/apps/forum/fields.py => djangobb/djangobb_forum/fields.py
rename : djangobb/apps/forum/forms.py => djangobb/djangobb_forum/forms.py
rename : djangobb/apps/forum/index.py => djangobb/djangobb_forum/index.py
rename : djangobb/apps/forum/locale/ru/LC_MESSAGES/django.mo => djangobb/djangobb_forum/locale/ru/LC_MESSAGES/django.mo
rename : djangobb/apps/forum/locale/ru/LC_MESSAGES/django.po => djangobb/djangobb_forum/locale/ru/LC_MESSAGES/django.po
rename : djangobb/apps/forum/locale/zh_CN/LC_MESSAGES/django.mo => djangobb/djangobb_forum/locale/zh_CN/LC_MESSAGES/django.mo
rename : djangobb/apps/forum/locale/zh_CN/LC_MESSAGES/django.po => djangobb/djangobb_forum/locale/zh_CN/LC_MESSAGES/django.po
rename : djangobb/apps/forum/management/__init__.py => djangobb/djangobb_forum/management/__init__.py
rename : djangobb/apps/forum/management/commands/__init__.py => djangobb/djangobb_forum/management/commands/__init__.py
rename : djangobb/apps/forum/management/commands/unban.py => djangobb/djangobb_forum/management/commands/unban.py
rename : djangobb/apps/forum/markups/__init__.py => djangobb/djangobb_forum/markups/__init__.py
rename : djangobb/apps/forum/markups/mypostmarkup.py => djangobb/djangobb_forum/markups/mypostmarkup.py
rename : djangobb/apps/forum/markups/postmarkup.py => djangobb/djangobb_forum/markups/postmarkup.py
rename : djangobb/apps/forum/middleware.py => djangobb/djangobb_forum/middleware.py
rename : djangobb/apps/forum/models.py => djangobb/djangobb_forum/models.py
rename : djangobb/apps/forum/settings.py => djangobb/djangobb_forum/settings.py
rename : djangobb/apps/forum/signals.py => djangobb/djangobb_forum/signals.py
rename : djangobb/apps/forum/subscription.py => djangobb/djangobb_forum/subscription.py
rename : djangobb/apps/forum/templates/forum/add_post.html => djangobb/djangobb_forum/templates/forum/add_post.html
rename : djangobb/apps/forum/templates/forum/base.html => djangobb/djangobb_forum/templates/forum/base.html
rename : djangobb/apps/forum/templates/forum/delete_posts.html => djangobb/djangobb_forum/templates/forum/delete_posts.html
rename : djangobb/apps/forum/templates/forum/edit_post.html => djangobb/djangobb_forum/templates/forum/edit_post.html
rename : djangobb/apps/forum/templates/forum/feeds/posts_description.html => djangobb/djangobb_forum/templates/forum/feeds/posts_description.html
rename : djangobb/apps/forum/templates/forum/feeds/posts_title.html => djangobb/djangobb_forum/templates/forum/feeds/posts_title.html
rename : djangobb/apps/forum/templates/forum/feeds/topics_description.html => djangobb/djangobb_forum/templates/forum/feeds/topics_description.html
rename : djangobb/apps/forum/templates/forum/feeds/topics_title.html => djangobb/djangobb_forum/templates/forum/feeds/topics_title.html
rename : djangobb/apps/forum/templates/forum/forum.html => djangobb/djangobb_forum/templates/forum/forum.html
rename : djangobb/apps/forum/templates/forum/forum_row.html => djangobb/djangobb_forum/templates/forum/forum_row.html
rename : djangobb/apps/forum/templates/forum/header.html => djangobb/djangobb_forum/templates/forum/header.html
rename : djangobb/apps/forum/templates/forum/index.html => djangobb/djangobb_forum/templates/forum/index.html
rename : djangobb/apps/forum/templates/forum/lofi/base.html => djangobb/djangobb_forum/templates/forum/lofi/base.html
rename : djangobb/apps/forum/templates/forum/lofi/footer.html => djangobb/djangobb_forum/templates/forum/lofi/footer.html
rename : djangobb/apps/forum/templates/forum/lofi/forum.html => djangobb/djangobb_forum/templates/forum/lofi/forum.html
rename : djangobb/apps/forum/templates/forum/lofi/header.html => djangobb/djangobb_forum/templates/forum/lofi/header.html
rename : djangobb/apps/forum/templates/forum/lofi/index.html => djangobb/djangobb_forum/templates/forum/lofi/index.html
rename : djangobb/apps/forum/templates/forum/lofi/pagination.html => djangobb/djangobb_forum/templates/forum/lofi/pagination.html
rename : djangobb/apps/forum/templates/forum/lofi/topic.html => djangobb/djangobb_forum/templates/forum/lofi/topic.html
rename : djangobb/apps/forum/templates/forum/mail_to.html => djangobb/djangobb_forum/templates/forum/mail_to.html
rename : djangobb/apps/forum/templates/forum/moderate.html => djangobb/djangobb_forum/templates/forum/moderate.html
rename : djangobb/apps/forum/templates/forum/moderators.html => djangobb/djangobb_forum/templates/forum/moderators.html
rename : djangobb/apps/forum/templates/forum/move_topic.html => djangobb/djangobb_forum/templates/forum/move_topic.html
rename : djangobb/apps/forum/templates/forum/pagination.html => djangobb/djangobb_forum/templates/forum/pagination.html
rename : djangobb/apps/forum/templates/forum/pm/base_pm.html => djangobb/djangobb_forum/templates/forum/pm/base_pm.html
rename : djangobb/apps/forum/templates/forum/pm/create_pm.html => djangobb/djangobb_forum/templates/forum/pm/create_pm.html
rename : djangobb/apps/forum/templates/forum/pm/inbox.html => djangobb/djangobb_forum/templates/forum/pm/inbox.html
rename : djangobb/apps/forum/templates/forum/pm/menu_pm.html => djangobb/djangobb_forum/templates/forum/pm/menu_pm.html
rename : djangobb/apps/forum/templates/forum/pm/message.html => djangobb/djangobb_forum/templates/forum/pm/message.html
rename : djangobb/apps/forum/templates/forum/pm/outbox.html => djangobb/djangobb_forum/templates/forum/pm/outbox.html
rename : djangobb/apps/forum/templates/forum/post_preview.html => djangobb/djangobb_forum/templates/forum/post_preview.html
rename : djangobb/apps/forum/templates/forum/profile/profile_admin.html => djangobb/djangobb_forum/templates/forum/profile/profile_admin.html
rename : djangobb/apps/forum/templates/forum/profile/profile_display.html => djangobb/djangobb_forum/templates/forum/profile/profile_display.html
rename : djangobb/apps/forum/templates/forum/profile/profile_essentials.html => djangobb/djangobb_forum/templates/forum/profile/profile_essentials.html
rename : djangobb/apps/forum/templates/forum/profile/profile_menu.html => djangobb/djangobb_forum/templates/forum/profile/profile_menu.html
rename : djangobb/apps/forum/templates/forum/profile/profile_messaging.html => djangobb/djangobb_forum/templates/forum/profile/profile_messaging.html
rename : djangobb/apps/forum/templates/forum/profile/profile_personal.html => djangobb/djangobb_forum/templates/forum/profile/profile_personal.html
rename : djangobb/apps/forum/templates/forum/profile/profile_personality.html => djangobb/djangobb_forum/templates/forum/profile/profile_personality.html
rename : djangobb/apps/forum/templates/forum/profile/profile_privacy.html => djangobb/djangobb_forum/templates/forum/profile/profile_privacy.html
rename : djangobb/apps/forum/templates/forum/report.html => djangobb/djangobb_forum/templates/forum/report.html
rename : djangobb/apps/forum/templates/forum/reputation.html => djangobb/djangobb_forum/templates/forum/reputation.html
rename : djangobb/apps/forum/templates/forum/reputation_form.html => djangobb/djangobb_forum/templates/forum/reputation_form.html
rename : djangobb/apps/forum/templates/forum/search_form.html => djangobb/djangobb_forum/templates/forum/search_form.html
rename : djangobb/apps/forum/templates/forum/search_posts.html => djangobb/djangobb_forum/templates/forum/search_posts.html
rename : djangobb/apps/forum/templates/forum/search_topics.html => djangobb/djangobb_forum/templates/forum/search_topics.html
rename : djangobb/apps/forum/templates/forum/topic.html => djangobb/djangobb_forum/templates/forum/topic.html
rename : djangobb/apps/forum/templates/forum/upload_avatar.html => djangobb/djangobb_forum/templates/forum/upload_avatar.html
rename : djangobb/apps/forum/templates/forum/user.html => djangobb/djangobb_forum/templates/forum/user.html
rename : djangobb/apps/forum/templates/forum/users.html => djangobb/djangobb_forum/templates/forum/users.html
rename : djangobb/apps/forum/templatetags/__init__.py => djangobb/djangobb_forum/templatetags/__init__.py
rename : djangobb/apps/forum/templatetags/forum_extras.py => djangobb/djangobb_forum/templatetags/forum_extras.py
rename : djangobb/apps/forum/tests/__init__.py => djangobb/djangobb_forum/tests/__init__.py
rename : djangobb/apps/forum/tests/postmarkup.py => djangobb/djangobb_forum/tests/postmarkup.py
rename : djangobb/apps/forum/urls.py => djangobb/djangobb_forum/urls.py
rename : djangobb/apps/forum/util.py => djangobb/djangobb_forum/util.py
rename : djangobb/apps/forum/views.py => djangobb/djangobb_forum/views.py
2009-12-23 17:06:48 +02:00

51 lines
1.9 KiB
Python

from datetime import datetime, timedelta
from django.core.cache import cache
from django.utils import translation
from django.conf import settings as global_settings
from djangobb_forum import settings as forum_settings
class LastLoginMiddleware(object):
def process_request(self, request):
if request.user.is_authenticated():
cache.set(str(request.user.id), True, forum_settings.USER_ONLINE_TIMEOUT)
class ForumMiddleware(object):
def process_request(self, request):
if request.user.is_authenticated():
profile = request.user.forum_profile
language = translation.get_language_from_request(request)
if not profile.language:
profile.language = language
profile.save()
if profile.language and profile.language != language:
request.session['django_language'] = profile.language
translation.activate(profile.language)
request.LANGUAGE_CODE = translation.get_language()
class UsersOnline(object):
def process_request(self, request):
now = datetime.now()
delta = now - timedelta(minutes=forum_settings.USER_ONLINE_TIMEOUT)
users_online = cache.get('users_online', {})
guests_online = cache.get('guests_online', {})
if request.user.is_authenticated():
users_online[request.user.id] = now
else:
guest_sid = request.COOKIES.get(global_settings.SESSION_COOKIE_NAME, '')
guests_online[guest_sid] = now
for user_id in users_online.keys():
if users_online[user_id] < delta:
del users_online[user_id]
for guest_id in guests_online.keys():
if guests_online[guest_id] < delta:
del guests_online[guest_id]
cache.set('users_online', users_online, 60*60*24)
cache.set('guests_online', guests_online, 60*60*24)