From 53d358bc6181a3259d63e384a1aadfa6d77a842b Mon Sep 17 00:00:00 2001 From: Ricky Ramirez Date: Tue, 22 Jan 2013 15:11:07 -0800 Subject: [PATCH] routing/wiki: PEP8 cleanups. --- r2/r2/config/routing.py | 25 +++++++------ r2/r2/controllers/wiki.py | 76 +++++++++++++++++++++------------------ 2 files changed, 55 insertions(+), 46 deletions(-) diff --git a/r2/r2/config/routing.py b/r2/r2/config/routing.py index d2b513d1e..4fabc2472 100644 --- a/r2/r2/config/routing.py +++ b/r2/r2/config/routing.py @@ -23,13 +23,14 @@ """ Setup your Routes options here """ -import os from routes import Mapper from pylons import config + def not_in_sr(environ, results): return 'subreddit' not in environ and 'sub_domain' not in environ + def make_map(): map = Mapper() mc = map.connect @@ -55,8 +56,10 @@ def make_map(): mc('/rules', controller='front', action='rules') mc('/sup', controller='front', action='sup') mc('/traffic', controller='front', action='site_traffic') - mc('/traffic/languages/:langcode', controller='front', action='lang_traffic', langcode='') - mc('/traffic/adverts/:code', controller='front', action='advert_traffic', code='') + mc('/traffic/languages/:langcode', controller='front', + action='lang_traffic', langcode='') + mc('/traffic/adverts/:code', controller='front', + action='advert_traffic', code='') mc('/account-activity', controller='front', action='account_activity') mc('/about/message/:where', controller='message', action='listing') @@ -148,18 +151,18 @@ def make_map(): mc('/admin/promoted', controller='promote', action='admin') mc('/promoted/edit_promo/:link', controller='promote', action='edit_promo') - mc('/promoted/edit_promo_cpm/:link', # development only (don't link to url) + mc('/promoted/edit_promo_cpm/:link', # development only controller='promote', action='edit_promo_cpm') - mc('/promoted/edit_promo/pc/:campaign', controller='promote', # admin only + mc('/promoted/edit_promo/pc/:campaign', controller='promote', # admin only action='edit_promo_campaign') mc('/promoted/pay/:link/:campaign', controller='promote', action='pay') mc('/promoted/graph', controller='promote', action='graph') mc('/promoted/admin/graph', controller='promote', action='admingraph') - mc('/promoted/inventory/:sr_name', + mc('/promoted/inventory/:sr_name', controller='promote', action='inventory') - mc('/promoted/traffic/headline/:link', + mc('/promoted/traffic/headline/:link', controller='front', action='promo_traffic') mc('/promoted/:action', controller='promote', @@ -212,21 +215,21 @@ def make_map(): mc('/wiki/discussions/*page', controller='wiki', action='wiki_discussions') mc('/wiki/revisions', controller='wiki', action='wiki_recent') mc('/wiki/pages', controller='wiki', action='wiki_listing') - + mc('/api/wiki/create', controller='wikiapi', action='wiki_create') mc('/api/wiki/edit', controller='wikiapi', action='wiki_edit') mc('/api/wiki/hide', controller='wikiapi', action='wiki_revision_hide') mc('/api/wiki/revert', controller='wikiapi', action='wiki_revision_revert') - mc('/api/wiki/alloweditor/:act', controller='wikiapi', + mc('/api/wiki/alloweditor/:act', controller='wikiapi', requirements=dict(act="del|add"), action='wiki_allow_editor') - + mc('/wiki/*page', controller='wiki', action='wiki_page') mc('/wiki/', controller='wiki', action='wiki_page') mc('/:action', controller='wiki', requirements=dict(action="help|faq")) mc('/help/*page', controller='wiki', action='wiki_redirect') mc('/w/*page', controller='wiki', action='wiki_redirect') - + mc('/goto', controller='toolbar', action='goto') mc('/tb/:id', controller='toolbar', action='tb') mc('/toolbar/:action', controller='toolbar', diff --git a/r2/r2/controllers/wiki.py b/r2/r2/controllers/wiki.py index 273bcefa6..0f904e3b6 100644 --- a/r2/r2/controllers/wiki.py +++ b/r2/r2/controllers/wiki.py @@ -85,33 +85,37 @@ page_descriptions = {'config/stylesheet':_("This page is the subreddit styleshee ATTRIBUTE_BY_PAGE = {"config/sidebar": "description", "config/description": "public_description"} + class WikiController(RedditController): allow_stylesheets = True - - @wiki_validate(pv=VWikiPageAndVersion(('page', 'v', 'v2'), required=False, - restricted=False, allow_hidden_revision=False), - page_name=VWikiPageName('page', error_on_name_normalized=True)) + + @wiki_validate(pv=VWikiPageAndVersion(('page', 'v', 'v2'), + required=False, + restricted=False, + allow_hidden_revision=False), + page_name=VWikiPageName('page', + error_on_name_normalized=True)) def GET_wiki_page(self, pv, page_name): message = None - + if c.errors.get(('PAGE_NAME_NORMALIZED', 'page')): url = join_urls(c.wiki_base_url, page_name) return self.redirect(url) - + page, version, version2 = pv - + if not page: if c.render_style in extensions.API_TYPES: self.handle_error(404, 'PAGE_NOT_CREATED') return WikiNotFound(page=page_name).render() - + if version: edit_by = version.get_author() edit_date = version.date else: edit_by = page.get_author() edit_date = page._get('last_edit_date') - + diffcontent = None if not version: content = page.content @@ -131,11 +135,11 @@ class WikiController(RedditController): else: message = _("viewing revision from %s ago") % timesince(version.date) content = version.content - + return WikiPageView(content, alert=message, v=version, diff=diffcontent, may_revise=this_may_revise(page), edit_by=edit_by, edit_date=edit_date, page=page.name).render() - + @paginated_listing(max_page_size=100, backend='cassandra') @wiki_validate(page=VWikiPage(('page'), restricted=False)) def GET_wiki_revisions(self, num, after, reverse, count, page): @@ -143,7 +147,7 @@ class WikiController(RedditController): builder = WikiRevisionBuilder(revisions, num=num, reverse=reverse, count=count, after=after, skip=not c.is_wiki_mod, wrap=default_thing_wrapper()) listing = WikiRevisionListing(builder).listing() return WikiRevisions(listing, page=page.name, may_revise=this_may_revise(page)).render() - + @wiki_validate(wp=VWikiPageRevise('page'), page=VWikiPageName('page')) def GET_wiki_create(self, wp, page): @@ -169,7 +173,7 @@ class WikiController(RedditController): return BoringPage(_("Wiki error"), infotext=error_msg).render() else: return WikiCreate(page=page, may_revise=True).render() - + @wiki_validate(wp=VWikiPageRevise('page', restricted=True, required=True)) def GET_wiki_revise(self, wp, page, message=None, **kw): wp = wp[0] @@ -179,7 +183,7 @@ class WikiController(RedditController): message = page_descriptions[wp.name] return WikiEdit(content, previous, alert=message, page=wp.name, may_revise=True).render() - + @paginated_listing(max_page_size=100, backend='cassandra') def GET_wiki_recent(self, num, after, reverse, count): revisions = WikiRevision.get_recent(c.site) @@ -189,7 +193,7 @@ class WikiController(RedditController): skip=not c.is_wiki_mod) listing = WikiRevisionListing(builder).listing() return WikiRecent(listing).render() - + def GET_wiki_listing(self): def check_hidden(page): return this_may_view(page) @@ -198,19 +202,19 @@ class WikiController(RedditController): def GET_wiki_redirect(self, page='index'): return redirect_to(str("%s/%s" % (c.wiki_base_url, page)), _code=301) - + @base_listing @wiki_validate(page=VWikiPage('page', restricted=True)) def GET_wiki_discussions(self, page, num, after, reverse, count): page_url = add_sr("%s/%s" % (c.wiki_base_url, page.name)) links = url_links(page_url) - builder = IDBuilder([ link._fullname for link in links ], - num = num, after = after, reverse = reverse, - count = count, skip = False) + builder = IDBuilder([link._fullname for link in links], + num=num, after=after, reverse=reverse, + count=count, skip=False) listing = LinkListing(builder).listing() return WikiDiscussions(listing, page=page.name, may_revise=this_may_revise(page)).render() - + @wiki_validate(page=VWikiPage('page', restricted=True, modonly=True)) def GET_wiki_settings(self, page): settings = {'permlevel': page._get('permlevel', 0)} @@ -218,7 +222,7 @@ class WikiController(RedditController): restricted = (not page.special) and page.restricted show_editors = not restricted return WikiSettings(settings, mayedit, show_settings=not page.special, - page=page.name, show_editors=show_editors, + page=page.name, show_editors=show_editors, restricted=restricted, may_revise=True).render() @@ -232,18 +236,19 @@ class WikiController(RedditController): except ValueError: self.handle_error(403, 'INVALID_PERMLEVEL') description = 'Page: %s, Changed from %s to %s' % (page.name, oldpermlevel, permlevel) - ModAction.create(c.site, c.user, 'wikipermlevel', description=description) + ModAction.create(c.site, c.user, 'wikipermlevel', + description=description) return self.GET_wiki_settings(page=page.name) - + def handle_error(self, code, reason=None, **data): abort(WikiError(code, reason, **data)) - + def pre(self): RedditController.pre(self) if g.disable_wiki and not c.user_is_admin: self.handle_error(403, 'WIKI_DOWN') if not c.site._should_wiki: - self.handle_error(404, 'NOT_WIKIABLE') # /r/mod for an example + self.handle_error(404, 'NOT_WIKIABLE') # /r/mod for an example frontpage = isinstance(c.site, DefaultSR) c.wiki_base_url = join_urls(c.site.path, 'wiki') c.wiki_api_url = join_urls(c.site.path, '/api/wiki') @@ -251,7 +256,7 @@ class WikiController(RedditController): self.editconflict = False c.is_wiki_mod = (c.user_is_admin or c.site.is_moderator(c.user)) if c.user_is_loggedin else False c.wikidisabled = False - + mode = c.site.wikimode if not mode or mode == 'disabled': if not c.is_wiki_mod: @@ -265,33 +270,34 @@ class WikiController(RedditController): GET_help = GET_wiki_redirect + class WikiApiController(WikiController): @wiki_validate(VModhash(), pageandprevious=VWikiPageRevise(('page', 'previous'), restricted=True), - content=VMarkdown(('content')), + content=VMarkdown(('content')), page_name=VWikiPageName('page'), reason=VPrintable('reason', 256)) @api_doc(api_section.wiki, uri='/api/wiki/edit') def POST_wiki_edit(self, pageandprevious, content, page_name, reason): page, previous = pageandprevious - + if not page: error = c.errors.get(('WIKI_CREATE_ERROR', 'page')) if error: self.handle_error(403, **(error.msg_params or {})) page = WikiPage.create(c.site, page_name) if c.user._spam: - error =_("You are doing that too much, please try again later.") + error = _("You are doing that too much, please try again later.") self.handle_error(415, 'SPECIAL_ERRORS', special_errors=[error]) # Use the raw POST value as we need to tell the difference between # None/Undefined and an empty string. The validators use a default - # value with both of those cases and would need to be changed. + # value with both of those cases and would need to be changed. # In order to avoid breaking functionality, this was done instead. previous = previous._id if previous else request.post.get('previous') try: if page.name == 'config/stylesheet': report, parsed = c.site.parse_css(content, verify=False) - if report is None: # g.css_killswitch + if report is None: # g.css_killswitch self.handle_error(403, 'STYLESHEET_EDIT_DENIED') if report.errors: error_items = [x.message for x in sorted(report.errors)] @@ -301,7 +307,7 @@ class WikiApiController(WikiController): try: page.revise(content, previous, c.user._id36, reason=reason) except ContentLengthError as e: - self.handle_error(403, 'CONTENT_LENGTH_ERROR', max_length = e.max_length) + self.handle_error(403, 'CONTENT_LENGTH_ERROR', max_length=e.max_length) # continue storing the special pages as data attributes on the subreddit # object. TODO: change this to minimize subreddit get sizes. @@ -333,7 +339,7 @@ class WikiApiController(WikiController): else: self.handle_error(400, 'INVALID_ACTION') return json.dumps({}) - + @wiki_validate(VModhash(), VWikiModerator(), pv=VWikiPageAndVersion(('page', 'revision'))) @@ -343,7 +349,7 @@ class WikiApiController(WikiController): if not revision: self.handle_error(400, 'INVALID_REVISION') return json.dumps({'status': revision.toggle_hide()}) - + @wiki_validate(VModhash(), VWikiModerator(), pv=VWikiPageAndVersion(('page', 'revision'))) @@ -372,7 +378,7 @@ class WikiApiController(WikiController): except ContentLengthError as e: self.handle_error(403, 'CONTENT_LENGTH_ERROR', max_length=e.max_length) return json.dumps({}) - + def pre(self): WikiController.pre(self) c.render_style = 'api'