From 7e4a12a263099c5dab895525750241dba33fd8b3 Mon Sep 17 00:00:00 2001 From: max Date: Mon, 21 May 2012 23:21:06 +0700 Subject: [PATCH] Added refresh timer for counter --- zerobin/default_settings.py | 4 +++- zerobin/routes.py | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/zerobin/default_settings.py b/zerobin/default_settings.py index 36dbe23..efc48d2 100644 --- a/zerobin/default_settings.py +++ b/zerobin/default_settings.py @@ -53,9 +53,11 @@ PORT = "8000" USER = None GROUP = None -# Display a tiny counter for pastes created +# Display a tiny counter for pastes created. # Be carreful if your site have to many pastes this can hurt your hard drive performances. +# Refresh counter interval. Default to every minute after a paste. DISPLAY_COUNTER = True +REFRESH_COUNTER = 60 * 1 # Names/links to insert in the menu bar. # Any link with "mailto:" will be escaped to prevent spam diff --git a/zerobin/routes.py b/zerobin/routes.py index 367864e..ee911b4 100644 --- a/zerobin/routes.py +++ b/zerobin/routes.py @@ -29,9 +29,10 @@ from utils import drop_privileges, dmerge, get_pastes_count app = Bottle() GLOBAL_CONTEXT = { 'settings': settings, - 'pastes_count': get_pastes_count() + 'pastes_count': get_pastes_count(), + 'refresh_counter': datetime.now() } - + @app.route('/') @view('home') @@ -66,8 +67,17 @@ def create_paste(): paste = Paste(expiration=expiration, content=content) paste.save() + # display counter if settings.DISPLAY_COUNTER: + + #increment paste counter paste.increment_counter() + + # if refresh time elapsed pick up new counter value + if GLOBAL_CONTEXT['refresh_counter'] + timedelta(seconds=settings.REFRESH_COUNTER) < datetime.now(): + GLOBAL_CONTEXT['pastes_count'] = get_pastes_count() + GLOBAL_CONTEXT['refresh_counter'] = datetime.now() + return {'status': 'ok', 'paste': paste.uuid}