From b9d93f01a9a762b22f2c8ece2211ecd873b9fda6 Mon Sep 17 00:00:00 2001 From: ketralnis Date: Thu, 16 Jul 2009 11:48:22 -0700 Subject: [PATCH] Allow some reddits to be specifically excluded from appearing in the default set. Will require running of r2.lib.migrate.add_allow_top_to_srs() --- r2/r2/lib/migrate.py | 35 +++++++++++++++++++++++++++++++++++ r2/r2/models/subreddit.py | 3 +++ 2 files changed, 38 insertions(+) create mode 100644 r2/r2/lib/migrate.py diff --git a/r2/r2/lib/migrate.py b/r2/r2/lib/migrate.py new file mode 100644 index 000000000..18fec62cc --- /dev/null +++ b/r2/r2/lib/migrate.py @@ -0,0 +1,35 @@ +# The contents of this file are subject to the Common Public Attribution +# License Version 1.0. (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://code.reddit.com/LICENSE. The License is based on the Mozilla Public +# License Version 1.1, but Sections 14 and 15 have been added to cover use of +# software over a computer network and provide for limited attribution for the +# Original Developer. In addition, Exhibit A has been modified to be consistent +# with Exhibit B. +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for +# the specific language governing rights and limitations under the License. +# +# The Original Code is Reddit. +# +# The Original Developer is the Initial Developer. The Initial Developer of the +# Original Code is CondeNet, Inc. +# +# All portions of the code written by CondeNet are Copyright (c) 2006-2009 +# CondeNet, Inc. All Rights Reserved. +################################################################################ +""" +One-time use functions to migrate from one reddit-version to another +""" + +def add_allow_top_to_srs(): + "Add the allow_top property to all stored subreddits" + from r2.models import Subreddit + from r2.lib.db.operators import desc + from r2.lib.utils import fetch_things2 + + q = Subreddit._query(Subreddit.c._spam == (True,False), + sort = desc('_date')) + for sr in fetch_things2(q): + sr.allow_top = True; sr._commit() diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index e9257e2db..357a5f649 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -48,6 +48,7 @@ class Subreddit(Thing, Printable): firsttext = strings.firsttext, header = None, description = '', + allow_top = True, images = {}, ad_file = os.path.join(g.static_path, 'ad_default.html'), reported = 0, @@ -72,6 +73,7 @@ class Subreddit(Thing, Printable): over_18 = over_18, author_id = author_id, ip = ip, + allow_top = True, **kw) sr._commit() @@ -274,6 +276,7 @@ class Subreddit(Thing, Printable): by popularity""" pop_reddits = Subreddit._query(Subreddit.c.type == ('public', 'restricted'), + Subreddit.c.allow_top == True, sort=desc('_downs'), limit = limit, data = True,