diff --git a/r2/r2/controllers/ads.py b/r2/r2/controllers/ads.py index 873996c11..8240dab34 100644 --- a/r2/r2/controllers/ads.py +++ b/r2/r2/controllers/ads.py @@ -23,7 +23,7 @@ from pylons import request, g from reddit_base import RedditController from r2.lib.pages import AdminPage, AdminAds, AdminAdAssign, AdminAdSRs -from validator import * +from r2.lib.validator import * class AdsController(RedditController): diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index ad7c23610..3f6af6820 100755 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -26,7 +26,7 @@ from reddit_base import cross_domain, paginated_listing from pylons.i18n import _ from pylons import c, request, response -from validator import * +from r2.lib.validator import * from r2.models import * diff --git a/r2/r2/controllers/api_docs.py b/r2/r2/controllers/api_docs.py index 62496aee8..9d3d2544b 100644 --- a/r2/r2/controllers/api_docs.py +++ b/r2/r2/controllers/api_docs.py @@ -31,7 +31,7 @@ from pylons.i18n import _ from reddit_base import RedditController from r2.lib.utils import Storage from r2.lib.pages import BoringPage, ApiHelp -from r2.controllers.validator import validate, VOneOf +from r2.lib.validator import validate, VOneOf # API sections displayed in the documentation page. # Each section can have a title and a markdown-formatted description. diff --git a/r2/r2/controllers/awards.py b/r2/r2/controllers/awards.py index 35e4ad88a..ec8a50ba0 100644 --- a/r2/r2/controllers/awards.py +++ b/r2/r2/controllers/awards.py @@ -24,7 +24,7 @@ from pylons import request, g from reddit_base import RedditController from r2.lib.pages import AdminPage, AdminAwards from r2.lib.pages import AdminAwardGive, AdminAwardWinners -from validator import * +from r2.lib.validator import * class AwardsController(RedditController): diff --git a/r2/r2/controllers/buttons.py b/r2/r2/controllers/buttons.py index 46f9f75b7..b8111b8c1 100644 --- a/r2/r2/controllers/buttons.py +++ b/r2/r2/controllers/buttons.py @@ -26,8 +26,8 @@ from r2.lib.pages import (ButtonLite, ButtonDemoPanel, WidgetDemoPanel, from r2.lib.pages.things import wrap_links from r2.models import * from r2.lib.utils import tup +from r2.lib.validator import * from pylons import c, request -from validator import * from pylons.i18n import _ class ButtonsController(RedditController): diff --git a/r2/r2/controllers/errorlog.py b/r2/r2/controllers/errorlog.py index 697c040c9..95c7c6016 100644 --- a/r2/r2/controllers/errorlog.py +++ b/r2/r2/controllers/errorlog.py @@ -23,7 +23,7 @@ from pylons import request, g from reddit_base import RedditController from r2.lib.pages import AdminPage, AdminErrorLog -from validator import * +from r2.lib.validator import validate, VAdmin class ErrorlogController(RedditController): @validate(VAdmin()) diff --git a/r2/r2/controllers/front.py b/r2/r2/controllers/front.py index 1d8a8f10e..404e765eb 100755 --- a/r2/r2/controllers/front.py +++ b/r2/r2/controllers/front.py @@ -20,7 +20,6 @@ # Inc. All Rights Reserved. ############################################################################### -from validator import * from pylons.i18n import _, ungettext from pylons.controllers.util import redirect_to from reddit_base import RedditController, base_listing, paginated_listing, prevent_framing_and_css @@ -42,6 +41,7 @@ from r2.lib.db.tdb_cassandra import MultiColumnQuery from r2.lib.strings import strings from r2.lib.search import (SearchQuery, SubredditSearchQuery, SearchException, InvalidQuery) +from r2.lib.validator import * from r2.lib import jsontemplates from r2.lib import sup import r2.lib.db.thing as thing diff --git a/r2/r2/controllers/health.py b/r2/r2/controllers/health.py index a8ebb9fe5..f8c7f25d4 100644 --- a/r2/r2/controllers/health.py +++ b/r2/r2/controllers/health.py @@ -30,9 +30,9 @@ from pylons import c, g, response from reddit_base import MinimalController from r2.lib.amqp import worker +from r2.lib.validator import * from r2.lib import promote -from validator import * class HealthController(MinimalController): def post(self): diff --git a/r2/r2/controllers/ipn.py b/r2/r2/controllers/ipn.py index c6800e015..6dea8b27b 100644 --- a/r2/r2/controllers/ipn.py +++ b/r2/r2/controllers/ipn.py @@ -29,9 +29,9 @@ from pylons.controllers.util import abort from pylons import c, g, response from pylons.i18n import _ -from validator import * from r2.models import * from r2.lib.utils import randstr +from r2.lib.validator import * from reddit_base import RedditController diff --git a/r2/r2/controllers/listingcontroller.py b/r2/r2/controllers/listingcontroller.py index 13c2a9d49..490919cba 100755 --- a/r2/r2/controllers/listingcontroller.py +++ b/r2/r2/controllers/listingcontroller.py @@ -22,7 +22,6 @@ from oauth2 import OAuth2ResourceController, require_oauth2_scope from reddit_base import RedditController, base_listing, organic_pos -from validator import * from r2.models import * from r2.models.query_cache import CachedQuery, MergedCachedQuery @@ -42,6 +41,7 @@ import r2.lib.search as search from r2.lib.utils import iters, check_cheating, timeago from r2.lib import sup from r2.lib.promote import randomized_promotion_list +from r2.lib.validator import * import socket from api_docs import api_doc, api_section diff --git a/r2/r2/controllers/mediaembed.py b/r2/r2/controllers/mediaembed.py index 1c048e83f..62c0f7b4b 100644 --- a/r2/r2/controllers/mediaembed.py +++ b/r2/r2/controllers/mediaembed.py @@ -20,11 +20,11 @@ # Inc. All Rights Reserved. ############################################################################### -from validator import * from reddit_base import MinimalController from r2.lib.scraper import get_media_embed from r2.lib.pages import MediaEmbedBody, render_ad, render_ad_by_codename +from r2.lib.validator import * from pylons import request from pylons.controllers.util import abort diff --git a/r2/r2/controllers/oauth2.py b/r2/r2/controllers/oauth2.py index 671a2f46c..9bf1a7e94 100644 --- a/r2/r2/controllers/oauth2.py +++ b/r2/r2/controllers/oauth2.py @@ -35,12 +35,20 @@ from r2.models.token import ( OAuth2Client, OAuth2AuthorizationCode, OAuth2AccessToken, OAuth2RefreshToken, OAuth2Scope) from r2.lib.errors import ForbiddenError, errors -from validator import ( - nop, validate, VRequired, VOneOf, VUser, VModhash, VOAuth2ClientID, - VOAuth2Scope, VOAuth2RefreshToken) from r2.lib.pages import OAuth2AuthorizationPage from r2.lib.require import RequirementException, require, require_split from r2.lib.utils import parse_http_basic +from r2.lib.validator import ( + nop, + validate, + VRequired, + VOneOf, + VUser, + VModhash, + VOAuth2ClientID, + VOAuth2Scope, + VOAuth2RefreshToken, +) class OAuth2FrontendController(RedditController): def pre(self): diff --git a/r2/r2/controllers/post.py b/r2/r2/controllers/post.py index 34fbba394..36dbb40ef 100644 --- a/r2/r2/controllers/post.py +++ b/r2/r2/controllers/post.py @@ -25,8 +25,8 @@ from reddit_base import cross_domain from api import ApiController from r2.lib.utils import Storage, query_string, UrlParser from r2.lib.emailer import opt_in, opt_out +from r2.lib.validator import * from pylons import request, c, g -from validator import * from pylons.i18n import _ from r2.models import * import hashlib diff --git a/r2/r2/controllers/promotecontroller.py b/r2/r2/controllers/promotecontroller.py index dd1149f1e..7cbac6a8b 100644 --- a/r2/r2/controllers/promotecontroller.py +++ b/r2/r2/controllers/promotecontroller.py @@ -22,7 +22,6 @@ import json -from validator import * from pylons.i18n import _ from r2.models import * from r2.lib.authorize import get_account_info, edit_profile, PROFILE_LIMIT @@ -41,6 +40,7 @@ from r2.lib.media import force_thumbnail, thumbnail_url from r2.lib.scraper import MediaEmbed from r2.lib import cssfilter from r2.lib.system_messages import user_added_messages +from r2.lib.validator import * from datetime import datetime class PromoteController(ListingController): diff --git a/r2/r2/controllers/querycontroller.py b/r2/r2/controllers/querycontroller.py index 7672cf2fa..b35b7492c 100644 --- a/r2/r2/controllers/querycontroller.py +++ b/r2/r2/controllers/querycontroller.py @@ -19,9 +19,11 @@ # All portions of the code written by reddit are Copyright (c) 2006-2012 reddit # Inc. All Rights Reserved. ############################################################################### +from pylons import g +from pylons.controllers.util import abort from reddit_base import RedditController -from validator import * +from r2.lib.validator import nop, validate from r2.lib.db.queries import CachedResults import cPickle as pickle diff --git a/r2/r2/controllers/reddit_base.py b/r2/r2/controllers/reddit_base.py index ccd025101..4746a35cb 100644 --- a/r2/r2/controllers/reddit_base.py +++ b/r2/r2/controllers/reddit_base.py @@ -42,18 +42,6 @@ from pylons.i18n import _ from pylons.i18n.translation import LanguageError from r2.config.extensions import is_api -from r2.controllers.validator import ( - build_arg_list, - chksrname, - fullname_regex, - valid_jsonp_callback, - validate, - VByName, - VCount, - VLength, - VLimit, - VTarget, -) from r2.lib import filters, pages, utils from r2.lib.authentication import authenticate_user from r2.lib.base import BaseController @@ -75,6 +63,18 @@ from r2.lib.utils import ( is_subdomain, is_throttled, ) +from r2.lib.validator import ( + build_arg_list, + chksrname, + fullname_regex, + valid_jsonp_callback, + validate, + VByName, + VCount, + VLength, + VLimit, + VTarget, +) from r2.models import ( All, check_request, diff --git a/r2/r2/controllers/redirect.py b/r2/r2/controllers/redirect.py index 37a204ccc..729bd5e90 100644 --- a/r2/r2/controllers/redirect.py +++ b/r2/r2/controllers/redirect.py @@ -19,11 +19,12 @@ # All portions of the code written by reddit are Copyright (c) 2006-2012 reddit # Inc. All Rights Reserved. ############################################################################### - -from pylons.controllers.util import abort, redirect_to -from r2.lib.base import BaseController from pylons import c -from validator import chkuser, chksrname +from pylons.controllers.util import abort, redirect_to + +from r2.lib.base import BaseController +from r2.lib.validator import chkuser, chksrname + class RedirectController(BaseController): def GET_redirect(self, dest): diff --git a/r2/r2/controllers/toolbar.py b/r2/r2/controllers/toolbar.py index 7ce4de8c2..36035f5ca 100644 --- a/r2/r2/controllers/toolbar.py +++ b/r2/r2/controllers/toolbar.py @@ -29,7 +29,7 @@ from r2.lib.filters import spaceCompress, safemarkdown from r2.lib.memoize import memoize from r2.lib.template_helpers import add_sr from r2.lib import utils -from validator import * +from r2.lib.validator import * from pylons import c, Response from r2.models.admintools import is_shamed_domain diff --git a/r2/r2/controllers/wiki.py b/r2/r2/controllers/wiki.py index 7c10fee06..d771f05cf 100644 --- a/r2/r2/controllers/wiki.py +++ b/r2/r2/controllers/wiki.py @@ -34,12 +34,26 @@ from r2.models.builder import WikiRevisionBuilder, WikiRecentRevisionBuilder from r2.lib.template_helpers import join_urls -from r2.controllers.validator import VMarkdown, VModhash, VPrintable +from r2.lib.validator import ( + VExistingUname, + VInt, + VMarkdown, + VModhash, + VOneOf, + VPrintable, + VRatelimit, +) -from r2.controllers.validator.wiki import (VWikiPage, VWikiPageAndVersion, - VWikiModerator, VWikiPageRevise, - this_may_revise, this_may_view, - VWikiPageName, wiki_validate) +from r2.lib.validator.wiki import ( + VWikiPage, + VWikiPageAndVersion, + VWikiModerator, + VWikiPageRevise, + this_may_revise, + this_may_view, + VWikiPageName, + wiki_validate, +) from r2.controllers.api_docs import api_doc, api_section from r2.lib.pages.wiki import (WikiPageView, WikiNotFound, WikiRevisions, WikiEdit, WikiSettings, WikiRecent, @@ -54,7 +68,6 @@ from r2.lib.pages.things import default_thing_wrapper from r2.lib.pages import BoringPage from reddit_base import base_listing from r2.models import IDBuilder, LinkListing, DefaultSR -from validator.validator import VInt, VExistingUname, VRatelimit, VOneOf from r2.lib.merge import ConflictException, make_htmldiff from pylons.i18n import _ from r2.lib.pages import PaneStack diff --git a/r2/r2/lib/pages/wiki.py b/r2/r2/lib/pages/wiki.py index d91f83161..28edb01f7 100644 --- a/r2/r2/lib/pages/wiki.py +++ b/r2/r2/lib/pages/wiki.py @@ -2,7 +2,7 @@ from r2.lib.pages.pages import Reddit from pylons import c from r2.lib.wrapped import Templated from r2.lib.menus import PageNameNav -from r2.controllers.validator.wiki import this_may_revise +from r2.lib.validator.wiki import this_may_revise from pylons.i18n import _ class WikiView(Templated): diff --git a/r2/r2/controllers/validator/__init__.py b/r2/r2/lib/validator/__init__.py similarity index 95% rename from r2/r2/controllers/validator/__init__.py rename to r2/r2/lib/validator/__init__.py index b4aa2e4d6..b276579b7 100644 --- a/r2/r2/controllers/validator/__init__.py +++ b/r2/r2/lib/validator/__init__.py @@ -23,7 +23,6 @@ from validator import * try: - from r2admin.controllers.validator import * + from r2admin.lib.validator import * except ImportError: pass - diff --git a/r2/r2/controllers/validator/validator.py b/r2/r2/lib/validator/validator.py similarity index 100% rename from r2/r2/controllers/validator/validator.py rename to r2/r2/lib/validator/validator.py diff --git a/r2/r2/controllers/validator/wiki.py b/r2/r2/lib/validator/wiki.py similarity index 98% rename from r2/r2/controllers/validator/wiki.py rename to r2/r2/lib/validator/wiki.py index 7003681c8..8c6c1d45f 100644 --- a/r2/r2/controllers/validator/wiki.py +++ b/r2/r2/lib/validator/wiki.py @@ -31,9 +31,12 @@ from pylons.controllers.util import redirect_to from pylons import c, g, request from r2.models.wiki import WikiPage, WikiRevision -from r2.controllers.validator import ( - Validator, validate, VSrModerator, - make_validated_kw, set_api_docs +from r2.lib.validator import ( + Validator, + validate, + VSrModerator, + make_validated_kw, + set_api_docs, ) from r2.lib.db import tdb_cassandra