本文整理汇总了Python中r2.lib.utils.UrlParser.scheme方法的典型用法代码示例。如果您正苦于以下问题:Python UrlParser.scheme方法的具体用法?Python UrlParser.scheme怎么用?Python UrlParser.scheme使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.lib.utils.UrlParser
的用法示例。
在下文中一共展示了UrlParser.scheme方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: resize_image
# 需要导入模块: from r2.lib.utils import UrlParser [as 别名]
# 或者: from r2.lib.utils.UrlParser import scheme [as 别名]
def resize_image(self, image, width=None, censor_nsfw=False, max_ratio=None):
url = UrlParser(image['url'])
url.hostname = g.imgix_domain
# Let's encourage HTTPS; it's cool, works just fine on HTTP pages, and
# will prevent insecure content warnings on HTTPS pages.
url.scheme = 'https'
if max_ratio:
url.update_query(fit='crop')
# http://www.imgix.com/docs/reference/size#param-crop
url.update_query(crop='faces,entropy')
url.update_query(arh=max_ratio)
if width:
if width > image['width']:
raise NotLargeEnough()
# http://www.imgix.com/docs/reference/size#param-w
url.update_query(w=width)
if censor_nsfw:
# Do an initial blur to make sure we're getting rid of icky
# details.
#
# http://www.imgix.com/docs/reference/stylize#param-blur
url.update_query(blur=600)
# And then add pixellation to help the image compress well.
#
# http://www.imgix.com/docs/reference/stylize#param-px
url.update_query(px=32)
if g.imgix_signing:
url = self._sign_url(url, g.secrets['imgix_signing_token'])
return url.unparse()
示例2: resize_image
# 需要导入模块: from r2.lib.utils import UrlParser [as 别名]
# 或者: from r2.lib.utils.UrlParser import scheme [as 别名]
def resize_image(self, image, width=None, censor_nsfw=False, max_ratio=None):
url = UrlParser(image['url'])
url.hostname = g.imgix_domain
# Let's encourage HTTPS; it's cool, works just fine on HTTP pages, and
# will prevent insecure content warnings on HTTPS pages.
url.scheme = 'https'
if max_ratio:
url.update_query(fit='crop')
# http://www.imgix.com/docs/reference/size#param-crop
url.update_query(crop='faces,entropy')
url.update_query(arh=max_ratio)
if width:
if width > image['width']:
raise NotLargeEnough()
# http://www.imgix.com/docs/reference/size#param-w
url.update_query(w=width)
if censor_nsfw:
# Since we aren't concerned with inhibiting a user's ability to
# reverse the censoring for privacy reasons, pixellation is better
# than a Gaussian blur because it compresses well. The specific
# value is just "what looks about right".
#
# http://www.imgix.com/docs/reference/stylize#param-px
url.update_query(px=20)
if g.imgix_signing:
url = self._sign_url(url, g.secrets['imgix_signing_token'])
return url.unparse()
示例3: resize_image
# 需要导入模块: from r2.lib.utils import UrlParser [as 别名]
# 或者: from r2.lib.utils.UrlParser import scheme [as 别名]
def resize_image(self, image, width=None, file_type=None, censor_nsfw=False,
max_ratio=None):
url = UrlParser(image['url'])
is_gif = url.path.endswith('.gif') and (file_type == 'mp4' or not file_type)
if is_gif:
url.hostname = g.imgix_gif_domain
else:
url.hostname = g.imgix_domain
# Let's encourage HTTPS; it's cool, works just fine on HTTP pages, and
# will prevent insecure content warnings on HTTPS pages.
url.scheme = 'https'
# g.s3_media_direct affects how preview image urls are stored
# True: http://{s3_media_domain}/mybucket/helloworld.jpg
# False: http://mybucket/helloworld.jpg
# If it's True, we'll need to strip the bucket out of the path
if g.s3_media_direct:
path_parts = url.path.split('/')
path_parts.pop(1)
url.path = '/'.join(path_parts)
if max_ratio:
url.update_query(fit='crop')
# http://www.imgix.com/docs/reference/size#param-crop
url.update_query(crop='faces,entropy')
url.update_query(arh=max_ratio)
if width:
if width > image['width']:
raise NotLargeEnough()
# http://www.imgix.com/docs/reference/size#param-w
url.update_query(w=width)
if file_type and file_type in ('gif', 'jpg', 'png', 'mp4'):
url.update_query(fm=file_type)
# We need to disable fragmented mp4s for proper playback in Firefox
if file_type == 'mp4':
url.update_query(**{'mp4-fragmented': 'false'})
if censor_nsfw:
# Do an initial blur to make sure we're getting rid of icky
# details.
#
# http://www.imgix.com/docs/reference/stylize#param-blur
url.update_query(blur=600)
# And then add pixellation to help the image compress well.
#
# http://www.imgix.com/docs/reference/stylize#param-px
url.update_query(px=32)
if g.imgix_signing:
if is_gif:
url = self._sign_url(url, g.secrets['imgix_gif_signing_token'])
else:
url = self._sign_url(url, g.secrets['imgix_signing_token'])
return url.unparse()
示例4: add_sr
# 需要导入模块: from r2.lib.utils import UrlParser [as 别名]
# 或者: from r2.lib.utils.UrlParser import scheme [as 别名]
def add_sr(
path, sr_path=True, nocname=False, force_hostname=False,
retain_extension=True, force_https=False):
"""
Given a path (which may be a full-fledged url or a relative path),
parses the path and updates it to include the subreddit path
according to the rules set by its arguments:
* sr_path: if a cname is not used for the domain, updates the
path to include c.site.path.
* nocname: when updating the hostname, overrides the value of
c.cname to set the hostname to g.domain. The default behavior
is to set the hostname consistent with c.cname.
* force_hostname: if True, force the url's hostname to be updated
even if it is already set in the path, and subject to the
c.cname/nocname combination. If false, the path will still
have its domain updated if no hostname is specified in the url.
* retain_extension: if True, sets the extention according to
c.render_style.
* force_https: force the URL scheme to https
For caching purposes: note that this function uses:
c.cname, c.render_style, c.site.name
"""
# don't do anything if it is just an anchor
if path.startswith(('#', 'javascript:')):
return path
u = UrlParser(path)
if sr_path and (nocname or not c.cname):
u.path_add_subreddit(c.site)
if not u.hostname or force_hostname:
if c.secure:
u.hostname = request.host
else:
u.hostname = get_domain(cname = (c.cname and not nocname),
subreddit = False)
if (c.secure and u.is_reddit_url()) or force_https:
u.scheme = "https"
if retain_extension:
if c.render_style == 'mobile':
u.set_extension('mobile')
elif c.render_style == 'compact':
u.set_extension('compact')
return u.unparse()
示例5: test_same_url
# 需要导入模块: from r2.lib.utils import UrlParser [as 别名]
# 或者: from r2.lib.utils.UrlParser import scheme [as 别名]
def test_same_url(self):
u = UrlParser('http://example.com:8000/a;b?foo=bar&bar=baz#spam')
u2 = UrlParser('http://example.com:8000/a;b?bar=baz&foo=bar#spam')
self.assertEquals(u, u2)
u3 = UrlParser('')
u3.scheme = 'http'
u3.hostname = 'example.com'
u3.port = 8000
u3.path = '/a'
u3.params = 'b'
u3.update_query(foo='bar', bar='baz')
u3.fragment = 'spam'
self.assertEquals(u, u3)
示例6: __init__
# 需要导入模块: from r2.lib.utils import UrlParser [as 别名]
# 或者: from r2.lib.utils.UrlParser import scheme [as 别名]
def __init__(self, space_compress=None, nav_menus=None, loginbox=True,
infotext='', infotext_class=None, content=None,
short_description='', title='',
robots=None, show_sidebar=True, show_chooser=False,
footer=True, srbar=True, page_classes=None, short_title=None,
show_wiki_actions=False, extra_js_config=None,
show_locationbar=False,
**context):
Templated.__init__(self, **context)
self.title = title
self.short_title = short_title
self.short_description = short_description
self.robots = robots
self.infotext = infotext
self.extra_js_config = extra_js_config
self.show_wiki_actions = show_wiki_actions
self.loginbox = loginbox
self.show_sidebar = show_sidebar
self.space_compress = space_compress
# instantiate a footer
self.footer = RedditFooter() if footer else None
self.debug_footer = DebugFooter()
self.supplied_page_classes = page_classes or []
#put the sort menus at the top
self.nav_menu = MenuArea(menus = nav_menus) if nav_menus else None
#add the infobar
self.welcomebar = None
self.newsletterbar = None
self.locationbar = None
self.infobar = None
self.mobilewebredirectbar = None
# generate a canonical link for google
self.canonical_link = request.fullpath
if c.render_style != "html":
u = UrlParser(request.fullpath)
u.set_extension("")
u.hostname = g.domain
if g.domain_prefix:
u.hostname = "%s.%s" % (g.domain_prefix, u.hostname)
self.canonical_link = u.unparse()
# Generate a mobile link for Google.
u = UrlParser(request.fullpath)
u.switch_subdomain_by_extension('mobile')
u.scheme = 'https'
self.mobile_link = u.unparse()
if self.show_infobar:
if not infotext:
if g.heavy_load_mode:
# heavy load mode message overrides read only
infotext = strings.heavy_load_msg
elif g.read_only_mode:
infotext = strings.read_only_msg
elif g.live_config.get("announcement_message"):
infotext = g.live_config["announcement_message"]
if infotext:
self.infobar = InfoBar(
message=infotext, extra_class=infotext_class)
elif (isinstance(c.site, DomainSR) and
is_subdomain(c.site.domain, "imgur.com")):
self.infobar = InfoBar(message=
_("imgur.com domain listings (including this one) are "
"currently disabled to speed up vote processing.")
)
elif isinstance(c.site, AllMinus) and not c.user.gold:
self.infobar = InfoBar(message=strings.all_minus_gold_only,
extra_class="gold")
if not c.user_is_loggedin:
self.welcomebar = WelcomeBar()
if feature.is_enabled('newsletter') and getattr(self, "show_newsletterbar", True):
self.newsletterbar = NewsletterBar()
if c.render_style == "compact":
self.mobilewebredirectbar = MobileWebRedirectBar()
show_locationbar &= not c.user.pref_hide_locationbar
if (show_locationbar and c.used_localized_defaults and
(not c.user_is_loggedin or
not c.user.has_subscribed)):
self.locationbar = LocationBar()
self.srtopbar = None
if srbar and not c.cname and not is_api():
self.srtopbar = SubredditTopBar()
panes = [content]
if c.user_is_loggedin and not is_api() and not self.show_wiki_actions:
# insert some form templates for js to use
# TODO: move these to client side templates
gold_link = GoldPayment("gift",
"monthly",
months=1,
signed=False,
recipient="",
#.........这里部分代码省略.........