def set_subreddit(): #the r parameter gets added by javascript for POST requests so we #can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get('r')) domain = request.environ.get("domain") can_stale = request.method.upper() in ('GET', 'HEAD') c.site = Frontpage if not sr_name: #check for cnames cname = request.environ.get('legacy-cname') if cname: sr = Subreddit._by_domain(cname) or Frontpage domain = g.domain if g.domain_prefix: domain = ".".join((g.domain_prefix, domain)) redirect_to('http://%s%s' % (domain, sr.path), _code=301) elif sr_name == 'r': #reddits c.site = Sub elif '+' in sr_name: sr_names = sr_name.split('+') srs = set(Subreddit._by_name(sr_names, stale=can_stale).values()) if All in srs: c.site = All elif Friends in srs: c.site = Friends else: srs = [sr for sr in srs if not isinstance(sr, FakeSubreddit)] if len(srs) == 0: c.site = MultiReddit([], sr_name) elif len(srs) == 1: c.site = srs.pop() else: sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, sr_name) else: try: c.site = Subreddit._by_name(sr_name, stale=can_stale) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page and not request.path.startswith( "/api/login/"): abort(404) #if we didn't find a subreddit, check for a domain listing if not sr_name and isinstance(c.site, DefaultSR) and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True
def set_subreddit(): #the r parameter gets added by javascript for POST requests so we #can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get('r')) domain = request.environ.get("domain") can_stale = request.method.upper() in ('GET','HEAD') c.site = Frontpage if not sr_name: #check for cnames cname = request.environ.get('legacy-cname') if cname: sr = Subreddit._by_domain(cname) or Frontpage domain = g.domain if g.domain_prefix: domain = ".".join((g.domain_prefix, domain)) redirect_to('http://%s%s' % (domain, sr.path), _code=301) elif sr_name == 'r': #reddits c.site = Sub elif '+' in sr_name: sr_names = sr_name.split('+') srs = set(Subreddit._by_name(sr_names, stale=can_stale).values()) if All in srs: c.site = All elif Friends in srs: c.site = Friends else: srs = [sr for sr in srs if not isinstance(sr, FakeSubreddit)] if len(srs) == 0: c.site = MultiReddit([], sr_name) elif len(srs) == 1: c.site = srs.pop() else: sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, sr_name) else: try: c.site = Subreddit._by_name(sr_name, stale=can_stale) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page and not request.path.startswith("/api/login/") : abort(404) #if we didn't find a subreddit, check for a domain listing if not sr_name and isinstance(c.site, DefaultSR) and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True
def set_subreddit(): #the r parameter gets added by javascript for POST requests so we #can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get('r')) domain = request.environ.get("domain") can_stale = request.method.upper() in ('GET','HEAD') default_sr = DefaultSR() c.site = default_sr if not sr_name: #check for cnames sub_domain = request.environ.get('sub_domain') if sub_domain and not sub_domain.endswith(g.media_domain): c.site = Subreddit._by_domain(sub_domain) or default_sr elif sr_name == 'r': #reddits c.site = Sub else: try: if '+' in sr_name: srs = set() sr_names = sr_name.split('+') real_path = sr_name srs = Subreddit._by_name(sr_names, stale=can_stale).values() if len(srs) != len(sr_names): abort(404) elif any(isinstance(sr, FakeSubreddit) for sr in srs): if All in srs: c.site = All elif Friend in srs: c.site = Friend else: abort(400) else: sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, real_path) else: c.site = Subreddit._by_name(sr_name, stale=can_stale) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page and not request.path.startswith("/api/login/") : abort(404) #if we didn't find a subreddit, check for a domain listing if not sr_name and isinstance(c.site, DefaultSR) and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True
def set_subreddit(): #the r parameter gets added by javascript for POST requests so we #can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get('r')) domain = request.environ.get("domain") can_stale = request.method.upper() in ('GET','HEAD') default_sr = DefaultSR() c.site = default_sr if not sr_name: #check for cnames sub_domain = request.environ.get('sub_domain') if sub_domain and not sub_domain.endswith(g.media_domain): c.site = Subreddit._by_domain(sub_domain) or default_sr elif sr_name == 'r': #reddits c.site = Sub else: try: if '+' in sr_name: srs = set() sr_names = sr_name.split('+') real_path = sr_name srs = Subreddit._by_name(sr_names, stale=can_stale).values() if len(srs) != len(sr_names): abort(404) elif any(isinstance(sr, FakeSubreddit) for sr in srs): if All in srs: c.site = All elif Friend in srs: c.site = Friend else: abort(400) else: sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, real_path) else: c.site = Subreddit._by_name(sr_name, stale=can_stale) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page: abort(404) #if we didn't find a subreddit, check for a domain listing if not sr_name and isinstance(c.site, DefaultSR) and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True
def set_subreddit(): # the r parameter gets added by javascript for POST requests so we # can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get("r")) domain = request.environ.get("domain") can_stale = request.method.upper() in ("GET", "HEAD") default_sr = DefaultSR() c.site = default_sr if not sr_name: # check for cnames sub_domain = request.environ.get("sub_domain") if sub_domain and not sub_domain.endswith(g.media_domain): c.site = Subreddit._by_domain(sub_domain) or default_sr elif sr_name == "r": # reddits c.site = Sub elif "+" in sr_name: sr_names = sr_name.split("+") srs = set(Subreddit._by_name(sr_names, stale=can_stale).values()) if All in srs: c.site = All elif Friends in srs: c.site = Friends else: srs = [sr for sr in srs if not isinstance(sr, FakeSubreddit)] if len(srs) == 0: c.site = MultiReddit([], sr_name) elif len(srs) == 1: c.site = srs.pop() else: sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, sr_name) else: try: c.site = Subreddit._by_name(sr_name, stale=can_stale) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page and not request.path.startswith("/api/login/"): abort(404) # if we didn't find a subreddit, check for a domain listing if not sr_name and isinstance(c.site, DefaultSR) and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True
def set_subreddit(): #the r parameter gets added by javascript for POST requests so we #can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get('r')) domain = request.environ.get("domain") if not sr_name: #check for cnames sub_domain = request.environ.get('sub_domain') sr = Subreddit._by_domain(sub_domain) if sub_domain else None c.site = sr or Default elif sr_name == 'r': #reddits c.site = Sub else: try: if '+' in sr_name: srs = set() sr_names = sr_name.split('+') real_path = sr_name for sr_name in sr_names: srs.add(Subreddit._by_name(sr_name)) sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, real_path) else: c.site = Subreddit._by_name(sr_name) except NotFound: c.site = Default if chksrname(sr_name): redirect_to("/categories/create?name=%s" % sr_name) elif not c.error_page: abort(404, "not found") #if we didn't find a subreddit, check for a domain listing if not sr_name and c.site == Default and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True try: c.current_or_default_sr = Subreddit._by_name(g.default_sr) except NotFound: c.current_or_default_sr = None else: c.current_or_default_sr = c.site # check that the site is available: if c.site._spam and not c.user_is_admin and not c.error_page: abort(404, "not found")
def set_subreddit(): # the r parameter gets added by javascript for POST requests so we # can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get("r")) domain = request.environ.get("domain") c.site = Default if not sr_name: # check for cnames sub_domain = request.environ.get("sub_domain") if sub_domain and not sub_domain.endswith(g.media_domain): c.site = Subreddit._by_domain(sub_domain) or Default elif sr_name == "r": # reddits c.site = Sub else: try: if "+" in sr_name: srs = set() sr_names = sr_name.split("+") real_path = sr_name srs = Subreddit._by_name(sr_names).values() if len(srs) != len(sr_names): abort(404) elif any(isinstance(sr, FakeSubreddit) for sr in srs): if All in srs: c.site = All elif Friend in srs: c.site = Friend else: abort(400) else: sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, real_path) else: c.site = Subreddit._by_name(sr_name) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page: abort(404) # if we didn't find a subreddit, check for a domain listing if not sr_name and c.site == Default and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True
def set_subreddit(): #the r parameter gets added by javascript for POST requests so we #can reference c.site in api.py sr_name = request.environ.get("subreddit", request.POST.get('r')) domain = request.environ.get("domain") c.site = Default if not sr_name: #check for cnames sub_domain = request.environ.get('sub_domain') if sub_domain and not sub_domain.endswith(g.media_domain): c.site = Subreddit._by_domain(sub_domain) or Default elif sr_name == 'r': #reddits c.site = Sub else: try: if '+' in sr_name: srs = set() sr_names = sr_name.split('+') real_path = sr_name for sr_name in sr_names: srs.add(Subreddit._by_name(sr_name)) sr_ids = [sr._id for sr in srs] c.site = MultiReddit(sr_ids, real_path) else: c.site = Subreddit._by_name(sr_name) except NotFound: sr_name = chksrname(sr_name) if sr_name: redirect_to("/reddits/search?q=%s" % sr_name) elif not c.error_page: abort(404, "not found") #if we didn't find a subreddit, check for a domain listing if not sr_name and c.site == Default and domain: c.site = DomainSR(domain) if isinstance(c.site, FakeSubreddit): c.default_sr = True