From 14205e0d2a366e355ded179177dddd8d036108d0 Mon Sep 17 00:00:00 2001 From: philipp Date: Wed, 5 Jan 2011 20:28:24 +0000 Subject: [PATCH] Added (mandatory) configuration parameter "feedentrylimit" that specifies the maximum number of feed entries. It has to be given in the .ini file, e.g. feedentrylimit = 150 git-svn-id: http://www.winterrodeln.org/svn/servermediawiki/trunk/wrfeed@720 7aebc617-e5e2-0310-91dc-80fb5f6d2477 --- setup.py | 2 +- wrfeed/config/deployment.ini_tmpl | 5 ++++- wrfeed/controllers/berichte.py | 7 ++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index c6dc00e..e804ec8 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ except ImportError: setup( name='wrfeed', - version='0.1.3', + version='0.1.4', description='Provides Atom Feed for Winterrodeln snow reports', author='Philipp Spitzer', author_email='philipp.spitzer@winterrodeln.org', diff --git a/wrfeed/config/deployment.ini_tmpl b/wrfeed/config/deployment.ini_tmpl index 0c0bbd7..aa69500 100644 --- a/wrfeed/config/deployment.ini_tmpl +++ b/wrfeed/config/deployment.ini_tmpl @@ -31,12 +31,15 @@ app_instance_uuid = ${app_instance_uuid} #beaker.session.data_dir = %(here)s/data/sessions # SQLAlchemy database URL -sqlalchemy.url = mysql://user@localhost:3306/winterrodeln_wiki?charset=utf8&use_unicode=0 +sqlalchemy.url = mysql://user@localhost:3306/winterrodeln_wiki?charset=utf8&use_unicode=1 # sqlalchemy.url = sqlite:///production.db # necessary for mySQL databases sqlalchemy.pool_recycle = 3600 +# maximum number of feed entries +feedentrylimit = 150 + # WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* # Debug mode will enable the interactive debugging tool, allowing ANYONE to # execute malicious code after an exception is raised. diff --git a/wrfeed/controllers/berichte.py b/wrfeed/controllers/berichte.py index a319215..7ffc90c 100644 --- a/wrfeed/controllers/berichte.py +++ b/wrfeed/controllers/berichte.py @@ -33,13 +33,14 @@ def create_feed(page_title=None, page_ids=None): Otherwise, all reports are shown.""" engine = create_engine(config['sqlalchemy.url']) + limit = int(config['feedentrylimit']) conn = engine.connect() select = "select id, wrreport.page_title, date_report, date_entry, `condition`, description, author_name, author_username, position_longitude, position_latitude from wrreport left outer join wrsleddingcache on wrreport.page_id=wrsleddingcache.page_id " if not page_title is None: # page_title is given page_title = page_title.replace('_', ' ') - sql = select + "where lcase(wrreport.page_title) = lcase(%s) and date_invalid > now() and delete_date is null order by id desc limit 50" + sql = select + "where lcase(wrreport.page_title) = lcase(%s) and date_invalid > now() and delete_date is null order by id desc limit {0}".format(limit) result = conn.execute(sql, page_title) elif not page_ids is None: # a list of page_ids is given @@ -48,12 +49,12 @@ def create_feed(page_title=None, page_ids=None): sql += '(' sql += " or ".join(['wrreport.page_id=%s' for page_id in page_ids]) sql += ') ' - sql += 'and date_invalid > now() and delete_date is null order by id desc limit 50' + sql += 'and date_invalid > now() and delete_date is null order by id desc limit {0}'.format(limit) page_ids_str = [str(page_id) for page_id in page_ids] result = conn.execute("".join(sql), *page_ids_str) else: # user wants to have all reports - sql = select + "where date_invalid > now() and delete_date is null order by id desc limit 50" + sql = select + "where date_invalid > now() and delete_date is null order by id desc limit {0}".format(limit) result = conn.execute(sql) -- 2.39.5